9.9
This commit is contained in:
parent
4ebc8f1102
commit
e86e145535
@ -170,8 +170,8 @@
|
||||
</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 {
|
||||
authGroupData,
|
||||
userData,
|
||||
@ -181,11 +181,10 @@ import {
|
||||
partyGroupData,
|
||||
userGroupData
|
||||
} from "@/api/module/home";
|
||||
import { useUserStore } from "@/store/user";
|
||||
|
||||
const cutUrl = ref("");
|
||||
const uploadRef = ref(null)
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useUserStore } from "@/store/user";
|
||||
|
||||
const userStore = useUserStore()
|
||||
const replaceFields = {
|
||||
@ -252,9 +251,9 @@ const getLeftList = () => {
|
||||
console.log(res)
|
||||
if (res.code == 1) {
|
||||
data.value = res.data;
|
||||
if (userStore.userInfo.level == 1) {
|
||||
data.value.unshift({ id: 0, name: '全部', children: [] })
|
||||
}
|
||||
// if (userStore.userInfo.level == 1) {
|
||||
// data.value.unshift({ id: 0, name: '全部', children: [] })
|
||||
// }
|
||||
leftId.value = res.data[0].id;
|
||||
getUserList();
|
||||
} else {
|
||||
@ -267,7 +266,8 @@ const getAuthList = () => {
|
||||
authGroupData({}).then((res) => {
|
||||
console.log(res)
|
||||
if (res.code == 1) {
|
||||
authList.value = res.data;
|
||||
//去除数组第一个值
|
||||
authList.value = res.data.slice(1);
|
||||
} else {
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
|
@ -29,7 +29,8 @@
|
||||
<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"></lay-select-option>
|
||||
</lay-select>
|
||||
</lay-form-item>
|
||||
</lay-col>
|
||||
@ -44,52 +45,56 @@
|
||||
</lay-row>
|
||||
</lay-form>
|
||||
</lay-card>
|
||||
<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>
|
||||
<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 }">
|
||||
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
|
||||
<lay-tag v-if="row.scoringrecord_status == 1" type="primary">已自评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 2">未自评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 3" type="warm">科室已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 4" type="normal">医院已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 5" color="blue">支部已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 6" color="#000033">总党支已评 </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 }">
|
||||
<lay-space>
|
||||
<span style="color: #00A394;cursor: pointer"
|
||||
v-if="row.scoringrecord_status == 5 && userStore.userInfo.level == 5"
|
||||
@click="getInfo(row, 4)">总党支评分</span>
|
||||
<span style="color: #00A394;cursor: pointer"
|
||||
v-if="row.scoringrecord_status == 3 && userStore.userInfo.level == 4"
|
||||
@click="getInfo(row, 3)">支部评分</span>
|
||||
<span style="color: #00A394;cursor: pointer" v-if="row.scoringrecord_status == 1 && userStore.userInfo.level == 1"
|
||||
@click="getInfo(row, 2)">科室评分</span>
|
||||
<span style="color: #00A394;cursor: pointer" v-if="row.scoringrecord_status != 2"
|
||||
@click="getInfo(row, 1)">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed" v-if="row.scoringrecord_status == 2">未自评</span>
|
||||
</lay-space>
|
||||
</template>
|
||||
</lay-table>
|
||||
v-model:selected-keys="selectedKeys" @change="change">
|
||||
<template v-slot:scoringrecord_status="{ row }">
|
||||
<!-- 1.已自评 2.未自评 3.科室已评 4.医院已评 5.支部已评 6.总党支已评 -->
|
||||
<lay-tag v-if="row.scoringrecord_status == 1" type="primary">已自评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 2">未自评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 3" type="warm">科室已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 4" type="normal">医院已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 5" color="blue">支部已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 6" color="#000033">总党支已评 </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 }">
|
||||
<lay-space>
|
||||
<span style="color: #00A394;cursor: pointer"
|
||||
v-if="row.scoringrecord_status == 6 && userStore.userInfo.level == 3"
|
||||
@click="getInfo(row, 5)">医院评分</span>
|
||||
<span style="color: #00A394;cursor: pointer"
|
||||
v-if="row.scoringrecord_status == 5 && userStore.userInfo.level == 5"
|
||||
@click="getInfo(row, 4)">总党支评分</span>
|
||||
<span style="color: #00A394;cursor: pointer"
|
||||
v-if="row.scoringrecord_status == 3 && userStore.userInfo.level == 4"
|
||||
@click="getInfo(row, 3)">支部评分</span>
|
||||
<span style="color: #00A394;cursor: pointer"
|
||||
v-if="row.scoringrecord_status == 1 && userStore.userInfo.level == 1"
|
||||
@click="getInfo(row, 2)">科室评分</span>
|
||||
<span style="color: #00A394;cursor: pointer" v-if="row.scoringrecord_status != 2"
|
||||
@click="getInfo(row, 1)">考评详情</span>
|
||||
<span style="color: #999999;cursor: not-allowed" v-if="row.scoringrecord_status == 2">未自评</span>
|
||||
</lay-space>
|
||||
</template>
|
||||
</lay-table>
|
||||
</div>
|
||||
</div>
|
||||
<lay-layer @close="layerEnd" v-model="infoShow" title="自评详情" :type="4" :shade="true" :area="['950px', '100%']"
|
||||
<lay-layer @close="layerEnd" v-model="infoShow" title="自评详情" :type="4" :shade="true" :area="['70%', '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"
|
||||
<lay-table :default-expand-all="true" ref="tableRef6" children-column-name="children" :columns="columns6"
|
||||
:data-source="dataSource6">
|
||||
<template v-slot:base_score="{ data }">
|
||||
<div v-if="data.pid == 0">题目分:{{ data.base_score }}</div>
|
||||
<div v-if="data.pid != 0">{{ data.base_score }}</div>
|
||||
</template>
|
||||
<!-- 自评评分 -->
|
||||
<template v-slot:content_score="{ row}">
|
||||
<template v-slot:content_score="{ row }">
|
||||
<div v-if="row.pid == 0">已评分:{{ row.avg_score ? row.avg_score : 0 }}</div>
|
||||
<lay-input-number @change="inputChange(row)" v-if="row.pid != 0" :disabled="true" :min="0"
|
||||
:max="row.base_score" v-model="row.content_score" position="right"></lay-input-number>
|
||||
@ -97,19 +102,37 @@
|
||||
<!-- 科室评分 -->
|
||||
<template v-slot:department_score="{ row }">
|
||||
<div v-if="row.pid == 0">已评分:{{ row.department_score ? row.department_score : 0 }}</div>
|
||||
<lay-input-number :disabled="addIsInfo==1 || thisInfo.scoringrecord_status != 3" @change="inputKsChange(row)" v-if="row.pid != 0" :min="0" :max="row.base_score" v-model="row.department_score"
|
||||
<lay-input-number v-if="addIsInfo == 1 && row.pid != 0" :disabled="true" :min="0" :max="row.base_score"
|
||||
v-model="row.department_score" position="right"></lay-input-number>
|
||||
<lay-input-number v-if="addIsInfo != 1 && userStore.userInfo.level == 1 && row.pid != 0"
|
||||
@change="inputKsChange(row)" :min="0" :max="row.base_score" v-model="row.department_score"
|
||||
position="right"></lay-input-number>
|
||||
</template>
|
||||
<!-- 支部评分 -->
|
||||
<template v-slot:party_branch_score="{ row }">
|
||||
<div v-if="row.pid == 0">已评分:{{ row.party_branch_score ? row.party_branch_score : 0 }}</div>
|
||||
<lay-input-number :disabled="addIsInfo==1 || thisInfo.scoringrecord_status != 4" @change="inputZbChange(row)" v-if="row.pid != 0" :min="0" :max="row.base_score" v-model="row.party_branch_score"
|
||||
<lay-input-number v-if="addIsInfo == 1 && row.pid != 0" :disabled="true" :min="0" :max="row.base_score"
|
||||
v-model="row.party_branch_score" position="right"></lay-input-number>
|
||||
<lay-input-number v-if="addIsInfo != 1 && userStore.userInfo.level == 4 && row.pid != 0"
|
||||
@change="inputZbChange(row)" :min="0" :max="row.base_score" v-model="row.party_branch_score"
|
||||
position="right"></lay-input-number>
|
||||
</template>
|
||||
<!-- 党总支评分 -->
|
||||
<template v-slot:overall_party_score="{ row }">
|
||||
<div v-if="row.pid == 0">已评分:{{ row.overall_party_score ? row.overall_party_score : 0 }}</div>
|
||||
<lay-input-number :disabled="addIsInfo==1 || thisInfo.scoringrecord_status != 5" @change="inputZdzChange(row)" v-if="row.pid != 0" :min="0" :max="row.base_score" v-model="row.overall_party_score"
|
||||
<lay-input-number v-if="addIsInfo == 1 && row.pid != 0" :disabled="true" :min="0" :max="row.base_score"
|
||||
v-model="row.overall_party_score" position="right"></lay-input-number>
|
||||
<lay-input-number v-if="addIsInfo != 1 && userStore.userInfo.level == 5 && row.pid != 0"
|
||||
@change="inputZdzChange(row)" :min="0" :max="row.base_score" v-model="row.overall_party_score"
|
||||
position="right"></lay-input-number>
|
||||
</template>
|
||||
<!-- 医院评分 -->
|
||||
<template v-slot:hospital_score="{ row }">
|
||||
<div v-if="row.pid == 0">已评分:{{ row.hospital_score ? row.hospital_score : 0 }}</div>
|
||||
<lay-input-number v-if="addIsInfo == 1 && row.pid != 0" :disabled="true" :min="0" :max="row.base_score"
|
||||
v-model="row.hospital_score" position="right"></lay-input-number>
|
||||
<lay-input-number v-if="addIsInfo != 1 && userStore.userInfo.level == 3 && row.pid != 0"
|
||||
@change="inputKsChange(row)" :min="0" :max="row.base_score" v-model="row.hospital_score"
|
||||
position="right"></lay-input-number>
|
||||
</template>
|
||||
</lay-table>
|
||||
@ -144,13 +167,13 @@
|
||||
</lay-tab>
|
||||
<lay-table height="400px" :default-expand-all="true" :columns="userColumns" :data-source="userDataSource">
|
||||
<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-tag v-if="row.scoringrecord_status == 3" type="warm">科室已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 4" type="normal">医院已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 5" color="blue">支部已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 6" color="#000033">总党支已评 </lay-tag>
|
||||
</template>
|
||||
<lay-tag v-if="row.scoringrecord_status == 1" type="primary">已自评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 2">未自评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 3" type="warm">科室已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 4" type="normal">医院已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 5" color="blue">支部已评</lay-tag>
|
||||
<lay-tag v-if="row.scoringrecord_status == 6" color="#000033">总党支已评 </lay-tag>
|
||||
</template>
|
||||
<template v-slot:operator="{ row }">
|
||||
<span v-if="row.if == 2" style="color: #00A394;cursor: pointer"
|
||||
@click="getMonthlyInfo(row, 1)">考评详情</span>
|
||||
@ -180,11 +203,34 @@ const route = useRoute()
|
||||
const userStore = useUserStore()
|
||||
const userId = ref();
|
||||
onMounted(() => {
|
||||
if(route.params.id){
|
||||
if (route.params.id) {
|
||||
userId.value = parseInt(route.params.id);
|
||||
}
|
||||
getLeftList();
|
||||
})
|
||||
const columns6 = ref([
|
||||
{
|
||||
title: "考评项目",
|
||||
width: "300px",
|
||||
key: "project_name"
|
||||
},
|
||||
{
|
||||
title: "分值",
|
||||
width: "80px",
|
||||
align: 'center',
|
||||
key: "base_score",
|
||||
customSlot: 'base_score',
|
||||
totalRow: true
|
||||
},
|
||||
{
|
||||
title: "自评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'content_score',
|
||||
key: "content_score",
|
||||
totalRow: true
|
||||
}
|
||||
])
|
||||
const inputChange = (row) => {
|
||||
//计算出dataSource6里分数在children下所有的已评总分
|
||||
let total = 0;
|
||||
@ -227,6 +273,26 @@ const inputListZbShow = () => {
|
||||
dataSource6.value[index].party_branch_score = total;
|
||||
});
|
||||
}
|
||||
//医院评分总分
|
||||
const inputYyChange = (row) => {
|
||||
//计算出dataSource6里分数在children下所有的已评总分
|
||||
let total = 0;
|
||||
const index = dataSource6.value.findIndex(item => item.id === row.pid);
|
||||
dataSource6.value[index].children.forEach(item => {
|
||||
total += parseInt(item.hospital_score);
|
||||
});
|
||||
dataSource6.value[index].hospital_score = total;
|
||||
}
|
||||
//总党支评分总分
|
||||
const inputListYyShow = () => {
|
||||
dataSource6.value.forEach((item, index) => {
|
||||
let total = 0;
|
||||
item.children.forEach(item2 => {
|
||||
total += parseInt(item2.hospital_score);
|
||||
});
|
||||
dataSource6.value[index].hospital_score = total;
|
||||
});
|
||||
}
|
||||
//总党支评分总分
|
||||
const inputZdzChange = (row) => {
|
||||
//计算出dataSource6里分数在children下所有的已评总分
|
||||
@ -311,7 +377,7 @@ const openUserTab = (d) => {
|
||||
userDataSource.value = [];
|
||||
getUserListInfo();
|
||||
}
|
||||
const getMonthlyInfo = (item,type) => {
|
||||
const getMonthlyInfo = (item, type) => {
|
||||
addIsInfo.value = type;
|
||||
infoShow.value = true;
|
||||
console.log(item);
|
||||
@ -377,20 +443,72 @@ const thisInfo = ref();
|
||||
const getInfo = (row, type) => {
|
||||
infoShow.value = true;
|
||||
addIsInfo.value = type;
|
||||
console.log(row);
|
||||
thisInfo.value = row;
|
||||
getInfoMode(row);
|
||||
if (row.scoringrecord_status == 3 && userStore.userInfo.level ==4 ) {
|
||||
columns6.value.push({
|
||||
title: "支部评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'party_branch_score',
|
||||
key: "party_branch_score",
|
||||
totalRow: true
|
||||
});
|
||||
if (type == 1) {
|
||||
columns6.value = [
|
||||
{
|
||||
title: "考评项目",
|
||||
width: "300px",
|
||||
key: "project_name"
|
||||
},
|
||||
{
|
||||
title: "分值",
|
||||
width: "80px",
|
||||
align: 'center',
|
||||
key: "base_score",
|
||||
customSlot: 'base_score',
|
||||
totalRow: true
|
||||
},
|
||||
{
|
||||
title: "自评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'content_score',
|
||||
key: "content_score",
|
||||
totalRow: true
|
||||
}, {
|
||||
title: "科室评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'department_score',
|
||||
key: "department_score",
|
||||
totalRow: true
|
||||
}, {
|
||||
title: "支部评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'party_branch_score',
|
||||
key: "party_branch_score",
|
||||
totalRow: true
|
||||
}, {
|
||||
title: "总党支评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'overall_party_score',
|
||||
key: "overall_party_score",
|
||||
totalRow: true
|
||||
}, {
|
||||
title: "医院评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'hospital_score',
|
||||
key: "hospital_score",
|
||||
totalRow: true
|
||||
}
|
||||
];
|
||||
}
|
||||
if (row.scoringrecord_status == 5 && userStore.userInfo.level ==5 ) {
|
||||
//科室评分
|
||||
else if (type == 2) {
|
||||
columns6.value.push({
|
||||
title: "科室评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'department_score',
|
||||
key: "department_score",
|
||||
totalRow: true
|
||||
})
|
||||
} else if (type == 3) {
|
||||
columns6.value.push({
|
||||
title: "支部评分",
|
||||
width: "100px",
|
||||
@ -398,7 +516,8 @@ const getInfo = (row, type) => {
|
||||
customSlot: 'party_branch_score',
|
||||
key: "party_branch_score",
|
||||
totalRow: true
|
||||
});
|
||||
})
|
||||
} else if (type == 4) {
|
||||
columns6.value.push({
|
||||
title: "总党支评分",
|
||||
width: "100px",
|
||||
@ -406,25 +525,16 @@ const getInfo = (row, type) => {
|
||||
customSlot: 'overall_party_score',
|
||||
key: "overall_party_score",
|
||||
totalRow: true
|
||||
});
|
||||
}
|
||||
if (row.scoringrecord_status == 6 ) {
|
||||
})
|
||||
} else {
|
||||
columns6.value.push({
|
||||
title: "支部评分",
|
||||
title: "医院评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'party_branch_score',
|
||||
key: "party_branch_score",
|
||||
customSlot: 'hospital_score',
|
||||
key: "hospital_score",
|
||||
totalRow: true
|
||||
});
|
||||
columns6.value.push({
|
||||
title: "总党支评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'overall_party_score',
|
||||
key: "overall_party_score",
|
||||
totalRow: true
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
const getInfoMode = (row) => {
|
||||
@ -440,6 +550,7 @@ const getInfoMode = (row) => {
|
||||
inputListKsShow();
|
||||
inputListZbShow();
|
||||
inputListZdzShow();
|
||||
inputListYyShow();
|
||||
} else {
|
||||
layer.msg(res.msg, { icon: 2 })
|
||||
}
|
||||
@ -556,52 +667,10 @@ const addButton = ref([
|
||||
}
|
||||
}
|
||||
])
|
||||
const columns6 = ref([
|
||||
{
|
||||
title: "考评项目",
|
||||
width: "300px",
|
||||
key: "project_name"
|
||||
},
|
||||
{
|
||||
title: "分值",
|
||||
width: "80px",
|
||||
align: 'center',
|
||||
key: "base_score",
|
||||
customSlot: 'base_score',
|
||||
totalRow: true
|
||||
},
|
||||
{
|
||||
title: "自评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'content_score',
|
||||
key: "content_score",
|
||||
totalRow: true
|
||||
},
|
||||
{
|
||||
title: "科室评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'department_score',
|
||||
key: "department_score",
|
||||
totalRow: true
|
||||
}
|
||||
])
|
||||
// 根据用户级别动态添加医院评分列
|
||||
// if (userStore.userInfo.level == 4) {
|
||||
// columns6.push({
|
||||
// title: "医院评分",
|
||||
// width: "100px",
|
||||
// align: 'center',
|
||||
// customSlot: 'yyinput',
|
||||
// key: "yyinput"
|
||||
// });
|
||||
// }
|
||||
const dataSource6 = ref([])
|
||||
|
||||
const layerEnd = () => {
|
||||
console.log('layerEnd')
|
||||
columns6.value = [
|
||||
{
|
||||
{
|
||||
title: "考评项目",
|
||||
width: "300px",
|
||||
key: "project_name"
|
||||
@ -621,17 +690,11 @@ const layerEnd = () => {
|
||||
customSlot: 'content_score',
|
||||
key: "content_score",
|
||||
totalRow: true
|
||||
},
|
||||
{
|
||||
title: "科室评分",
|
||||
width: "100px",
|
||||
align: 'center',
|
||||
customSlot: 'department_score',
|
||||
key: "department_score",
|
||||
totalRow: true
|
||||
}
|
||||
];
|
||||
}
|
||||
const dataSource6 = ref([])
|
||||
|
||||
</script>
|
||||
|
||||
<style>
|
||||
@ -690,7 +753,8 @@ const layerEnd = () => {
|
||||
background-color: #e8f1ff;
|
||||
color: red;
|
||||
}
|
||||
.layui-tab-content{
|
||||
|
||||
.layui-tab-content {
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
|
Loading…
x
Reference in New Issue
Block a user