3.11
This commit is contained in:
parent
a0070aa65d
commit
fce1e1b5f4
6
components.d.ts
vendored
6
components.d.ts
vendored
@ -7,7 +7,6 @@ export {}
|
||||
/* prettier-ignore */
|
||||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
LayBadge: typeof import('@layui/layui-vue')['LayBadge']
|
||||
LayBody: typeof import('@layui/layui-vue')['LayBody']
|
||||
LayBreadcrumb: typeof import('@layui/layui-vue')['LayBreadcrumb']
|
||||
LayBreadcrumbItem: typeof import('@layui/layui-vue')['LayBreadcrumbItem']
|
||||
@ -18,8 +17,6 @@ declare module 'vue' {
|
||||
LayCol: typeof import('@layui/layui-vue')['LayCol']
|
||||
LayConfigProvider: typeof import('@layui/layui-vue')['LayConfigProvider']
|
||||
LayContainer: typeof import('@layui/layui-vue')['LayContainer']
|
||||
LayCountUp: typeof import('@layui/layui-vue')['LayCountUp']
|
||||
LayDate: typeof import('@layui/layui-vue')['LayDate']
|
||||
LayDatePicker: typeof import('@layui/layui-vue')['LayDatePicker']
|
||||
LayDescriptions: typeof import('@layui/layui-vue')['LayDescriptions']
|
||||
LayDescriptionsItem: typeof import('@layui/layui-vue')['LayDescriptionsItem']
|
||||
@ -41,9 +38,7 @@ declare module 'vue' {
|
||||
LayLogo: typeof import('@layui/layui-vue')['LayLogo']
|
||||
LayMenu: typeof import('@layui/layui-vue')['LayMenu']
|
||||
LayMenuItem: typeof import('@layui/layui-vue')['LayMenuItem']
|
||||
LayPage: typeof import('@layui/layui-vue')['LayPage']
|
||||
LayPopconfirm: typeof import('@layui/layui-vue')['LayPopconfirm']
|
||||
LayProgress: typeof import('@layui/layui-vue')['LayProgress']
|
||||
LayRadio: typeof import('@layui/layui-vue')['LayRadio']
|
||||
LayRadioGroup: typeof import('@layui/layui-vue')['LayRadioGroup']
|
||||
LayRow: typeof import('@layui/layui-vue')['LayRow']
|
||||
@ -64,6 +59,5 @@ declare module 'vue' {
|
||||
LayUpload: typeof import('@layui/layui-vue')['LayUpload']
|
||||
RouterLink: typeof import('vue-router')['RouterLink']
|
||||
RouterView: typeof import('vue-router')['RouterView']
|
||||
WangEditor: typeof import('./src/components/WangEditor/index.vue')['default']
|
||||
}
|
||||
}
|
||||
|
@ -9,8 +9,8 @@ type TAxiosOption = {
|
||||
headers: object;
|
||||
}
|
||||
//记得修改上传路径/api/common/upload
|
||||
//const baseURL = 'http://yfyd.hschool.com.cn' // 设置基础URL前缀
|
||||
const baseURL="/api";
|
||||
const baseURL = 'http://yfyd.hschool.com.cn' // 设置基础URL前缀
|
||||
//const baseURL="http://127.0.0.1";
|
||||
|
||||
// 导出baseURL,使其可以在其他页面使用
|
||||
export { baseURL };
|
||||
|
@ -347,6 +347,26 @@ export function uploadImage(data: any) {
|
||||
return Http.post('/api/common/upload', data)
|
||||
}
|
||||
|
||||
// 日志列表
|
||||
export function logList(data: any) {
|
||||
return Http.post('/api/backend/Logrecording/index', data)
|
||||
}
|
||||
|
||||
// 查询某一个用户所有的月度考评
|
||||
export function getMonthlyFindData(data: any) {
|
||||
return Http.post('/api/backend/Monthly/getMonthlyFindData', data)
|
||||
}
|
||||
// 查询某一个用户所有的季度考评
|
||||
export function getQuarterlyFindData(data: any) {
|
||||
return Http.post('/api/backend/Quarter/getQuarterlyFindData', data)
|
||||
}
|
||||
// 查询某一个用户所有的年度考评
|
||||
export function getAnnualFindData(data: any) {
|
||||
return Http.post('/api/backend/Year/getAnnualFindData', data)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
<div style="padding: 10px">
|
||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">登录日志列表</span>
|
||||
</div>
|
||||
<lay-table size="lg" ref="tableRef" :columns="columns" :data-source="dataSource">
|
||||
<lay-table height="600px" @change="changePage" :page="page" size="lg" ref="tableRef" :columns="columns" :data-source="dataSource">
|
||||
<template v-slot:event_type="{ data }">
|
||||
<span :style="{ color: data.event_type === '登录' ? '#67C23A' : '#409EFF' }">
|
||||
{{ data.event_type }}
|
||||
@ -16,22 +16,44 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ref, onMounted, reactive } from 'vue'
|
||||
import { layer } from '@layui/layer-vue'
|
||||
|
||||
import { logList } from '@/api/module/home';
|
||||
const page = reactive({
|
||||
current: 1,
|
||||
limit: 10,
|
||||
total: 1
|
||||
});
|
||||
// 定义接口类型
|
||||
interface LoginLog {
|
||||
id: number
|
||||
department: string // 科室
|
||||
record_time: string // 记录时间
|
||||
login_name: string // 登录名
|
||||
username: string // 用户名
|
||||
ip_address: string // 登录IP
|
||||
event_type: string // 事件类型(登录/登出)
|
||||
event_content: string // 事件内容
|
||||
device_info: string // 设备信息
|
||||
user_id: number
|
||||
ip_code: string // 登录IP
|
||||
createtime: string // 记录时间
|
||||
content: string // 事件内容
|
||||
nickname: string // 用户姓名
|
||||
work_number: string // 工号
|
||||
name: string // 科室
|
||||
}
|
||||
onMounted(() => {
|
||||
getLogList();
|
||||
});
|
||||
// 分页变化
|
||||
const changePage = (ppc) => {
|
||||
page.current = ppc.current;
|
||||
page.limit = ppc.limit;
|
||||
getLogList();
|
||||
}
|
||||
const getLogList = () => {
|
||||
logList({ page: page.current, size: page.limit }).then((res) => {
|
||||
if (res.code === 1) {
|
||||
dataSource.value = res.data.data;
|
||||
page.total = res.data.count;
|
||||
} else {
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 列表数据
|
||||
const dataSource = ref<LoginLog[]>([])
|
||||
|
||||
@ -40,44 +62,33 @@ const columns = [
|
||||
{
|
||||
title: "科室",
|
||||
width: "120px",
|
||||
key: "department"
|
||||
key: "name"
|
||||
},
|
||||
{
|
||||
title: "记录时间",
|
||||
width: "180px",
|
||||
key: "record_time"
|
||||
},
|
||||
{
|
||||
title: "登录名",
|
||||
title: "工号",
|
||||
width: "120px",
|
||||
key: "login_name"
|
||||
},
|
||||
{
|
||||
title: "用户名",
|
||||
width: "120px",
|
||||
key: "username"
|
||||
key: "work_number"
|
||||
},
|
||||
{
|
||||
title: "登录IP",
|
||||
width: "150px",
|
||||
key: "ip_address"
|
||||
key: "ip_code"
|
||||
},
|
||||
{
|
||||
title: "事件类型",
|
||||
width: "100px",
|
||||
key: "event_type",
|
||||
customSlot: 'event_type'
|
||||
title: "用户姓名",
|
||||
width: "120px",
|
||||
key: "nickname"
|
||||
},
|
||||
{
|
||||
title: "事件内容",
|
||||
width: "200px",
|
||||
key: "event_content"
|
||||
key: "content"
|
||||
},
|
||||
{
|
||||
title: "设备信息",
|
||||
width: "250px",
|
||||
key: "device_info"
|
||||
}
|
||||
title: "记录时间",
|
||||
width: "180px",
|
||||
key: "createtime"
|
||||
},
|
||||
]
|
||||
|
||||
onMounted(() => {
|
||||
@ -99,14 +110,13 @@ const getLoginLogs = () => {
|
||||
dataSource.value = [
|
||||
{
|
||||
id: 1,
|
||||
department: '内科',
|
||||
record_time: '2024-03-20 10:30:45',
|
||||
login_name: 'admin',
|
||||
username: '管理员',
|
||||
ip_address: '192.168.1.100',
|
||||
event_type: '登录',
|
||||
event_content: '用户登录成功',
|
||||
device_info: 'Chrome 122.0.0.0 / Windows 10'
|
||||
user_id: 10,
|
||||
ip_code: '192.168.1.100',
|
||||
createtime: '2024-03-20 10:30:45',
|
||||
content: '用户登录成功',
|
||||
nickname: '张三',
|
||||
work_number: '111111',
|
||||
name: '大腿骨折2'
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
|
@ -12,7 +12,7 @@
|
||||
height="600px"
|
||||
:columns="columns"
|
||||
:data-source="dataSource"
|
||||
@page-change="changePage"
|
||||
@change="changePage"
|
||||
>
|
||||
<template v-slot:content="{ data }">
|
||||
<div v-html="data.content"></div>
|
||||
@ -75,7 +75,6 @@ const columns = [
|
||||
title: "公告内容",
|
||||
width: "280px",
|
||||
key: "content",
|
||||
customSlot: 'content',
|
||||
ellipsisTooltip: true
|
||||
},
|
||||
{
|
||||
@ -113,8 +112,9 @@ const getNoticeList = () => {
|
||||
}
|
||||
|
||||
// 分页变化
|
||||
const changePage = (currentPage: number) => {
|
||||
page.current = currentPage;
|
||||
const changePage = (ppc) => {
|
||||
page.current = ppc.current;
|
||||
page.limit = ppc.limit;
|
||||
getNoticeList();
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<div style="display: flex">
|
||||
<div :style="{ width: isFold ? `0px` : `230px` }" class="left-tree">
|
||||
<lay-tree v-show="!isFold" style="margin-top: 10px" :data="data" v-model:selectedKey="group_id"
|
||||
:showLine="false" @node-click="handleClick">
|
||||
:showLine="false" @node-click="handleClick">
|
||||
<template #title="{ data }">
|
||||
<span :class="group_id == data.id ? 'isChecked' : ''">
|
||||
{{ data.name }}
|
||||
@ -22,8 +22,7 @@
|
||||
<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" v-model="yearmonth" placeholder="月度" allow-clear></lay-date-picker>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
<!-- <lay-col :md="5">-->
|
||||
@ -55,18 +54,24 @@
|
||||
</lay-card>
|
||||
<lay-tab v-model="tab_id" type="brief" @change="openTab">
|
||||
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id">
|
||||
<lay-table :page="page" height="600px" :columns="columns" :loading="loading"
|
||||
:data-source="dataSource" v-model:selected-keys="selectedKeys" @change="change">
|
||||
<template v-slot:scoringrecord_status="{row}">
|
||||
<lay-tag v-if="row.scoringrecord_status==1" type="primary">已自评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status==2">未自评</lay-tag>
|
||||
<lay-table :page="page" height="600px" :columns="columns" :loading="loading" :data-source="dataSource"
|
||||
v-model:selected-keys="selectedKeys" @change="change">
|
||||
<template v-slot:scoringrecord_status="{ row }">
|
||||
<lay-tag v-if="row.scoringrecord_status == 1" type="primary">已自评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 2">未自评</lay-tag>
|
||||
</template>
|
||||
<template v-slot:nickname="{ row }">
|
||||
<div style="color: #00A394;cursor: pointer" @click="openUserListShow(row)">{{ row.nickname }}</div>
|
||||
</template>
|
||||
<template v-slot:operator="{ row }">
|
||||
<span style="color: #00A394;cursor: pointer" v-if="row.department_score_scoringrecord==0 && row.scoringrecord_status==1"
|
||||
@click="getInfo(row,1)">科室评分</span>
|
||||
<span style="color: #00A394;cursor: pointer" v-if="row.department_score_scoringrecord!=0 && row.scoringrecord_status==1"
|
||||
@click="getInfo(row,2)">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed" v-if="row.department_score_scoringrecord==0 && row.scoringrecord_status==2">考评详情</span>
|
||||
<span style="color: #00A394;cursor: pointer"
|
||||
v-if="row.department_score_scoringrecord == 0 && row.scoringrecord_status == 1"
|
||||
@click="getInfo(row, 1)">科室评分</span>
|
||||
<span style="color: #00A394;cursor: pointer"
|
||||
v-if="row.department_score_scoringrecord != 0 && row.scoringrecord_status == 1"
|
||||
@click="getInfo(row, 2)">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed"
|
||||
v-if="row.department_score_scoringrecord == 0 && row.scoringrecord_status == 2">未自评</span>
|
||||
</template>
|
||||
</lay-table>
|
||||
</lay-tab-item>
|
||||
@ -74,45 +79,135 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<lay-layer v-model="infoShow" title="自评详情" :type="4" :shade="true" :area="['950px','100%']"
|
||||
:btn="addIsInfo==1?addButton:''">
|
||||
<lay-layer v-model="infoShow" title="自评详情" :type="4" :shade="true" :area="['950px', '100%']"
|
||||
:btn="addIsInfo == 1 ? addButton : ''">
|
||||
<lay-container fluid="true" style="padding: 20px">
|
||||
<lay-table :default-expand-all="true" ref="tableRef6" children-column-name="children" :columns="columns6"
|
||||
:data-source="dataSource6">
|
||||
<template v-slot:input="{ data,rowIndex}">
|
||||
<lay-input-number v-if="data.pid==0" :disabled="true" :min="0" :max="data.base_score"
|
||||
v-model="data.base_score" position="right"></lay-input-number>
|
||||
<lay-input-number v-if="data.pid!=0" :disabled="addIsInfo==2" :min="0" :max="data.base_score"
|
||||
v-model="data.content_score"
|
||||
position="right"></lay-input-number>
|
||||
:data-source="dataSource6">
|
||||
<template v-slot:input="{ data, rowIndex }">
|
||||
<lay-input-number v-if="data.pid == 0" :disabled="true" :min="0" :max="data.base_score"
|
||||
v-model="data.base_score" position="right"></lay-input-number>
|
||||
<lay-input-number v-if="data.pid != 0" :disabled="addIsInfo == 2" :min="0" :max="data.base_score"
|
||||
v-model="data.content_score" position="right"></lay-input-number>
|
||||
</template>
|
||||
<template v-slot:ksinput="{ data,rowIndex}">
|
||||
<lay-input-number v-if="data.pid==0" :disabled="true" :min="0" :max="data.base_score"
|
||||
v-model="data.base_score" position="right"></lay-input-number>
|
||||
<lay-input-number v-if="data.pid!=0" :disabled="addIsInfo==2" :min="0" :max="data.base_score"
|
||||
v-model="data.department_score"
|
||||
position="right"></lay-input-number>
|
||||
<template v-slot:ksinput="{ data, rowIndex }">
|
||||
<lay-input-number v-if="data.pid == 0" :disabled="true" :min="0" :max="data.base_score"
|
||||
v-model="data.base_score" position="right"></lay-input-number>
|
||||
<lay-input-number v-if="data.pid != 0" :disabled="addIsInfo == 2" :min="0" :max="data.base_score"
|
||||
v-model="data.department_score" position="right"></lay-input-number>
|
||||
</template>
|
||||
</lay-table>
|
||||
</lay-container>
|
||||
</lay-layer>
|
||||
<lay-layer v-model="userShow" title="月度自评列表" :shade="true" :area="['90%', '90%']">
|
||||
<lay-container fluid="true" style="padding: 20px">
|
||||
<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" v-model="searchAccountUser" 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="toUserSearch">查询</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-tab v-model="userTabId" type="brief" @change="openUserTab">
|
||||
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id">
|
||||
<lay-table :default-expand-all="true" :columns="userColumns"
|
||||
:data-source="userDataSource">
|
||||
<template v-slot:operator="{ row }">
|
||||
<span v-if="row.if ==2" style="color: #00A394;cursor: pointer"
|
||||
@click="getMonthlyInfo(row)">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed"
|
||||
v-if="row.if ==1">未自评</span>
|
||||
</template>
|
||||
</lay-table>
|
||||
</lay-tab-item>
|
||||
</lay-tab>
|
||||
|
||||
</lay-col>
|
||||
</lay-row>
|
||||
</lay-container>
|
||||
</lay-layer>
|
||||
</lay-container>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import {ref, reactive, onMounted} from 'vue'
|
||||
import {layer} from '@layui/layui-vue'
|
||||
import { ref, reactive, onMounted } from 'vue'
|
||||
import { layer } from '@layui/layui-vue'
|
||||
import {
|
||||
getUserGroupNew,
|
||||
getGroupEvaluation,
|
||||
getMonthlyUserList,
|
||||
MonthlyCreate,
|
||||
getMonthlyListFind, getMonthlyListUpdate
|
||||
getMonthlyListFind, getMonthlyListUpdate, getMonthlyFindData,
|
||||
MonthlyInfo
|
||||
} from "@/api/module/home";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
onMounted(() => {
|
||||
getLeftList();
|
||||
})
|
||||
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' },
|
||||
{ title: '自评总分', width: '100px', key: 'self_score', align: 'center' },
|
||||
{ title: '科室评分', width: '100px', key: 'department_score', align: 'center' },
|
||||
{ title: '医院评分', width: '100px', key: 'hospital_score', align: 'center' },
|
||||
{ title: '操作', width: '100px', key: 'operator', customSlot: 'operator', align: 'center' },
|
||||
])
|
||||
const userDataSource = ref([]);
|
||||
const userTabId = ref(0);
|
||||
const userInfo = ref({});
|
||||
const searchAccountUser = ref(dayjs().year());
|
||||
const openUserListShow = (row) => {
|
||||
userInfo.value = row;
|
||||
userShow.value = true;
|
||||
getUserListInfo();
|
||||
}
|
||||
const getUserListInfo = () => {
|
||||
getMonthlyFindData({
|
||||
'user_id': userInfo.value.id,
|
||||
'evaluation_id': userTabId.value,
|
||||
'time': searchAccountUser.value
|
||||
}).then((res) => {
|
||||
console.log(res)
|
||||
if(res.code==1){
|
||||
userDataSource.value = res.data;
|
||||
}else{
|
||||
userDataSource.value = [];
|
||||
}
|
||||
})
|
||||
}
|
||||
const openUserTab = (d) => {
|
||||
console.log(d)
|
||||
userTabId.value = d;
|
||||
userDataSource.value = [];
|
||||
getUserListInfo();
|
||||
}
|
||||
const getMonthlyInfo = (item) => {
|
||||
addIsInfo.value=2;
|
||||
infoShow.value = true;
|
||||
console.log(item);
|
||||
item.time=item.month;
|
||||
getInfoMode(item);
|
||||
}
|
||||
const toUserSearch = () => {
|
||||
getUserListInfo();
|
||||
}
|
||||
const openTab = (d) => {
|
||||
console.log(d)
|
||||
tab_id.value = d;
|
||||
@ -120,7 +215,7 @@ const openTab = (d) => {
|
||||
page.current = 1;
|
||||
getList();
|
||||
}
|
||||
const page = reactive({current: 1, limit: 10, total: 1})
|
||||
const page = reactive({ current: 1, limit: 10, total: 1 })
|
||||
const change = (d) => {
|
||||
console.log(d);
|
||||
page.current = d.current;
|
||||
@ -143,7 +238,7 @@ const getList = () => {
|
||||
dataSource.value = res.data.result;
|
||||
page.total = res.data.count;
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 2})
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -165,21 +260,22 @@ const getInfoMode = (row) => {
|
||||
if (res.code == 1) {
|
||||
dataSource6.value = res.data;
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 2})
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
})
|
||||
}
|
||||
const tabList = ref([]);
|
||||
const tab_id = ref(0);
|
||||
const getTabList = () => {
|
||||
getGroupEvaluation({'group_id': group_id.value}).then((res) => {
|
||||
getGroupEvaluation({ 'group_id': group_id.value }).then((res) => {
|
||||
console.log(res)
|
||||
if (res.code == 1) {
|
||||
tabList.value = res.data;
|
||||
tab_id.value = res.data[0].id;
|
||||
userTabId.value = res.data[0].id;
|
||||
getList();
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 2})
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -192,7 +288,7 @@ const getLeftList = () => {
|
||||
group_id.value = res.data[0].id;
|
||||
getTabList();
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 2})
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -227,16 +323,16 @@ function toSearch() {
|
||||
const loading = ref(false)
|
||||
const selectedKeys = ref()
|
||||
const columns = ref([
|
||||
{title: '选项', width: '55px', type: 'checkbox', align: 'center'},
|
||||
{title: '序号', width: '60px', key: 'id', align: 'center'},
|
||||
{title: '月度', width: '80px', key: 'time', align: 'center'},
|
||||
{title: '考评对象', width: '100px', key: 'nickname', align: 'center'},
|
||||
{title: '工号', width: '100px', key: 'work_number', align: 'center'},
|
||||
{title: '部门', width: '120px', key: 'group_name', align: 'center'},
|
||||
{title: '季度总加分', width: '100px', key: 'zongjiafen', align: 'center'},
|
||||
{title: '科室评分', width: '100px', key: 'department_score_scoringrecord', align: 'center'},
|
||||
{title: '自评总分', width: '100px', key: 'user_scoringrecord', align: 'center'},
|
||||
{title: '自评状态', width: '100px', key: 'scoringrecord_status', customSlot: 'scoringrecord_status', align: 'center'},
|
||||
{ title: '选项', width: '55px', type: 'checkbox', align: 'center' },
|
||||
{ title: '序号', width: '60px', key: 'id', align: 'center' },
|
||||
{ title: '月度', width: '80px', key: 'time', align: 'center' },
|
||||
{ title: '考评对象', width: '100px', key: 'nickname', customSlot: 'nickname', align: 'center' },
|
||||
{ title: '工号', width: '100px', key: 'work_number', align: 'center' },
|
||||
{ title: '部门', width: '120px', key: 'group_name', align: 'center' },
|
||||
{ title: '医院评分', width: '100px', key: 'hospital_score', align: 'center' },
|
||||
{ title: '科室评分', width: '100px', key: 'department_score_scoringrecord', align: 'center' },
|
||||
{ title: '自评总分', width: '100px', key: 'user_scoringrecord', align: 'center' },
|
||||
{ title: '自评状态', width: '100px', key: 'scoringrecord_status', customSlot: 'scoringrecord_status', align: 'center' },
|
||||
{
|
||||
title: '操作',
|
||||
width: '180px',
|
||||
@ -259,12 +355,12 @@ const addButton = ref([
|
||||
});
|
||||
console.log(res)
|
||||
if (res.code == 1) {
|
||||
layer.msg('提交成功!', {icon: 1})
|
||||
layer.msg('提交成功!', { icon: 1 })
|
||||
thisInfo.value = {};
|
||||
infoShow.value = false;
|
||||
getList();
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 2})
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -361,5 +457,4 @@ const dataSource6 = ref([])
|
||||
background-color: #e8f1ff;
|
||||
color: red;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
@ -209,16 +209,6 @@ const columns = [
|
||||
align: 'center',
|
||||
key: 'createtime'
|
||||
},
|
||||
{
|
||||
title: '加分',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '扣分',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '自评总分',
|
||||
key: 'self_score',
|
||||
@ -229,6 +219,11 @@ const columns = [
|
||||
customSlot: 'department_score',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '医院评分',
|
||||
key: 'hospital_score',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
width: '180px',
|
||||
|
@ -55,12 +55,15 @@
|
||||
<lay-tag v-if="row.scoringrecord_status==1" type="primary">已自评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status==2">未自评</lay-tag>
|
||||
</template>
|
||||
<template v-slot:nickname="{ row }">
|
||||
<div style="color: #00A394;cursor: pointer" @click="openUserListShow(row)">{{ row.nickname }}</div>
|
||||
</template>
|
||||
<template v-slot:operator="{ row }">
|
||||
<span style="color: #00A394;cursor: pointer" v-if="row.department_score_scoringrecord==0 && row.scoringrecord_status==1"
|
||||
@click="getInfo(row,1)">科室评分</span>
|
||||
<span style="color: #00A394;cursor: pointer" v-if="row.department_score_scoringrecord!=0 && row.scoringrecord_status==1"
|
||||
@click="getInfo(row,2)">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed" v-if="row.department_score_scoringrecord==0 && row.scoringrecord_status==2">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed" v-if="row.department_score_scoringrecord==0 && row.scoringrecord_status==2">未自评</span>
|
||||
</template>
|
||||
</lay-table>
|
||||
</lay-tab-item>
|
||||
@ -90,6 +93,48 @@
|
||||
</lay-table>
|
||||
</lay-container>
|
||||
</lay-layer>
|
||||
<lay-layer v-model="userShow" title="季度自评列表" :shade="true" :area="['90%', '90%']">
|
||||
<lay-container fluid="true" style="padding: 20px">
|
||||
<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" v-model="searchAccountUser" 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="toUserSearch">查询</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-tab v-model="userTabId" type="brief" @change="openUserTab">
|
||||
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id">
|
||||
<lay-table height="400px" :default-expand-all="true" :columns="userColumns"
|
||||
:data-source="userDataSource">
|
||||
<template v-slot:operator="{ row }">
|
||||
<span v-if="row.if ==2" style="color: #00A394;cursor: pointer"
|
||||
@click="getMonthlyInfo(row)">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed"
|
||||
v-if="row.if ==1">未自评</span>
|
||||
</template>
|
||||
</lay-table>
|
||||
</lay-tab-item>
|
||||
</lay-tab>
|
||||
|
||||
</lay-col>
|
||||
</lay-row>
|
||||
</lay-container>
|
||||
</lay-layer>
|
||||
</lay-container>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
@ -100,13 +145,63 @@ import {
|
||||
getGroupQuarter,
|
||||
getQuarterUserList,
|
||||
getQuarterListFind,
|
||||
getQuarterListUpdate
|
||||
getQuarterListUpdate,
|
||||
getQuarterlyFindData
|
||||
} from "@/api/module/home";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
onMounted(() => {
|
||||
getLeftList();
|
||||
})
|
||||
const userShow = ref(false);
|
||||
const userColumns = ref([
|
||||
{ title: '季度', width: '80px', key: 'quarter', align: 'center' },
|
||||
{ title: '考评对象', width: '100px', key: 'user', align: 'center' },
|
||||
{ title: '参评时间', width: '100px', key: 'createtime', align: 'center' },
|
||||
{ title: '自评总分', width: '100px', key: 'self_score', align: 'center' },
|
||||
{ title: '科室评分', width: '100px', key: 'department_score', align: 'center' },
|
||||
{ title: '医院评分', width: '100px', key: 'hospital_score', align: 'center' },
|
||||
{ title: '操作', width: '100px', key: 'operator', customSlot: 'operator', align: 'center' },
|
||||
])
|
||||
const userDataSource = ref([]);
|
||||
const userTabId = ref(0);
|
||||
const userInfo = ref({});
|
||||
const searchAccountUser = ref(dayjs().year());
|
||||
const openUserListShow = (row) => {
|
||||
userInfo.value = row;
|
||||
userShow.value = true;
|
||||
getUserListInfo();
|
||||
}
|
||||
const getUserListInfo = () => {
|
||||
getQuarterlyFindData({
|
||||
'user_id': userInfo.value.id,
|
||||
'evaluation_id': userTabId.value,
|
||||
'time': searchAccountUser.value
|
||||
}).then((res) => {
|
||||
console.log(res)
|
||||
if(res.code==1){
|
||||
userDataSource.value = res.data;
|
||||
}else{
|
||||
userDataSource.value = [];
|
||||
}
|
||||
})
|
||||
}
|
||||
const openUserTab = (d) => {
|
||||
console.log(d)
|
||||
userTabId.value = d;
|
||||
userDataSource.value = [];
|
||||
getUserListInfo();
|
||||
}
|
||||
const getMonthlyInfo = (item) => {
|
||||
addIsInfo.value=2;
|
||||
infoShow.value = true;
|
||||
console.log(item);
|
||||
item.time=item.quarter;
|
||||
getInfoMode(item);
|
||||
}
|
||||
const toUserSearch = () => {
|
||||
getUserListInfo();
|
||||
}
|
||||
const openTab = (d) => {
|
||||
console.log(d)
|
||||
tab_id.value = d;
|
||||
@ -146,8 +241,9 @@ const getList = () => {
|
||||
})
|
||||
}
|
||||
const thisInfo = ref();
|
||||
const getInfo = (row) => {
|
||||
const getInfo = (row,type) => {
|
||||
infoShow.value = true;
|
||||
addIsInfo.value = type;
|
||||
console.log(row);
|
||||
thisInfo.value = row;
|
||||
getInfoMode(row);
|
||||
@ -174,6 +270,7 @@ const getTabList = () => {
|
||||
if (res.code == 1) {
|
||||
tabList.value = res.data;
|
||||
tab_id.value = res.data[0].id;
|
||||
userTabId.value = res.data[0].id;
|
||||
getList();
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 2})
|
||||
@ -228,10 +325,10 @@ const columns = ref([
|
||||
{title: '选项', width: '55px', type: 'checkbox', align: 'center'},
|
||||
{title: '序号', width: '60px', key: 'id', align: 'center'},
|
||||
{title: '季度', width: '80px', key: 'time', align: 'center'},
|
||||
{title: '考评对象', width: '100px', key: 'nickname', align: 'center'},
|
||||
{title: '考评对象', width: '100px', key: 'nickname',customSlot:'nickname', align: 'center'},
|
||||
{title: '工号', width: '100px', key: 'work_number', align: 'center'},
|
||||
{title: '部门', width: '120px', key: 'group_name', align: 'center'},
|
||||
{title: '季度总加分', width: '100px', key: 'zongjiafen', align: 'center'},
|
||||
{title: '医院评分', width: '100px', key: 'hospital_score', align: 'center'},
|
||||
{title: '科室评分', width: '100px', key: 'department_score_scoringrecord', align: 'center'},
|
||||
{title: '自评总分', width: '100px', key: 'user_scoringrecord', align: 'center'},
|
||||
{title: '自评状态', width: '100px', key: 'scoringrecord_status', customSlot: 'scoringrecord_status',align: 'center'},
|
||||
|
@ -50,8 +50,8 @@
|
||||
{{ data.password }}
|
||||
</template>
|
||||
<template v-slot:operator="{ data }">
|
||||
<span style="color: #00A394;cursor: pointer" v-if="data.if_period==1" @click="getMonthlyInfo(data)">详情</span>
|
||||
<span style="color: #00A394;cursor: pointer" v-if="data.if_period==2"
|
||||
<span style="color: #00A394;cursor: pointer" v-if="data.if==2" @click="getMonthlyInfo(data)">详情</span>
|
||||
<span style="color: #00A394;cursor: pointer" v-if="data.if==1"
|
||||
@click="insZp(data)">开始自评</span>
|
||||
</template>
|
||||
</lay-table>
|
||||
@ -59,7 +59,7 @@
|
||||
</lay-col>
|
||||
</lay-row>
|
||||
</lay-container>
|
||||
<lay-layer v-model="visible11" title="季度自评详情" :type="4" :shade="true" :area="['950px','100%']" :btn="addIsInfo==1?addButton:''">
|
||||
<lay-layer v-model="visible11" title="季度自评" :type="4" :shade="true" :area="['950px','100%']" :btn="addIsInfo==1?addButton:''">
|
||||
<lay-container fluid="true" style="padding: 20px">
|
||||
<lay-card shadow="always">
|
||||
<div style="height: 70px;width: 100%;">
|
||||
@ -217,16 +217,6 @@ const columns = [
|
||||
align: 'center',
|
||||
key: 'createtime'
|
||||
},
|
||||
{
|
||||
title: '加分',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '扣分',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '自评总分',
|
||||
key: 'self_score',
|
||||
@ -236,6 +226,10 @@ const columns = [
|
||||
key: 'department_score',
|
||||
customSlot: 'department_score',
|
||||
align: 'center',
|
||||
}, {
|
||||
title: '医院评分',
|
||||
key: 'hospital_score',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
|
@ -57,8 +57,8 @@
|
||||
</lay-row>
|
||||
</lay-form>
|
||||
</lay-card>
|
||||
<lay-table :page="page" height="600px" :columns="columns" :loading="loading" :default-toolbar="true"
|
||||
:data-source="dataSource">
|
||||
<lay-table :page="page" height="600px" :columns="columns" :loading="loading" :default-toolbar="false"
|
||||
:data-source="dataSource" @change="changePage">
|
||||
<template #status="{ row }">
|
||||
<lay-tag type="danger" v-if="row.status == 0">已禁用</lay-tag>
|
||||
<lay-tag type="primary" v-if="row.status == 1">正常</lay-tag>
|
||||
@ -208,12 +208,18 @@ const getUserList = () => {
|
||||
userData({group_id: leftId.value, size: page.limit, page: page.current}).then((res) => {
|
||||
console.log(res)
|
||||
if (res.code == 1) {
|
||||
dataSource.value = res.data;
|
||||
dataSource.value = res.data.data;
|
||||
page.total = res.data.count;
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 2})
|
||||
}
|
||||
})
|
||||
}
|
||||
const changePage = (ppc) => {
|
||||
page.current = ppc.current;
|
||||
page.limit = ppc.limit;
|
||||
getUserList();
|
||||
}
|
||||
const partyList = ref([])
|
||||
const getPartyList = () => {
|
||||
partyGroupData({}).then((res) => {
|
||||
|
@ -5,10 +5,10 @@
|
||||
<span style="font-size: 18px;vertical-align: center;margin-right: 20px">通知公告</span>
|
||||
<lay-button type="primary" @click="openNew()" size="sm">新增公告</lay-button>
|
||||
</div>
|
||||
<lay-table :page="page" height="600px" size="lg" :columns="columns" :data-source="dataSource">
|
||||
<template v-slot:content="{ data }">
|
||||
<lay-table :page="page" height="600px" size="lg" @change="changePage" :columns="columns" :data-source="dataSource">
|
||||
<!-- <template v-slot:content="{ data }">
|
||||
<div v-html="data.content"></div>
|
||||
</template>
|
||||
</template> -->
|
||||
<template v-slot:status="{ data }">
|
||||
<span v-if="data.status == 1">已发布</span>
|
||||
<span v-if="data.status == 0">已隐藏</span>
|
||||
@ -229,7 +229,12 @@ interface NoticeData {
|
||||
content: string;
|
||||
status: number;
|
||||
}
|
||||
|
||||
// 分页变化
|
||||
const changePage = (ppc) => {
|
||||
page.current = ppc.current;
|
||||
page.limit = ppc.limit;
|
||||
getNoticeList();
|
||||
}
|
||||
// 列表数据
|
||||
const dataSource = ref<NoticeData[]>([]);
|
||||
const addShow = ref(false);
|
||||
@ -317,11 +322,6 @@ const delShowMsd = async (data: NoticeData) => {
|
||||
}
|
||||
}
|
||||
|
||||
const changePage = (currentPage: number) => {
|
||||
page.current = currentPage;
|
||||
getNoticeList();
|
||||
}
|
||||
|
||||
const columns = [
|
||||
{
|
||||
title: "公告标题",
|
||||
@ -337,7 +337,6 @@ const columns = [
|
||||
title: "公告内容",
|
||||
width: "280px",
|
||||
key: "content",
|
||||
customSlot: 'content',
|
||||
ellipsisTooltip: true
|
||||
},
|
||||
{
|
||||
|
@ -188,7 +188,9 @@ const action11 = ref([
|
||||
layer.msg('请选择菜单!', {icon: 2})
|
||||
return;
|
||||
}
|
||||
addData.rules = addData.rules.join(',');
|
||||
if(typeof addData.rules != 'string'){
|
||||
addData.rules = addData.rules.join(',');
|
||||
}
|
||||
if (addIsEdit.value == 1) {
|
||||
var res = await authGroupDataAdd(addData);
|
||||
} else {
|
||||
|
@ -46,12 +46,17 @@
|
||||
<lay-tag v-if="row.scoringrecord_status==1" type="primary">已自评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status==2">未自评</lay-tag>
|
||||
</template>
|
||||
<template v-slot:nickname="{ row }">
|
||||
<div style="color: #00A394;cursor: pointer" @click="openUserListShow(row)">{{ row.nickname }}</div>
|
||||
</template>
|
||||
<template v-slot:operator="{ row }">
|
||||
<span style="color: #00A394;cursor: pointer;padding-right: 10px;" v-if="row.department_score_scoringrecord!=0 && row.scoringrecord_status==1"
|
||||
@click="getInfo(row,1)">医院评分</span>
|
||||
<span style="color: #00A394;cursor: pointer" v-if="row.department_score_scoringrecord==0 && row.scoringrecord_status==1"
|
||||
@click="getInfo(row,1)">科室评分</span>
|
||||
<span style="color: #00A394;cursor: pointer" v-if="row.department_score_scoringrecord!=0 && row.scoringrecord_status==1"
|
||||
@click="getInfo(row,2)">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed" v-if="row.department_score_scoringrecord==0 && row.scoringrecord_status==2">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed" v-if="row.department_score_scoringrecord==0 && row.scoringrecord_status==2">未自评</span>
|
||||
</template>
|
||||
</lay-table>
|
||||
</lay-tab-item>
|
||||
@ -81,6 +86,48 @@
|
||||
</lay-table>
|
||||
</lay-container>
|
||||
</lay-layer>
|
||||
<lay-layer v-model="userShow" title="季度自评列表" :shade="true" :area="['90%', '90%']">
|
||||
<lay-container fluid="true" style="padding: 20px">
|
||||
<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" v-model="searchAccountUser" 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="toUserSearch">查询</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-tab v-model="userTabId" type="brief" @change="openUserTab">
|
||||
<lay-tab-item v-for="item in tabList" :title="item.title" :id="item.id">
|
||||
<lay-table height="400px" :default-expand-all="true" :columns="userColumns"
|
||||
:data-source="userDataSource">
|
||||
<template v-slot:operator="{ row }">
|
||||
<span v-if="row.if ==2" style="color: #00A394;cursor: pointer"
|
||||
@click="getMonthlyInfo(row)">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed"
|
||||
v-if="row.if ==1">未自评</span>
|
||||
</template>
|
||||
</lay-table>
|
||||
</lay-tab-item>
|
||||
</lay-tab>
|
||||
|
||||
</lay-col>
|
||||
</lay-row>
|
||||
</lay-container>
|
||||
</lay-layer>
|
||||
</lay-container>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
@ -90,13 +137,64 @@ import {
|
||||
getUserGroupNew,
|
||||
getGroupYear,
|
||||
getYearUserList,
|
||||
getYearListFind, getYearListUpdate
|
||||
getYearListFind, getYearListUpdate,
|
||||
getAnnualFindData
|
||||
} from "@/api/module/home";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
onMounted(() => {
|
||||
getLeftList();
|
||||
})
|
||||
|
||||
const userShow = ref(false);
|
||||
const userColumns = ref([
|
||||
{ title: '年度', width: '80px', key: 'year', align: 'center' },
|
||||
{ title: '考评对象', width: '100px', key: 'user', align: 'center' },
|
||||
{ title: '参评时间', width: '100px', key: 'createtime', align: 'center' },
|
||||
{ title: '自评总分', width: '100px', key: 'self_score', align: 'center' },
|
||||
{ title: '科室评分', width: '100px', key: 'department_score', align: 'center' },
|
||||
{ title: '医院评分', width: '100px', key: 'hospital_score', align: 'center' },
|
||||
{ title: '操作', width: '100px', key: 'operator', customSlot: 'operator', align: 'center' },
|
||||
])
|
||||
const userDataSource = ref([]);
|
||||
const userTabId = ref(0);
|
||||
const userInfo = ref({});
|
||||
const searchAccountUser = ref(dayjs().year());
|
||||
const openUserListShow = (row) => {
|
||||
userInfo.value = row;
|
||||
userShow.value = true;
|
||||
getUserListInfo();
|
||||
}
|
||||
const getUserListInfo = () => {
|
||||
getAnnualFindData({
|
||||
'user_id': userInfo.value.id,
|
||||
'evaluation_id': userTabId.value,
|
||||
'time': searchAccountUser.value
|
||||
}).then((res) => {
|
||||
console.log(res)
|
||||
if(res.code==1){
|
||||
userDataSource.value = res.data;
|
||||
}else{
|
||||
userDataSource.value = [];
|
||||
}
|
||||
})
|
||||
}
|
||||
const openUserTab = (d) => {
|
||||
console.log(d)
|
||||
userTabId.value = d;
|
||||
userDataSource.value = [];
|
||||
getUserListInfo();
|
||||
}
|
||||
const getMonthlyInfo = (item) => {
|
||||
addIsInfo.value=2;
|
||||
infoShow.value = true;
|
||||
console.log(item);
|
||||
item.time=item.year;
|
||||
getInfoMode(item);
|
||||
}
|
||||
const toUserSearch = () => {
|
||||
getUserListInfo();
|
||||
}
|
||||
const openTab = (d) => {
|
||||
console.log(d)
|
||||
tab_id.value = d;
|
||||
@ -161,6 +259,7 @@ const getTabList = () => {
|
||||
if (res.code == 1) {
|
||||
tabList.value = res.data;
|
||||
tab_id.value = res.data[0].id;
|
||||
userTabId.value = res.data[0].id;
|
||||
getList();
|
||||
} else {
|
||||
layer.msg(res.msg, {icon: 2})
|
||||
@ -214,10 +313,10 @@ const columns = ref([
|
||||
{title: '选项', width: '55px', type: 'checkbox', align: 'center'},
|
||||
{title: '序号', width: '60px', key: 'id', align: 'center'},
|
||||
{title: '年度', width: '80px', key: 'time', align: 'center'},
|
||||
{title: '考评对象', width: '100px', key: 'nickname', align: 'center'},
|
||||
{title: '考评对象', width: '100px', key: 'nickname', customSlot: 'nickname', align: 'center'},
|
||||
{title: '工号', width: '100px', key: 'work_number', align: 'center'},
|
||||
{title: '部门', width: '120px', key: 'group_name', align: 'center'},
|
||||
{title: '年度总加分', width: '100px', key: 'zongjiafen', align: 'center'},
|
||||
{title: '医院评分', width: '100px', key: 'hospital_score', align: 'center'},
|
||||
{title: '科室评分', width: '100px', key: 'department_score_scoringrecord', align: 'center'},
|
||||
{title: '自评总分', width: '100px', key: 'user_scoringrecord', align: 'center'},
|
||||
{title: '自评状态', width: '100px', key: 'scoringrecord_status', customSlot: 'scoringrecord_status', align: 'center'},
|
||||
|
@ -221,16 +221,6 @@ const columns = [
|
||||
align: 'center',
|
||||
key: 'createtime'
|
||||
},
|
||||
{
|
||||
title: '加分',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '扣分',
|
||||
key: 'remark',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '自评总分',
|
||||
key: 'self_score',
|
||||
@ -240,6 +230,10 @@ const columns = [
|
||||
key: 'department_score',
|
||||
customSlot: 'department_score',
|
||||
align: 'center',
|
||||
}, {
|
||||
title: '医院评分',
|
||||
key: 'hospital_score',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
|
@ -20,7 +20,7 @@ export default defineConfig({
|
||||
server: {
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: 'http://192.168.10.140/',
|
||||
target: 'http://127.0.0.1/',
|
||||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/api/, '')
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user