1.去除无用字段和按钮
2.新增修改密码功能 3.修复拒收红包审核详情 4.修复加减分审核缺失驳回原因 5.修复所有页面考评对象增加工号 6.修复所有日期选择限制当前时间 7.修复月度,季度,年度评价查询问题
This commit is contained in:
parent
1e6b3310c9
commit
c0399f38f2
2
auto-imports.d.ts
vendored
2
auto-imports.d.ts
vendored
@ -1,5 +1,5 @@
|
||||
// Generated by 'unplugin-auto-import'
|
||||
export {}
|
||||
declare global {
|
||||
const layer: typeof import('@layui/layer-vue')['layer']
|
||||
|
||||
}
|
||||
|
3
components.d.ts
vendored
3
components.d.ts
vendored
@ -48,10 +48,7 @@ declare module 'vue' {
|
||||
LaySelect: typeof import('@layui/layui-vue')['LaySelect']
|
||||
LaySelectOption: typeof import('@layui/layui-vue')['LaySelectOption']
|
||||
LaySide: typeof import('@layui/layui-vue')['LaySide']
|
||||
LaySkeleton: typeof import('@layui/layui-vue')['LaySkeleton']
|
||||
LaySpace: typeof import('@layui/layui-vue')['LaySpace']
|
||||
LayStep: typeof import('@layui/layui-vue')['LayStep']
|
||||
LayStepItem: typeof import('@layui/layui-vue')['LayStepItem']
|
||||
LaySubMenu: typeof import('@layui/layui-vue')['LaySubMenu']
|
||||
LaySwitch: typeof import('@layui/layui-vue')['LaySwitch']
|
||||
LayTab: typeof import('@layui/layui-vue')['LayTab']
|
||||
|
@ -506,6 +506,15 @@ export function getMailUpdateMail(data: any) {
|
||||
export function getYearEvaluationSummary(data: any) {
|
||||
return Http.post('/api/backend/year/data', data)
|
||||
}
|
||||
// 密码修改
|
||||
export function updatePassword(data: any) {
|
||||
return Http.post('/api/backend/user/updatePassword', data)
|
||||
}
|
||||
// 自动公示
|
||||
export function automaticPublicity(data: any) {
|
||||
return Http.post('/api/backend/automatic_publicity/index', data)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -152,7 +152,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { computed, onMounted, ref } from 'vue'
|
||||
import { computed, onMounted, reactive, ref } from 'vue'
|
||||
import { useAppStore } from '../store/app'
|
||||
import { useUserStore } from '../store/user'
|
||||
import GlobalSetup from './global/GlobalSetup.vue'
|
||||
@ -166,7 +166,9 @@ import { useRouter } from 'vue-router'
|
||||
import { useMenu } from './composable/useMenu'
|
||||
import zh_CN from '../lang/zh_CN'
|
||||
import en_US from '../lang/en_US'
|
||||
|
||||
import { updatePassword } from '@/api/module/home'
|
||||
import { layer } from '@layui/layui-vue'
|
||||
//const userStore = useUserStore()
|
||||
export default {
|
||||
components: {
|
||||
GlobalSetup,
|
||||
@ -254,10 +256,11 @@ export default {
|
||||
flag.value = !flag.value
|
||||
}
|
||||
|
||||
const model = ref({
|
||||
const model = reactive({
|
||||
old_password: '',
|
||||
new_password: '',
|
||||
confirm_password: ''
|
||||
confirm_password: '',
|
||||
id: 0,
|
||||
})
|
||||
const showPassword = ref(false)
|
||||
function changePassword() {
|
||||
@ -267,7 +270,15 @@ export default {
|
||||
{
|
||||
text: "确认",
|
||||
callback: async () => {
|
||||
console.log(123)
|
||||
const userInfoStore = useUserStore()
|
||||
model.id = userInfoStore.userInfo.id;
|
||||
var res = await updatePassword(model);
|
||||
if (res.code == 1) {
|
||||
layer.msg('修改成功!', { icon: 1 })
|
||||
showPassword.value = false;
|
||||
} else {
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -231,25 +231,26 @@ export default [
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
path: '/outside_evaluation',
|
||||
redirect: '/outside_evaluation/index',
|
||||
component: BasicLayout,
|
||||
meta: { title: '院外考评' },
|
||||
children: [
|
||||
{
|
||||
path: '/outside_evaluation/index',
|
||||
name: 'outsideEvaluationIndex',
|
||||
component: () => import('../../views/day_evaluation/index.vue'),
|
||||
meta: { title: '我的院外考评', requireAuth: true, closable: true },
|
||||
}, {
|
||||
path: '/outside_evaluation/examine',
|
||||
name: 'outsideEvaluationExamine',
|
||||
component: () => import('../../views/day_evaluation/examine.vue'),
|
||||
meta: { title: '院外考评管理', requireAuth: true, closable: true },
|
||||
}
|
||||
]
|
||||
}, {
|
||||
// {
|
||||
// path: '/outside_evaluation',
|
||||
// redirect: '/outside_evaluation/index',
|
||||
// component: BasicLayout,
|
||||
// meta: { title: '院外考评' },
|
||||
// children: [
|
||||
// {
|
||||
// path: '/outside_evaluation/index',
|
||||
// name: 'outsideEvaluationIndex',
|
||||
// component: () => import('../../views/day_evaluation/index.vue'),
|
||||
// meta: { title: '我的院外考评', requireAuth: true, closable: true },
|
||||
// }, {
|
||||
// path: '/outside_evaluation/examine',
|
||||
// name: 'outsideEvaluationExamine',
|
||||
// component: () => import('../../views/day_evaluation/examine.vue'),
|
||||
// meta: { title: '院外考评管理', requireAuth: true, closable: true },
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
,{
|
||||
path: '/year_evaluation',
|
||||
redirect: '/year_evaluation/index',
|
||||
component: BasicLayout,
|
||||
@ -321,12 +322,13 @@ export default [
|
||||
name: 'yearEvaluationSummaryExamine',
|
||||
component: () => import('../../views/year_evaluation_summary/examine.vue'),
|
||||
meta: { title: '考评汇总', requireAuth: true, closable: true },
|
||||
}, {
|
||||
path: '/year_evaluation_summary/statistics',
|
||||
name: 'yearEvaluationSummaryStatistics',
|
||||
component: () => import('../../views/year_evaluation_summary/statistics.vue'),
|
||||
meta: { title: '统计分析', requireAuth: true, closable: true },
|
||||
}
|
||||
},
|
||||
// {
|
||||
// path: '/year_evaluation_summary/statistics',
|
||||
// name: 'yearEvaluationSummaryStatistics',
|
||||
// component: () => import('../../views/year_evaluation_summary/statistics.vue'),
|
||||
// meta: { title: '统计分析', requireAuth: true, closable: true },
|
||||
// }
|
||||
]
|
||||
}, {
|
||||
path: '/census',
|
||||
|
@ -3,6 +3,7 @@ import { defineStore } from 'pinia'
|
||||
|
||||
import menu from "../mockjs/user";
|
||||
import {getMenu} from "@/api/module/home";
|
||||
import router from '@/router';
|
||||
|
||||
interface Tab {
|
||||
id: string
|
||||
@ -24,7 +25,12 @@ export const useUserStore = defineStore({
|
||||
actions: {
|
||||
async loadMenus(){
|
||||
const data = await getMenu({});
|
||||
this.menus = data.data;
|
||||
if(data.code == 1){
|
||||
this.menus = data.data;
|
||||
}else{
|
||||
this.menus = [];
|
||||
router.push('/login')
|
||||
}
|
||||
console.log(data);
|
||||
},
|
||||
async loadPermissions(){
|
||||
|
@ -3,7 +3,7 @@
|
||||
<lay-card>
|
||||
<div style="padding: 10px">
|
||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">加扣分项列表</span>
|
||||
<lay-button size="sm" border="green" @click="addShowMsd()">新增</lay-button>
|
||||
<lay-button size="sm" type="primary" @click="addShowMsd()">新增</lay-button>
|
||||
</div>
|
||||
<lay-table size="lg" ref="tableRef6" children-column-name="children" :columns="columns6"
|
||||
:data-source="dataSource6">
|
||||
|
@ -3,7 +3,7 @@
|
||||
<lay-card>
|
||||
<div style="padding: 10px">
|
||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">基础评分列表</span>
|
||||
<lay-button size="sm" border="green" @click="addShow=true;addData.pid=0;addData.id=0;addIsEdit=1;">新增</lay-button>
|
||||
<lay-button size="sm" type="primary" @click="addShow=true;addData.pid=0;addData.id=0;addIsEdit=1;">新增</lay-button>
|
||||
</div>
|
||||
<lay-table size="lg" ref="tableRef6" children-column-name="children" :columns="columns6"
|
||||
:data-source="dataSource6">
|
||||
|
@ -22,7 +22,7 @@
|
||||
<div style="flex: 1; padding: 10px;">
|
||||
<div style="padding: 10px">
|
||||
<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>
|
||||
<lay-table :page="page" :height="'100%'" :columns="columns" :loading="loading" :data-source="dataSource"
|
||||
v-model:selected-keys="selectedKeys" @change="change" @sortChange="sortChange">
|
||||
|
@ -26,14 +26,14 @@
|
||||
<lay-row style="min-width: 1200px">
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="发生时间:">
|
||||
<lay-date-picker style="width: 100%" v-model="searchForm.fsdate" placeholder="发生时间"
|
||||
<lay-date-picker style="width: 100%" :max="dayjs().format('YYYY-MM-DD')" v-model="searchForm.fsdate" placeholder="发生时间"
|
||||
allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
<lay-col :md="6">
|
||||
<lay-form-item label="考评对象:">
|
||||
<lay-select v-model="searchForm.user_id" placeholder="请选择考评对象" :show-search="true">
|
||||
<lay-select-option v-for="user in userList" :key="user.id" :value="user.id" :label="user.nickname">
|
||||
<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>
|
||||
@ -90,7 +90,7 @@
|
||||
<lay-layer v-model="detailVisible" :type="4" title="详情查看" :area="['950px', '100%']"
|
||||
:btn="showType == 1 ? '' : addButton">
|
||||
<div style="padding: 20px">
|
||||
<lay-descriptions title="考评信息" :column="2" border>
|
||||
<lay-descriptions title="审核信息" :column="2" border>
|
||||
<lay-descriptions-item label="考评人">
|
||||
{{ detailForm.nickname }}
|
||||
</lay-descriptions-item>
|
||||
@ -124,6 +124,11 @@
|
||||
<a style="color: #009688" :href="detailForm.fj_url" target="_blank">附件下载</a>
|
||||
</lay-descriptions-item>
|
||||
</lay-descriptions>
|
||||
<lay-descriptions v-if="detailForm.status == 3 " title="驳回原因" :column="1" border style="margin-top: 20px">
|
||||
<lay-descriptions-item label="驳回原因">
|
||||
{{ detailForm.content }}
|
||||
</lay-descriptions-item>
|
||||
</lay-descriptions>
|
||||
<lay-descriptions v-if="showType == 2" title="审核" :column="1" border style="margin-top: 20px">
|
||||
<lay-descriptions-item label="状态">
|
||||
<lay-radio-group name="action" v-model="type">
|
||||
@ -145,7 +150,9 @@ import { layer } from '@layui/layui-vue'
|
||||
import { getAdditionIndexManage, getAdditionIndexManageExamine, getDoctorName, getSolicitopinionsPlexamine, getUserGroupNew } from '@/api/module/home';
|
||||
import { useUserStore } from '@/store/user';
|
||||
import { baseURL } from '@/api/http';
|
||||
import dayjs from 'dayjs'
|
||||
const userStore = useUserStore()
|
||||
|
||||
const exportExcel = () => {
|
||||
if (selectedKeys.value.length == 0) {
|
||||
layer.msg('请选择要导出的数据', { icon: 2 })
|
||||
@ -191,7 +198,7 @@ const batchAudit = (type: number) => {
|
||||
layer.msg('请输入驳回原因', { icon: 2 })
|
||||
return
|
||||
}
|
||||
getSolicitopinionsPlexamine({ ids: ids, reason: data, status: 3 }).then((res) => {
|
||||
getSolicitopinionsPlexamine({ ids: ids, content: data, status: 3 }).then((res) => {
|
||||
console.log(res);
|
||||
if (res.code == 1) {
|
||||
layer.msg(res.msg, { icon: 1 })
|
||||
@ -331,18 +338,7 @@ const columns = ref([
|
||||
])
|
||||
const dataSource = ref()
|
||||
const detailVisible = ref(false)
|
||||
const detailForm = ref({
|
||||
nickname: '',
|
||||
group_name: '',
|
||||
fsdate: '',
|
||||
zm_nickname: '',
|
||||
assessment_type: '',
|
||||
project_name: '',
|
||||
score_value: '',
|
||||
notes: '',
|
||||
status: 1,
|
||||
fj_url: ''
|
||||
})
|
||||
const detailForm = ref({})
|
||||
// 搜索表单
|
||||
const searchForm = ref({
|
||||
fsdate: '',
|
||||
@ -354,6 +350,7 @@ const searchForm = ref({
|
||||
const showType = ref(1)
|
||||
// 显示详情方法
|
||||
const showDetail = (row: any, type: number) => {
|
||||
console.log(row);
|
||||
detailForm.value = row
|
||||
detailVisible.value = true;
|
||||
showType.value = type;
|
||||
@ -364,7 +361,7 @@ const addButton = ref([
|
||||
{
|
||||
text: "确认",
|
||||
callback: async () => {
|
||||
getAdditionIndexManageExamine({ id: isId.value, status: type.value }).then((res) => {
|
||||
getAdditionIndexManageExamine({ id: isId.value, status: type.value, content: reason.value }).then((res) => {
|
||||
if (res.code == 1) {
|
||||
layer.msg(res.msg, { icon: 1 })
|
||||
} else {
|
||||
|
@ -63,7 +63,7 @@
|
||||
<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">
|
||||
<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>
|
||||
@ -84,11 +84,11 @@
|
||||
<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" 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">
|
||||
<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>
|
||||
@ -163,6 +163,7 @@ import { ref, reactive, onMounted } from 'vue'
|
||||
import { layer } from '@layui/layer-vue'
|
||||
import { scoringGetHierarchicalData, getDoctorName, getAddition, getAdditionCreate, getAdditionUpdate, getAdditionDelete } from '@/api/module/home'
|
||||
import { useUserStore } from '@/store/user'
|
||||
import dayjs from 'dayjs'
|
||||
|
||||
interface EvaluationItem {
|
||||
id: number
|
||||
|
@ -26,7 +26,7 @@
|
||||
<lay-row style="min-width: 1200px">
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="月份:" :label-width="100">
|
||||
<lay-date-picker type="yearmonth" style="width: 100%" v-model="searchForm.month"
|
||||
<lay-date-picker :max="dayjs().format('YYYY-MM')" type="yearmonth" style="width: 100%" v-model="searchForm.month"
|
||||
placeholder="发生时间" allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
|
@ -7,8 +7,8 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度:" label-width="50">
|
||||
<lay-date-picker type="year" v-model="searchAccount" placeholder="请选择"
|
||||
allow-clear></lay-date-picker>
|
||||
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="searchAccount"
|
||||
placeholder="请选择" allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
<lay-col :md="4">
|
||||
@ -27,10 +27,9 @@
|
||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">月度评价填报</span>
|
||||
<lay-button type="primary" @click="addShow = true" size="sm">新增自我评价</lay-button>
|
||||
</div>
|
||||
<lay-table :columns="columns" :dataSource="dataSource" :even="true" height="500px"
|
||||
size="lg">
|
||||
<lay-table :columns="columns" :dataSource="dataSource" :even="true" height="500px" size="lg">
|
||||
<template #group_evaluation="scope">
|
||||
<span>{{ scope.row.group_evaluation? scope.row.group_evaluation : '未评价'}}</span>
|
||||
<span>{{ scope.row.group_evaluation ? scope.row.group_evaluation : '未评价' }}</span>
|
||||
</template>
|
||||
<template #operator="scope">
|
||||
<span style="cursor: pointer;color: #009688" @click="toDetail(scope.row)">详情</span>
|
||||
@ -58,7 +57,8 @@
|
||||
<div style="margin-bottom: 20px">评价时间:{{ infoData.selftime }}</div>
|
||||
<div style="margin-bottom: 20px">我的评价:{{ infoData.self_evaluation }}</div>
|
||||
<div style="margin-bottom: 20px">科室:{{ infoData.group_name }}</div>
|
||||
<div style="margin-bottom: 20px">科室评价:{{ infoData.group_evaluation? infoData.group_evaluation : '未评价' }}</div>
|
||||
<div style="margin-bottom: 20px">科室评价:{{ infoData.group_evaluation ? infoData.group_evaluation : '未评价' }}
|
||||
</div>
|
||||
</lay-container>
|
||||
</lay-layer>
|
||||
</lay-container>
|
||||
@ -92,10 +92,12 @@ onMounted(() => {
|
||||
//getMonthlyContent();
|
||||
})
|
||||
const getMonthlyEvaluation = () => {
|
||||
monthlyEvaluation({ 'type': 1 }).then((res) => {
|
||||
monthlyEvaluation({ 'type': 1, 'time': searchAccount.value }).then((res) => {
|
||||
console.log(res)
|
||||
if (res.code == 1) {
|
||||
dataSource.value = res.data;
|
||||
} else {
|
||||
dataSource.value = [];
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -103,6 +105,10 @@ const searchAccount = ref(dayjs().year())
|
||||
|
||||
function toReset() {
|
||||
searchAccount.value = dayjs().year()
|
||||
getMonthlyEvaluation();
|
||||
}
|
||||
const toSearch = () => {
|
||||
getMonthlyEvaluation();
|
||||
}
|
||||
const columns = [
|
||||
{
|
||||
@ -128,7 +134,7 @@ const columns = [
|
||||
key: 'self_evaluation',
|
||||
ellipsisTooltip: true,
|
||||
align: 'center',
|
||||
},{
|
||||
}, {
|
||||
title: '科室',
|
||||
key: 'group_name',
|
||||
align: 'center',
|
||||
|
@ -16,21 +16,22 @@
|
||||
<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>
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="月度" label-width="80">
|
||||
<lay-date-picker type="yearmonth" v-model="yearmonth" placeholder="月度" allow-clear></lay-date-picker>
|
||||
<lay-date-picker type="yearmonth" :max="dayjs().format('YYYY-MM')" v-model="yearmonth"
|
||||
placeholder="月度" allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
<lay-col :md="6">
|
||||
<lay-form-item label="考评对象" label-width="120">
|
||||
<lay-select v-model="userId" :show-search="true" placeholder="请选择" :allowClear="true">
|
||||
<lay-select-option v-for="item in dataSerSource" :value="item.id"
|
||||
:label="item.nickname"></lay-select-option>
|
||||
:label="item.nickname + '(' + item.code + ')'"></lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
@ -106,8 +107,8 @@
|
||||
</template>
|
||||
<template v-slot:department_score="{ row, rowIndex }">
|
||||
<div v-if="row.pid == 0">已评分:{{ row.department_score ? row.department_score : 0 }}</div>
|
||||
<lay-input-number :disabled="addIsInfo==1" @change="inputKsChange(row)" v-if="row.pid != 0" :min="0" :max="row.base_score" v-model="row.department_score"
|
||||
position="right"></lay-input-number>
|
||||
<lay-input-number :disabled="addIsInfo == 1" @change="inputKsChange(row)" v-if="row.pid != 0" :min="0"
|
||||
:max="row.base_score" v-model="row.department_score" position="right"></lay-input-number>
|
||||
</template>
|
||||
<!-- <template v-slot:yyinput="{ data, rowIndex }">
|
||||
<template v-if="userStore.userInfo.level == 3 || thisInfo.scoringrecord_status == 4">
|
||||
@ -242,15 +243,21 @@ const userShow = ref(false);
|
||||
const userColumns = ref([
|
||||
{ title: '月度', width: '80px', key: 'month', 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: '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: 'hospital_score', align: 'center' },
|
||||
{ title: '状态', width: '100px', key: 'scoringrecord_status', customSlot: 'scoringrecord_status', align: 'center' },
|
||||
{ title: '操作', width: '100px', key: 'operator', customSlot: 'operator', align: 'center' },
|
||||
@ -325,7 +332,7 @@ const infoShow = ref(false);
|
||||
const yearmonth = ref();
|
||||
const getList = () => {
|
||||
getMonthlyUserList({
|
||||
'user_id': userId.value,
|
||||
'user_id':userId.value,
|
||||
'group_id': group_id.value,
|
||||
'time': yearmonth.value,
|
||||
'evaluation_schedule_id': tab_id.value,
|
||||
@ -347,7 +354,7 @@ const getSerList = () => {
|
||||
'group_id': group_id.value,
|
||||
'evaluation_schedule_id': tab_id.value,
|
||||
page: 1,
|
||||
size: 999
|
||||
size: 9999
|
||||
}).then((res) => {
|
||||
console.log(res)
|
||||
if (res.code == 1) {
|
||||
@ -357,6 +364,12 @@ const getSerList = () => {
|
||||
}
|
||||
})
|
||||
}
|
||||
const handleClick = (d) => {
|
||||
console.log(d);
|
||||
group_id.value = d.id;
|
||||
getList();
|
||||
getSerList();
|
||||
}
|
||||
const thisInfo = ref();
|
||||
const getInfo = (row, type) => {
|
||||
infoShow.value = true;
|
||||
@ -452,12 +465,16 @@ const columns = ref([
|
||||
{ title: '工号', width: '100px', key: 'code', align: 'center' },
|
||||
{ title: '部门', width: '120px', key: 'group_name', align: 'center' },
|
||||
// { title: '医院评分', width: '100px', key: 'hospital_score_scoringrecord', 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: '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: 'scoringrecord_status', customSlot: 'scoringrecord_status', align: 'center' },
|
||||
{
|
||||
title: '操作',
|
||||
|
@ -7,7 +7,7 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度:" label-width="50">
|
||||
<lay-date-picker type="year" v-model="searchAccount" placeholder="请选择" allow-clear></lay-date-picker>
|
||||
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="searchAccount" placeholder="请选择" allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
<lay-col :md="4">
|
||||
@ -24,7 +24,7 @@
|
||||
<lay-card>
|
||||
<div style="padding: 10px">
|
||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">月度自评列表</span>
|
||||
<lay-button type="primary" size="sm">导出Excel</lay-button>
|
||||
<!-- <lay-button type="primary" size="sm">导出Excel</lay-button> -->
|
||||
</div>
|
||||
<lay-tab v-model="current1" @change="openTab">
|
||||
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id">
|
||||
|
@ -30,7 +30,7 @@
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="发生时间:" :label-width="100">
|
||||
<lay-date-picker style="width: 100%" v-model="searchForm.fsdate"
|
||||
placeholder="发生时间" allow-clear></lay-date-picker>
|
||||
placeholder="发生时间" :max="dayjs().format('YYYY-MM-DD')" allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
<lay-col :md="6" v-if="userStore.userInfo.level == 1">
|
||||
@ -38,7 +38,7 @@
|
||||
<lay-select v-model="searchForm.user_id" placeholder="请选择考评对象"
|
||||
:show-search="true">
|
||||
<lay-select-option v-for="user in userList" :key="user.id"
|
||||
:value="user.id" :label="user.nickname">
|
||||
:value="user.id" :label="user.nickname + '(' + user.code + ')'">
|
||||
</lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
@ -156,7 +156,7 @@
|
||||
<a style="color: #009688" :href="detailForm.fj_url" target="_blank">附件下载</a>
|
||||
</lay-descriptions-item>
|
||||
</lay-descriptions>
|
||||
<lay-descriptions v-if="detailForm.status == 1" title="审核" :column="1" border style="margin-top: 20px">
|
||||
<lay-descriptions v-if="detailForm.status == 1 && addIsInfo == 2" title="审核" :column="1" border style="margin-top: 20px">
|
||||
<lay-descriptions-item label="状态">
|
||||
<lay-radio-group name="action" v-model="type">
|
||||
<lay-radio :value="2">通过</lay-radio>
|
||||
@ -177,6 +177,7 @@ import { getDoctorName, getRejectRedEnvelopes, rejectRedEnvelopesCreate, rejectR
|
||||
import { layer } from '@layui/layui-vue';
|
||||
import { useUserStore } from '@/store/user';
|
||||
import { baseURL } from '@/api/http';
|
||||
import dayjs from 'dayjs';
|
||||
const userStore = useUserStore()
|
||||
// 搜索表单
|
||||
const searchForm = ref({
|
||||
|
@ -11,7 +11,7 @@
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="发生时间:" :label-width="100">
|
||||
<lay-date-picker style="width: 100%" v-model="searchForm.fsdate"
|
||||
placeholder="发生时间" allow-clear></lay-date-picker>
|
||||
placeholder="发生时间" :max="dayjs().format('YYYY-MM-DD')" allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
<lay-col :md="6" v-if="userStore.userInfo.level == 1">
|
||||
@ -19,7 +19,7 @@
|
||||
<lay-select v-model="searchForm.user_id" placeholder="请选择考评对象"
|
||||
:show-search="true">
|
||||
<lay-select-option v-for="user in userList" :key="user.id"
|
||||
:value="user.id" :label="user.nickname">
|
||||
:value="user.id" :label="user.nickname+'('+user.code+')'">
|
||||
</lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
@ -86,7 +86,7 @@
|
||||
<lay-form-item label="考评对象" required prop="user_id">
|
||||
<lay-select disabled v-model="form.user_id" placeholder="请选择考评对象" :show-search="true">
|
||||
<lay-select-option v-for="user in userList" :key="user.id" :value="user.id"
|
||||
:label="user.nickname">
|
||||
:label="user.nickname+'('+user.code+')'">
|
||||
</lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
@ -96,12 +96,12 @@
|
||||
</lay-cascader>
|
||||
</lay-form-item> -->
|
||||
<lay-form-item label="发生日期" required prop="fsdate">
|
||||
<lay-date-picker v-model="form.fsdate" placeholder="请选择发生日期"></lay-date-picker>
|
||||
<lay-date-picker v-model="form.fsdate" :max="dayjs().format('YYYY-MM-DD')" placeholder="请选择发生日期"></lay-date-picker>
|
||||
</lay-form-item>
|
||||
<lay-form-item label="证明人" required prop="zm_user_id">
|
||||
<lay-select v-model="form.zm_user_id" placeholder="请选择证明人" :show-search="true">
|
||||
<lay-select-option v-for="user in userList" :key="user.id" :value="user.id"
|
||||
:label="user.nickname">
|
||||
:label="user.nickname+'('+user.code+')'">
|
||||
</lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
@ -116,7 +116,7 @@
|
||||
placeholder="请输入退还金额"></lay-input-number>
|
||||
</lay-form-item>
|
||||
<lay-form-item label="退还日期" required prop="thdate">
|
||||
<lay-date-picker v-model="form.thdate" placeholder="请选择退还日期"></lay-date-picker>
|
||||
<lay-date-picker v-model="form.thdate" :max="dayjs().format('YYYY-MM-DD')" placeholder="请选择退还日期"></lay-date-picker>
|
||||
</lay-form-item>
|
||||
<lay-form-item label="退还方式" required prop="refunding_type" >
|
||||
<lay-select v-model="form.refunding_type" placeholder="请选择退还方式">
|
||||
|
@ -7,7 +7,7 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度:" label-width="50">
|
||||
<lay-date-picker type="year" v-model="searchAccount" placeholder="请选择"
|
||||
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="searchAccount" placeholder="请选择"
|
||||
allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
@ -98,11 +98,16 @@ onMounted(() => {
|
||||
getMonthlyEvaluation();
|
||||
//getMonthlyContent();
|
||||
})
|
||||
const toSearch = () => {
|
||||
getMonthlyEvaluation();
|
||||
}
|
||||
const getMonthlyEvaluation = () => {
|
||||
monthlyEvaluation({ 'type': 2 }).then((res) => {
|
||||
monthlyEvaluation({ 'type': 2, 'time': searchAccount.value }).then((res) => {
|
||||
console.log(res)
|
||||
if (res.code == 1) {
|
||||
dataSource.value = res.data;
|
||||
} else {
|
||||
dataSource.value = [];
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -110,6 +115,7 @@ const searchAccount = ref(dayjs().year())
|
||||
|
||||
function toReset() {
|
||||
searchAccount.value = dayjs().year()
|
||||
getMonthlyEvaluation();
|
||||
}
|
||||
const columns = [
|
||||
{
|
||||
|
@ -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>
|
||||
@ -39,7 +39,7 @@
|
||||
<lay-col :md="6">
|
||||
<lay-form-item label="考评对象" label-width="80px">
|
||||
<lay-select v-model="userId" :show-search="true" placeholder="请选择" :allowClear="true">
|
||||
<lay-select-option v-for="item in dataSerSource" :value="item.id" :label="item.nickname"></lay-select-option>
|
||||
<lay-select-option v-for="item in dataSerSource" :value="item.id" :label="item.nickname+'('+item.code+')'"></lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
@ -415,12 +415,17 @@ function toReset() {
|
||||
evaluateTarget: '',
|
||||
status: ''
|
||||
}
|
||||
userId.value = '';
|
||||
getList();
|
||||
getSserList();
|
||||
}
|
||||
|
||||
function handleClick(node: any) {
|
||||
// selectedNode.value = JSON.parse(JSON.stringify(node))
|
||||
page.current = 1;
|
||||
group_id.value = node.id;
|
||||
getList();
|
||||
getSserList();
|
||||
// change(page)
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度:" label-width="50">
|
||||
<lay-date-picker type="year" v-model="searchAccount" placeholder="请选择" allow-clear></lay-date-picker>
|
||||
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="searchAccount" placeholder="请选择" allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
<lay-col :md="4">
|
||||
@ -24,12 +24,11 @@
|
||||
<lay-card>
|
||||
<div style="padding: 10px">
|
||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">季度自评列表</span>
|
||||
<lay-button type="primary" size="sm">导出Excel</lay-button>
|
||||
<!-- <lay-button type="primary" size="sm">导出Excel</lay-button> -->
|
||||
</div>
|
||||
<lay-tab v-model="current1" @change="openTab">
|
||||
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id"></lay-tab-item>
|
||||
</lay-tab>
|
||||
<lay-table :columns="columns" :dataSource="dataSource" :even="true" height="500px" size="lg">
|
||||
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id">
|
||||
<lay-table :columns="columns" :dataSource="dataSource" :even="true" height="500px" size="lg">
|
||||
<template v-slot:id="{ data }">
|
||||
{{ data.id }}
|
||||
</template>
|
||||
@ -47,6 +46,9 @@
|
||||
<span style="color: #00A394;cursor: pointer" v-if="data.if == 1" @click="insZp(data)">开始自评</span>
|
||||
</template>
|
||||
</lay-table>
|
||||
</lay-tab-item>
|
||||
</lay-tab>
|
||||
|
||||
</lay-card>
|
||||
</lay-col>
|
||||
</lay-row>
|
||||
|
@ -87,7 +87,7 @@
|
||||
<lay-form :model="model11" ref="layFormRef11" mode="inline">
|
||||
<lay-form-item label="证件照" prop="username">
|
||||
<lay-upload style="width:180px;" ref="uploadRefA" :number="1" field="file" :size="1000"
|
||||
:headers="{ token: userStore.token }" url="http://yfyd.hschool.com.cn/api/common/upload"
|
||||
: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>
|
||||
@ -135,7 +135,7 @@
|
||||
</lay-form-item>
|
||||
<lay-form-item label="资格证图片" prop="username">
|
||||
<lay-upload style="width:180px;" ref="uploadRef" :number="1" field="file" :size="1000"
|
||||
:headers="{ token: userStore.token }" url="http://yfyd.hschool.com.cn/api/common/upload"
|
||||
:headers="{ token: userStore.token }" :url="baseURL+'/api/common/upload'"
|
||||
@cutdone="getCutDone" v-model="file1" :auto="true" acceptMime="images" :cut="false"
|
||||
:cutOptions="cutOptions" @done="getFileDone">
|
||||
<template #preview>
|
||||
@ -193,6 +193,7 @@ import {
|
||||
userGroupData
|
||||
} from "@/api/module/home";
|
||||
import { useUserStore } from "@/store/user";
|
||||
import { baseURL } from "@/api/http";
|
||||
|
||||
const cutUrl = ref("");
|
||||
const uploadRef = ref(null)
|
||||
|
@ -7,7 +7,7 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度:" label-width="50">
|
||||
<lay-date-picker type="year" v-model="searchAccount" placeholder="请选择"
|
||||
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="searchAccount" placeholder="请选择"
|
||||
allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
@ -94,11 +94,16 @@ onMounted(() => {
|
||||
getMonthlyEvaluation();
|
||||
//getMonthlyContent();
|
||||
})
|
||||
const toSearch = () => {
|
||||
getMonthlyEvaluation();
|
||||
}
|
||||
const getMonthlyEvaluation = () => {
|
||||
monthlyEvaluation({ 'type': 3 }).then((res) => {
|
||||
monthlyEvaluation({ 'type': 3, 'time': searchAccount.value }).then((res) => {
|
||||
console.log(res)
|
||||
if (res.code == 1) {
|
||||
dataSource.value = res.data;
|
||||
} else {
|
||||
dataSource.value = [];
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -106,6 +111,7 @@ const searchAccount = ref(dayjs().year())
|
||||
|
||||
function toReset() {
|
||||
searchAccount.value = dayjs().year()
|
||||
getMonthlyEvaluation();
|
||||
}
|
||||
const columns = [
|
||||
{
|
||||
|
@ -23,14 +23,14 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度" label-width="80px">
|
||||
<lay-date-picker type="year" 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">
|
||||
<lay-form-item label="考评对象" label-width="80px">
|
||||
<lay-select v-model="userId" :show-search="true" placeholder="请选择" :allowClear="true">
|
||||
<lay-select-option v-for="item in dataSerSource" :value="item.id"
|
||||
:label="item.nickname"></lay-select-option>
|
||||
:label="item.nickname + '(' + item.code + ')'"></lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
|
@ -23,14 +23,14 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度" label-width="80px">
|
||||
<lay-date-picker type="year" 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">
|
||||
<lay-form-item label="考评对象" label-width="80px">
|
||||
<lay-select v-model="userId" :show-search="true" placeholder="请选择" :allowClear="true">
|
||||
<lay-select-option v-for="item in dataSerSource" :value="item.id"
|
||||
:label="item.nickname"></lay-select-option>
|
||||
:label="item.nickname + '(' + item.code + ')'"></lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
|
@ -23,14 +23,14 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度" label-width="80px">
|
||||
<lay-date-picker type="year" 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">
|
||||
<lay-form-item label="考评对象" label-width="80px">
|
||||
<lay-select v-model="userId" :show-search="true" placeholder="请选择" :allowClear="true">
|
||||
<lay-select-option v-for="item in dataSerSource" :value="item.id"
|
||||
:label="item.nickname"></lay-select-option>
|
||||
:label="item.nickname + '(' + item.code + ')'"></lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度:" label-width="50">
|
||||
<lay-date-picker type="year" v-model="searchAccount" placeholder="请选择" allow-clear></lay-date-picker>
|
||||
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="searchAccount" placeholder="请选择" allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
<lay-col :md="4">
|
||||
@ -24,7 +24,7 @@
|
||||
<lay-card>
|
||||
<div style="padding: 10px">
|
||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">年度自评列表</span>
|
||||
<lay-button type="primary" size="sm">导出Excel</lay-button>
|
||||
<lay-button @click="exportExcel" type="primary" size="sm">导出考评表</lay-button>
|
||||
</div>
|
||||
<lay-tab v-model="current1" @change="openTab">
|
||||
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id">
|
||||
@ -83,6 +83,7 @@ import {
|
||||
} from '../../api/module/home'
|
||||
import { useUserStore } from "@/store/user";
|
||||
import dayjs from "dayjs";
|
||||
import { baseURL } from '@/api/http'
|
||||
const current1 = ref(1);
|
||||
const tabList = ref([]);
|
||||
const userStore = useUserStore()
|
||||
@ -94,6 +95,11 @@ const addIsInfo = ref(1);
|
||||
|
||||
const yearName = ref('');
|
||||
|
||||
const exportExcel = () => {
|
||||
var id=userStore.userInfo.id;
|
||||
window.open(`${baseURL}/api/backend/pdf/personalProfile?id=${id}&time=${searchAccount.value}`)
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
//getYearList();
|
||||
//getYearContent();
|
||||
|
@ -32,7 +32,7 @@
|
||||
</lay-col>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="时间" label-width="80">
|
||||
<lay-date-picker type="year" v-model="yearmonth" placeholder="年"
|
||||
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="yearmonth" placeholder="年"
|
||||
allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
|
@ -23,14 +23,14 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度" label-width="80px">
|
||||
<lay-date-picker type="year" 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">
|
||||
<lay-form-item label="考评对象" label-width="80px">
|
||||
<lay-select v-model="userId" :show-search="true" placeholder="请选择" :allowClear="true">
|
||||
<lay-select-option v-for="item in dataSerSource" :value="item.id"
|
||||
:label="item.nickname"></lay-select-option>
|
||||
:label="item.nickname + '(' + item.code + ')'"></lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
|
@ -23,14 +23,14 @@
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度" label-width="80px">
|
||||
<lay-date-picker type="year" 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">
|
||||
<lay-form-item label="考评对象" label-width="80px">
|
||||
<lay-select v-model="userId" :show-search="true" placeholder="请选择" :allowClear="true">
|
||||
<lay-select-option v-for="item in dataSerSource" :value="item.id"
|
||||
:label="item.nickname"></lay-select-option>
|
||||
:label="item.nickname + '(' + item.code + ')'"></lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
|
@ -1,62 +1,69 @@
|
||||
<template>
|
||||
<lay-container style="padding: 20px">
|
||||
<lay-card>
|
||||
<lay-row :space="10">
|
||||
<lay-col :md="24">
|
||||
<lay-card>
|
||||
<lay-form style="margin-top: 20px">
|
||||
<lay-row>
|
||||
<lay-col :md="5">
|
||||
<lay-form-item label="年度:" label-width="50">
|
||||
<lay-date-picker type="year" :max="dayjs().format('YYYY')" v-model="searchAccount" placeholder="请选择"
|
||||
allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
<lay-col :md="4">
|
||||
<lay-form-item label-width="0">
|
||||
<lay-button type="primary" @click="toSearch">查询</lay-button>
|
||||
<lay-button @click="toReset">重置</lay-button>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
</lay-row>
|
||||
</lay-form>
|
||||
</lay-card>
|
||||
</lay-col>
|
||||
<lay-col :md="24">
|
||||
<lay-card>
|
||||
<div style="padding: 10px">
|
||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">年度考评自动公示</span>
|
||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">年度考评自动公示</span>
|
||||
</div>
|
||||
|
||||
<lay-table :page="page" height="600px" size="lg" @change="changePage" :columns="columns"
|
||||
:data-source="dataSource">
|
||||
<!-- <template v-slot:content="{ data }">
|
||||
:data-source="dataSource">
|
||||
<!-- <template v-slot:content="{ data }">
|
||||
<div v-html="data.content"></div>
|
||||
</template> -->
|
||||
<template v-slot:status="{ data }">
|
||||
<span v-if="data.status == 1">已发布</span>
|
||||
<span v-if="data.status == 0">已隐藏</span>
|
||||
</template>
|
||||
<template v-slot:operator="{ data }">
|
||||
<lay-space size="lg">
|
||||
<span style="color: #00A394;cursor: pointer" @click="viewDetail(data)">下载公示</span>
|
||||
</lay-space>
|
||||
</template>
|
||||
<template v-slot:status="{ data }">
|
||||
<span v-if="data.status == 1">已发布</span>
|
||||
<span v-if="data.status == 0">已隐藏</span>
|
||||
</template>
|
||||
<template v-slot:operator="{ data }">
|
||||
<lay-space size="lg">
|
||||
<span style="color: #00A394;cursor: pointer" @click="viewDetail(data)">下载公示</span>
|
||||
</lay-space>
|
||||
</template>
|
||||
</lay-table>
|
||||
</lay-card>
|
||||
<lay-layer v-model="detailShow" title="党风廉政教育详情" :type="4" :shade="true" :area="['650px', '100%']"
|
||||
:btn="detailButton">
|
||||
<lay-container fluid="true" style="padding: 20px">
|
||||
<h2 style="text-align: center; margin-bottom: 20px;">{{ detailData.party_style_name }}</h2>
|
||||
<div class="detail-content" v-html="detailData.party_style_countent"></div>
|
||||
</lay-container>
|
||||
</lay-layer>
|
||||
</lay-card>
|
||||
</lay-col>
|
||||
</lay-row>
|
||||
</lay-container>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {
|
||||
educationList,
|
||||
userYearData,
|
||||
automaticPublicity
|
||||
} from '../../api/module/home'
|
||||
import { ref, onMounted, reactive, watch, toRaw } from 'vue'
|
||||
import { layer } from '@layui/layer-vue'
|
||||
import { useUserStore } from '@/store/user'
|
||||
const userStore = useUserStore()
|
||||
|
||||
// 分页变化
|
||||
const changePage = (ppc: { current: number; limit: number }) => {
|
||||
page.current = ppc.current;
|
||||
page.limit = ppc.limit;
|
||||
getNoticeList();
|
||||
}
|
||||
import dayjs from "dayjs";
|
||||
const searchAccount = ref()
|
||||
// 列表数据
|
||||
const dataSource = ref([]);
|
||||
|
||||
|
||||
// 定义数据类型接口
|
||||
interface EducationData {
|
||||
id: number;
|
||||
party_style_name: string;
|
||||
party_style_countent: string;
|
||||
status?: number; // 添加可选的状态字段,如果后端支持
|
||||
}
|
||||
|
||||
// 修改分页参数定义
|
||||
const page = reactive({
|
||||
current: 1,
|
||||
@ -67,84 +74,54 @@ const page = reactive({
|
||||
|
||||
onMounted(() => {
|
||||
getNoticeList()
|
||||
|
||||
// Wait for editor to be mounted and initialized
|
||||
// nextTick(() => {
|
||||
// // Add null check before accessing editor
|
||||
// if (editorRef.value && editorRef.value.getQuill()) {
|
||||
// // Initialize title tooltips
|
||||
// initTitle()
|
||||
|
||||
// // Add paste event listener
|
||||
// const editor = editorRef.value.getQuill()
|
||||
// editor.root.addEventListener('paste', customPaste, false)
|
||||
// }
|
||||
// })
|
||||
});
|
||||
|
||||
|
||||
const getNoticeList = () => {
|
||||
educationList({ page: page.current, size: page.limit }).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
dataSource.value = res.data.data;
|
||||
page.total = res.data.count;
|
||||
} else {
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
automaticPublicity({}).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
dataSource.value = res.data;
|
||||
} else {
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const columns = [
|
||||
{
|
||||
title: "年度",
|
||||
width: "180px",
|
||||
key: "party_style_name",
|
||||
align: 'center'
|
||||
title: "年度",
|
||||
width: "180px",
|
||||
key: "niandu",
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: "考评人数",
|
||||
width: "180px",
|
||||
key: "createtime",
|
||||
align: 'center'
|
||||
title: "考评项目",
|
||||
width: "180px",
|
||||
key: "title",
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: "已考评人数",
|
||||
width: "180px",
|
||||
key: "createtime",
|
||||
align: 'center'
|
||||
title: "考评人数",
|
||||
width: "180px",
|
||||
key: "kaopingrenshu",
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
width: '120px',
|
||||
customSlot: 'operator',
|
||||
key: 'operator',
|
||||
align: 'center',
|
||||
fixed: 'right'
|
||||
title: "已考评人数",
|
||||
width: "180px",
|
||||
key: "yikaopingrenshu",
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
width: '120px',
|
||||
customSlot: 'operator',
|
||||
key: 'operator',
|
||||
align: 'center',
|
||||
fixed: 'right'
|
||||
}
|
||||
]
|
||||
// 详情查看相关
|
||||
const detailShow = ref(false);
|
||||
const detailData = reactive<EducationData>({
|
||||
id: 0,
|
||||
party_style_name: '',
|
||||
party_style_countent: ''
|
||||
});
|
||||
|
||||
const viewDetail = (data: EducationData) => {
|
||||
detailShow.value = true;
|
||||
detailData.id = data.id;
|
||||
detailData.party_style_name = data.party_style_name;
|
||||
detailData.party_style_countent = data.party_style_countent;
|
||||
}
|
||||
|
||||
const detailButton = ref([
|
||||
{
|
||||
text: "关闭",
|
||||
callback: () => {
|
||||
detailShow.value = false;
|
||||
}
|
||||
}
|
||||
])
|
||||
</script>
|
||||
<style scoped>
|
||||
:deep(.w-e-text-container) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user