提交1
This commit is contained in:
parent
9fe8dd2880
commit
15c65bd49f
@ -175,12 +175,19 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/view/routine/JiFenPingJia",
|
"path": "pages/view/routine/JiFenPingJia/JiFenPingJia",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "积分评价",
|
"navigationBarTitleText": "积分评价",
|
||||||
"enablePullDownRefresh": false
|
"enablePullDownRefresh": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/view/routine/JiFenPingJia/detail",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "评价详情",
|
||||||
|
"enablePullDownRefresh": false
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/view/routine/kefuxuncha/KeFuXunCha",
|
"path": "pages/view/routine/kefuxuncha/KeFuXunCha",
|
||||||
"style": {
|
"style": {
|
||||||
@ -390,6 +397,20 @@
|
|||||||
"navigationBarTitleText": "zhujiaoDetails"
|
"navigationBarTitleText": "zhujiaoDetails"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/view/routine/RengJiaoRengZhi/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "任教任职",
|
||||||
|
"enablePullDownRefresh": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/view/routine/GongZuoLiang/index",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "工作量",
|
||||||
|
"enablePullDownRefresh": false
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/base/groupTeaching/studentRollCall",
|
"path": "pages/base/groupTeaching/studentRollCall",
|
||||||
"style": {
|
"style": {
|
||||||
|
|||||||
@ -167,27 +167,42 @@ const sections = reactive<Section[]>([
|
|||||||
show: true,
|
show: true,
|
||||||
path: "/pages/view/routine/JiaoXueZiYuan/index",
|
path: "/pages/view/routine/JiaoXueZiYuan/index",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
id: "r3",
|
|
||||||
icon: "file-list-3-fil",
|
|
||||||
text: "活动资源",
|
|
||||||
show: true,
|
|
||||||
path: "/pages/view/routine/HuoDongZiYuan/index",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "r4",
|
|
||||||
icon: "file-paper-2-fill",
|
|
||||||
text: "公文流转",
|
|
||||||
show: true,
|
|
||||||
path: "/pages/view/routine/GongWenLiuZhuan/index",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
id: "r5",
|
id: "r5",
|
||||||
icon: "file-mark-fill",
|
icon: "file-mark-fill",
|
||||||
text: "积分评价",
|
text: "积分评价",
|
||||||
show: true,
|
show: true,
|
||||||
path: "/pages/view/routine/JiFenPingJia",
|
path: "/pages/view/routine/JiFenPingJia/JiFenPingJia",
|
||||||
},
|
},
|
||||||
|
// {
|
||||||
|
// id: "r3",
|
||||||
|
// icon: "file-list-3-fil",
|
||||||
|
// text: "活动资源",
|
||||||
|
// show: true,
|
||||||
|
// path: "/pages/view/routine/HuoDongZiYuan/index",
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
id: "r3",
|
||||||
|
icon: "file-list-3-fil",
|
||||||
|
text: "工作量",
|
||||||
|
show: true,
|
||||||
|
path: "/pages/view/routine/GongZuoLiang/index",
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// id: "r4",
|
||||||
|
// icon: "file-paper-2-fill",
|
||||||
|
// text: "公文流转",
|
||||||
|
// show: true,
|
||||||
|
// path: "/pages/view/routine/GongWenLiuZhuan/index",
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
id: "r4",
|
||||||
|
icon: "file-paper-2-fill",
|
||||||
|
text: "任教任职",
|
||||||
|
show: true,
|
||||||
|
path: "/pages/view/routine/RengJiaoRengZhi/index",
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
id: "r6",
|
id: "r6",
|
||||||
icon: "pass-pending-fill",
|
icon: "pass-pending-fill",
|
||||||
|
|||||||
@ -32,14 +32,8 @@
|
|||||||
<template #bottom>
|
<template #bottom>
|
||||||
<view class="flex-row items-center pb-10 pt-5">
|
<view class="flex-row items-center pb-10 pt-5">
|
||||||
<u-button
|
<u-button
|
||||||
text="上一步"
|
text="提交"
|
||||||
class="ml-15 mr-7"
|
class="mx-15"
|
||||||
:plain="true"
|
|
||||||
@click="navigateBack"
|
|
||||||
/>
|
|
||||||
<u-button
|
|
||||||
text="下一步"
|
|
||||||
class="mr-15 mr-7"
|
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="submit"
|
@click="submit"
|
||||||
/>
|
/>
|
||||||
@ -258,36 +252,32 @@ function deleteMemberFamily(index: number, item: any) {
|
|||||||
|
|
||||||
// 提交数据
|
// 提交数据
|
||||||
function submit() {
|
function submit() {
|
||||||
setFile({
|
const grRyList = map(education.xl, (item) => {
|
||||||
...getFile,
|
return { ...item.value, hjlxId: "GRRY" };
|
||||||
grRyList: map(education.xl, (item) => {
|
|
||||||
return { ...item.value, hjlxId: "GRRY" };
|
|
||||||
}),
|
|
||||||
});
|
|
||||||
navigateTo("/pages/view/hr/teacherProfile/PublicClassAwards");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 初始化数据
|
|
||||||
const { getFile, setFile } = useDataStore();
|
|
||||||
|
|
||||||
// 处理回显数据
|
|
||||||
if (getFile.grRyList && getFile.grRyList.length > 0) {
|
|
||||||
education.xl = map(getFile.grRyList, (item) => {
|
|
||||||
return { value: item };
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// // 初始化数据
|
||||||
|
// const { getFile, setFile } = useDataStore();
|
||||||
|
|
||||||
|
// // 处理回显数据
|
||||||
|
// if (getFile.grRyList && getFile.grRyList.length > 0) {
|
||||||
|
// education.xl = map(getFile.grRyList, (item) => {
|
||||||
|
// return { value: item };
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
// 页面加载时初始化
|
// 页面加载时初始化
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (getFile.grRyList && getFile.grRyList.length > 0) {
|
// if (getFile.grRyList && getFile.grRyList.length > 0) {
|
||||||
// 有回显数据时,延迟初始化确保数据正确加载
|
// // 有回显数据时,延迟初始化确保数据正确加载
|
||||||
nextTick(() => {
|
// nextTick(() => {
|
||||||
initEchoData();
|
// initEchoData();
|
||||||
});
|
// });
|
||||||
} else {
|
// } else {
|
||||||
// 无回显数据时,只需要初始化荣誉类别
|
// // 无回显数据时,只需要初始化荣誉类别
|
||||||
initHonorCategories();
|
// initHonorCategories();
|
||||||
}
|
// }
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -31,18 +31,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<template #bottom>
|
<template #bottom>
|
||||||
<view class="flex-row items-center pb-10 pt-5">
|
<view class="flex-row items-center pb-10 pt-5">
|
||||||
<u-button
|
<u-button text="提交" class="mx-15" type="primary" @click="submit" />
|
||||||
text="上一步"
|
|
||||||
class="ml-15 mr-7"
|
|
||||||
:plain="true"
|
|
||||||
@click="navigateBack"
|
|
||||||
/>
|
|
||||||
<u-button
|
|
||||||
text="提交"
|
|
||||||
class="mr-15 mr-7"
|
|
||||||
type="primary"
|
|
||||||
@click="submit"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
</BasicLayout>
|
</BasicLayout>
|
||||||
@ -89,15 +78,15 @@ const baseSchema = [
|
|||||||
ok: (selectedIndex: number, form: any, list: any, attrs: any) => {
|
ok: (selectedIndex: number, form: any, list: any, attrs: any) => {
|
||||||
const selectedCategory = list[selectedIndex];
|
const selectedCategory = list[selectedIndex];
|
||||||
const formIndex = attrs.index;
|
const formIndex = attrs.index;
|
||||||
|
|
||||||
// 更新当前表单项的获奖级别选项
|
// 更新当前表单项的获奖级别选项
|
||||||
updateAwardLevels(formIndex, selectedCategory);
|
updateAwardLevels(formIndex, selectedCategory);
|
||||||
|
|
||||||
// 清空已选择的获奖级别(如果之前有选择的话)
|
// 清空已选择的获奖级别(如果之前有选择的话)
|
||||||
if (education.xl[formIndex].value.xm) {
|
if (education.xl[formIndex].value.xm) {
|
||||||
education.xl[formIndex].value.xm = "";
|
education.xl[formIndex].value.xm = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
// 强制重新渲染
|
// 强制重新渲染
|
||||||
forceUpdateKey.value++;
|
forceUpdateKey.value++;
|
||||||
},
|
},
|
||||||
@ -113,7 +102,7 @@ const baseSchema = [
|
|||||||
savaKey: "id",
|
savaKey: "id",
|
||||||
open: (value: any, attrs: any, model: any) => {
|
open: (value: any, attrs: any, model: any) => {
|
||||||
const formIndex = attrs.index;
|
const formIndex = attrs.index;
|
||||||
|
|
||||||
// 检查是否已选择荣誉类别
|
// 检查是否已选择荣誉类别
|
||||||
if (!model?.hilb_id) {
|
if (!model?.hilb_id) {
|
||||||
showToast({
|
showToast({
|
||||||
@ -122,10 +111,10 @@ const baseSchema = [
|
|||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查是否有对应的获奖级别数据
|
// 检查是否有对应的获奖级别数据
|
||||||
const awardLevels = awardLevelsMap[formIndex] || [];
|
const awardLevels = awardLevelsMap[formIndex] || [];
|
||||||
|
|
||||||
if (awardLevels.length === 0) {
|
if (awardLevels.length === 0) {
|
||||||
showToast({
|
showToast({
|
||||||
title: "该荣誉类别暂无获奖级别数据",
|
title: "该荣誉类别暂无获奖级别数据",
|
||||||
@ -133,7 +122,7 @@ const baseSchema = [
|
|||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -171,13 +160,13 @@ const baseSchema = [
|
|||||||
// 为每个表单项生成动态的schema
|
// 为每个表单项生成动态的schema
|
||||||
const getSchemaForIndex = (index: number) => {
|
const getSchemaForIndex = (index: number) => {
|
||||||
const schema = cloneDeep(baseSchema);
|
const schema = cloneDeep(baseSchema);
|
||||||
|
|
||||||
// 更新获奖级别的选项数据
|
// 更新获奖级别的选项数据
|
||||||
const hjjbField = schema.find((item) => item.field === "xm");
|
const hjjbField = schema.find((item) => item.field === "xm");
|
||||||
if (hjjbField) {
|
if (hjjbField) {
|
||||||
hjjbField.componentProps.range = awardLevelsMap[index] || [];
|
hjjbField.componentProps.range = awardLevelsMap[index] || [];
|
||||||
}
|
}
|
||||||
|
|
||||||
return schema;
|
return schema;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -203,14 +192,14 @@ const initHonorCategories = async () => {
|
|||||||
// 初始化回显数据
|
// 初始化回显数据
|
||||||
const initEchoData = async () => {
|
const initEchoData = async () => {
|
||||||
await initHonorCategories();
|
await initHonorCategories();
|
||||||
|
|
||||||
// 为每个已有数据的表单项初始化获奖级别选项
|
// 为每个已有数据的表单项初始化获奖级别选项
|
||||||
education.xl.forEach((formItem: any, index: number) => {
|
education.xl.forEach((formItem: any, index: number) => {
|
||||||
if (formItem.value?.hilb_id) {
|
if (formItem.value?.hilb_id) {
|
||||||
const category = honorCategories.value.find(
|
const category = honorCategories.value.find(
|
||||||
(cat: any) => cat.id === formItem.value.hilb_id
|
(cat: any) => cat.id === formItem.value.hilb_id
|
||||||
);
|
);
|
||||||
|
|
||||||
if (category) {
|
if (category) {
|
||||||
// 更新获奖级别选项
|
// 更新获奖级别选项
|
||||||
updateAwardLevels(index, category);
|
updateAwardLevels(index, category);
|
||||||
@ -219,7 +208,7 @@ const initEchoData = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 强制重新渲染以确保获奖级别能正确显示
|
// 强制重新渲染以确保获奖级别能正确显示
|
||||||
forceUpdateKey.value++;
|
forceUpdateKey.value++;
|
||||||
};
|
};
|
||||||
@ -228,7 +217,7 @@ const initEchoData = async () => {
|
|||||||
function addEducation() {
|
function addEducation() {
|
||||||
const newIndex = education.xl.length;
|
const newIndex = education.xl.length;
|
||||||
education.xl.push({ value: {} });
|
education.xl.push({ value: {} });
|
||||||
|
|
||||||
// 为新项初始化空的获奖级别选项
|
// 为新项初始化空的获奖级别选项
|
||||||
awardLevelsMap[newIndex] = [];
|
awardLevelsMap[newIndex] = [];
|
||||||
}
|
}
|
||||||
@ -237,7 +226,7 @@ function addEducation() {
|
|||||||
function deleteMemberFamily(index: number, item: any) {
|
function deleteMemberFamily(index: number, item: any) {
|
||||||
// 删除对应的获奖级别数据
|
// 删除对应的获奖级别数据
|
||||||
delete awardLevelsMap[index];
|
delete awardLevelsMap[index];
|
||||||
|
|
||||||
// 重新整理awardLevelsMap的键值
|
// 重新整理awardLevelsMap的键值
|
||||||
const newAwardLevelsMap: Record<number, any[]> = {};
|
const newAwardLevelsMap: Record<number, any[]> = {};
|
||||||
education.xl.forEach((_: any, i: number) => {
|
education.xl.forEach((_: any, i: number) => {
|
||||||
@ -247,10 +236,10 @@ function deleteMemberFamily(index: number, item: any) {
|
|||||||
newAwardLevelsMap[i - 1] = awardLevelsMap[i] || [];
|
newAwardLevelsMap[i - 1] = awardLevelsMap[i] || [];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 删除表单项
|
// 删除表单项
|
||||||
education.xl.splice(index, 1);
|
education.xl.splice(index, 1);
|
||||||
|
|
||||||
// 更新awardLevelsMap
|
// 更新awardLevelsMap
|
||||||
Object.keys(awardLevelsMap).forEach(
|
Object.keys(awardLevelsMap).forEach(
|
||||||
(key: string) => delete awardLevelsMap[Number(key)]
|
(key: string) => delete awardLevelsMap[Number(key)]
|
||||||
@ -260,36 +249,32 @@ function deleteMemberFamily(index: number, item: any) {
|
|||||||
|
|
||||||
// 提交数据
|
// 提交数据
|
||||||
function submit() {
|
function submit() {
|
||||||
setFile({
|
const gkkRyList = map(education.xl, (item) => {
|
||||||
...getFile,
|
return { ...item.value, hjlxId: "GKKHJQK" };
|
||||||
gkkRyList: map(education.xl, (item) => {
|
|
||||||
return { ...item.value, hjlxId: "GKKHJQK" };
|
|
||||||
}),
|
|
||||||
});
|
|
||||||
navigateTo("/pages/view/hr/teacherProfile/RecordMaterials");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 初始化数据
|
|
||||||
const { getFile, setFile } = useDataStore();
|
|
||||||
|
|
||||||
// 处理回显数据
|
|
||||||
if (getFile.gkkRyList && getFile.gkkRyList.length > 0) {
|
|
||||||
education.xl = map(getFile.gkkRyList, (item) => {
|
|
||||||
return { value: item };
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// // 初始化数据
|
||||||
|
// const { getFile, setFile } = useDataStore();
|
||||||
|
|
||||||
|
// // 处理回显数据
|
||||||
|
// if (getFile.gkkRyList && getFile.gkkRyList.length > 0) {
|
||||||
|
// education.xl = map(getFile.gkkRyList, (item) => {
|
||||||
|
// return { value: item };
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
// 页面加载时初始化
|
// 页面加载时初始化
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (getFile.gkkRyList && getFile.gkkRyList.length > 0) {
|
// if (getFile.gkkRyList && getFile.gkkRyList.length > 0) {
|
||||||
// 有回显数据时,延迟初始化确保数据正确加载
|
// // 有回显数据时,延迟初始化确保数据正确加载
|
||||||
nextTick(() => {
|
// nextTick(() => {
|
||||||
initEchoData();
|
// initEchoData();
|
||||||
});
|
// });
|
||||||
} else {
|
// } else {
|
||||||
// 无回显数据时,只需要初始化荣誉类别
|
// // 无回显数据时,只需要初始化荣誉类别
|
||||||
initHonorCategories();
|
// initHonorCategories();
|
||||||
}
|
// }
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
0
src/pages/view/routine/GongZuoLiang/index.vue
Normal file
0
src/pages/view/routine/GongZuoLiang/index.vue
Normal file
@ -1,128 +0,0 @@
|
|||||||
<template>
|
|
||||||
<view class="container">
|
|
||||||
<uni-card :is-shadow="false" is-full>
|
|
||||||
<view class="header">
|
|
||||||
<text class="score">我的得分: 84</text>
|
|
||||||
<view class="status">
|
|
||||||
<text>我的状态: </text>
|
|
||||||
<view class="status-indicator"></view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</uni-card>
|
|
||||||
|
|
||||||
<uni-card :is-shadow="false" is-full margin="10px 0 0 0">
|
|
||||||
<view class="list-header">
|
|
||||||
<text class="category-header">分类</text>
|
|
||||||
<text class="value-header">分值</text>
|
|
||||||
</view>
|
|
||||||
<view class="list-item" v-for="(item, index) in evaluationItems" :key="index">
|
|
||||||
<text class="category-name">{{ item.category }}</text>
|
|
||||||
<text class="value">{{ item.value }}</text>
|
|
||||||
</view>
|
|
||||||
</uni-card>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts" setup>
|
|
||||||
import { ref } from 'vue';
|
|
||||||
|
|
||||||
const evaluationItems = ref([
|
|
||||||
{ category: '师德师风', value: 8 },
|
|
||||||
{ category: '考勤管理', value: 4 },
|
|
||||||
{ category: '资料上交', value: 1 },
|
|
||||||
{ category: '教学质量', value: 1 },
|
|
||||||
{ category: '教育科研课题', value: 8 },
|
|
||||||
{ category: '个人材料发表和获奖', value: 9 },
|
|
||||||
{ category: '展示交流和比赛', value: 4 },
|
|
||||||
{ category: '工作室活动', value: 5 },
|
|
||||||
{ category: '荣誉', value: 6 },
|
|
||||||
{ category: '辅导学生', value: 7 },
|
|
||||||
{ category: '安全管理', value: 2 },
|
|
||||||
{ category: '班级常规管理', value: 7 },
|
|
||||||
]);
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.container {
|
|
||||||
background-color: #f8f8f8;
|
|
||||||
min-height: 100vh;
|
|
||||||
padding: 15px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
padding: 10px 0; // Adjusted padding
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.score {
|
|
||||||
color: #333;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status-indicator {
|
|
||||||
width: 12px;
|
|
||||||
height: 12px;
|
|
||||||
background-color: #4caf50; // Green color from the image
|
|
||||||
margin-left: 8px;
|
|
||||||
border-radius: 2px; // Slightly rounded corners
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove default card padding if needed
|
|
||||||
::v-deep .uni-card .uni-card__content {
|
|
||||||
padding: 10px 15px !important; // Overwrite default padding
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.list-header {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding: 10px 0; // Adjust padding as needed
|
|
||||||
border-bottom: 1px solid #eee;
|
|
||||||
color: #666;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.category-header {
|
|
||||||
flex: 3; // Give more space to category
|
|
||||||
}
|
|
||||||
|
|
||||||
.value-header {
|
|
||||||
flex: 1;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-item {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
padding: 12px 0; // Vertical padding for spacing
|
|
||||||
border-bottom: 1px solid #eee;
|
|
||||||
font-size: 14px;
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
border-bottom: none; // Remove border for the last item
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.category-name {
|
|
||||||
flex: 3; // Corresponds to header
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.value {
|
|
||||||
flex: 1; // Corresponds to header
|
|
||||||
text-align: right;
|
|
||||||
color: #333;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
225
src/pages/view/routine/JiFenPingJia/JiFenPingJia.vue
Normal file
225
src/pages/view/routine/JiFenPingJia/JiFenPingJia.vue
Normal file
@ -0,0 +1,225 @@
|
|||||||
|
<template>
|
||||||
|
<BasicLayout>
|
||||||
|
<view class="container">
|
||||||
|
<uni-card :is-shadow="false" is-full>
|
||||||
|
<view class="header">
|
||||||
|
<text class="score">我的得分: 84</text>
|
||||||
|
<view class="status">
|
||||||
|
<text>我的状态: </text>
|
||||||
|
<view class="status-indicator"></view>
|
||||||
|
<view class="review-count" v-if="reviewingCount > 0">
|
||||||
|
{{ reviewingCount }}项在审核
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</uni-card>
|
||||||
|
|
||||||
|
<uni-card :is-shadow="false" is-full margin="10px 0 0 0">
|
||||||
|
<view class="list-header">
|
||||||
|
<text class="category-header">分类</text>
|
||||||
|
<text class="value-header">分值</text>
|
||||||
|
</view>
|
||||||
|
<view
|
||||||
|
class="list-item"
|
||||||
|
v-for="(item, index) in evaluationItems"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<view
|
||||||
|
class="flex-row items-center justify-between w-full"
|
||||||
|
@click="handleItemClick(item)"
|
||||||
|
>
|
||||||
|
<view class="category-name">{{ item.category }}</view>
|
||||||
|
<view class="flex-row items-center">
|
||||||
|
<text class="value">{{ item.value }}</text>
|
||||||
|
<view class="review-badge" v-if="item.isUnderReview">审</view>
|
||||||
|
<u-icon name="arrow-right" size="16" color="#999"></u-icon
|
||||||
|
></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</uni-card>
|
||||||
|
</view>
|
||||||
|
<template #bottom>
|
||||||
|
<view class="white-bg-color py-5">
|
||||||
|
<view class="flex-row items-center pb-10 pt-5">
|
||||||
|
<u-button
|
||||||
|
text="上传个人荣誉"
|
||||||
|
class="ml-15 mr-7"
|
||||||
|
:plain="true"
|
||||||
|
@click="scgrry"
|
||||||
|
/>
|
||||||
|
<u-button
|
||||||
|
text="上传公开课获奖"
|
||||||
|
class="mr-15 mr-7"
|
||||||
|
type="primary"
|
||||||
|
@click="scgkkhj"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
</BasicLayout>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, computed } from "vue";
|
||||||
|
|
||||||
|
const evaluationItems = ref([
|
||||||
|
{ category: "师德师风", value: 8, isUnderReview: false },
|
||||||
|
{ category: "考勤管理", value: 4, isUnderReview: true },
|
||||||
|
{ category: "资料上交", value: 1, isUnderReview: false },
|
||||||
|
{ category: "教学质量", value: 1, isUnderReview: true },
|
||||||
|
{ category: "教育科研课题", value: 8, isUnderReview: false },
|
||||||
|
{ category: "个人材料发表和获奖", value: 9, isUnderReview: true },
|
||||||
|
{ category: "展示交流和比赛", value: 4, isUnderReview: false },
|
||||||
|
{ category: "工作室活动", value: 5, isUnderReview: false },
|
||||||
|
{ category: "荣誉", value: 6, isUnderReview: true },
|
||||||
|
{ category: "辅导学生", value: 7, isUnderReview: false },
|
||||||
|
{ category: "安全管理", value: 2, isUnderReview: false },
|
||||||
|
{ category: "班级常规管理", value: 7, isUnderReview: true },
|
||||||
|
]);
|
||||||
|
|
||||||
|
// 计算正在审核的项目数量
|
||||||
|
const reviewingCount = computed(() => {
|
||||||
|
return evaluationItems.value.filter(item => item.isUnderReview).length;
|
||||||
|
});
|
||||||
|
|
||||||
|
function handleItemClick(item: any) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/view/routine/JiFenPingJia/detail?id=${item.id}`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function scgrry() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/view/hr/teacherProfile/PersonalHonor`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function scgkkhj() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/view/hr/teacherProfile/PublicClassAwards`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.container {
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
min-height: 100vh;
|
||||||
|
padding: 15px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 10px 0; // Adjusted padding
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.score {
|
||||||
|
color: #333;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-indicator {
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
|
background-color: #4caf50; // Green color from the image
|
||||||
|
margin-left: 8px;
|
||||||
|
border-radius: 2px; // Slightly rounded corners
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-count {
|
||||||
|
background-color: #fff2e8;
|
||||||
|
color: #ff6b35;
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 2px 8px;
|
||||||
|
border-radius: 12px;
|
||||||
|
margin-left: 12px;
|
||||||
|
border: 1px solid #ff6b35;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove default card padding if needed
|
||||||
|
::v-deep .uni-card .uni-card__content {
|
||||||
|
padding: 10px 15px !important; // Overwrite default padding
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 10px 0; // Adjust padding as needed
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
color: #666;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-header {
|
||||||
|
flex: 3; // Give more space to category
|
||||||
|
}
|
||||||
|
|
||||||
|
.value-header {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-item {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 12px 0; // Vertical padding for spacing
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
font-size: 14px;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
border-bottom: none; // Remove border for the last item
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-name {
|
||||||
|
flex: 3; // Corresponds to header
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.value {
|
||||||
|
flex: 1; // Corresponds to header
|
||||||
|
text-align: right;
|
||||||
|
color: #333;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-badge {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background-color: #ff6b35;
|
||||||
|
color: #ffffff;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-left: 8px;
|
||||||
|
margin-right: 8px;
|
||||||
|
animation: pulse 2s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes pulse {
|
||||||
|
0% {
|
||||||
|
box-shadow: 0 0 0 0 rgba(255, 107, 53, 0.7);
|
||||||
|
}
|
||||||
|
70% {
|
||||||
|
box-shadow: 0 0 0 10px rgba(255, 107, 53, 0);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
box-shadow: 0 0 0 0 rgba(255, 107, 53, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
277
src/pages/view/routine/JiFenPingJia/detail.vue
Normal file
277
src/pages/view/routine/JiFenPingJia/detail.vue
Normal file
@ -0,0 +1,277 @@
|
|||||||
|
<template>
|
||||||
|
<view class="detail-container">
|
||||||
|
<view class="content-wrapper">
|
||||||
|
<!-- 评分标准 -->
|
||||||
|
<view class="form-section">
|
||||||
|
<view class="section-title">评分标准</view>
|
||||||
|
<view class="standard-text">
|
||||||
|
1.一二年级考核语文、数学两个学科。平行班教学质量评价差距均在2分内的,按一...
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 考核评价 -->
|
||||||
|
<view class="detail-item">
|
||||||
|
<text class="detail-label">考核评价</text>
|
||||||
|
<text class="detail-value">{{ detailData.evaluationType }}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 积分类型 -->
|
||||||
|
<view class="detail-item">
|
||||||
|
<text class="detail-label">积分类型</text>
|
||||||
|
<text class="detail-value">{{ detailData.scoreType }}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 积分分值 -->
|
||||||
|
<view class="detail-item">
|
||||||
|
<text class="detail-label">积分分值</text>
|
||||||
|
<text class="detail-value">{{ detailData.scoreValue }}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 考核处室 -->
|
||||||
|
<view class="detail-item">
|
||||||
|
<text class="detail-label">考核处室</text>
|
||||||
|
<text class="detail-value">{{ detailData.department }}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 考核时间 -->
|
||||||
|
<view class="detail-item">
|
||||||
|
<text class="detail-label">考核时间</text>
|
||||||
|
<text class="detail-value">{{ detailData.evaluationDate }}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 考核打分 -->
|
||||||
|
<view class="detail-item">
|
||||||
|
<text class="detail-label">考核打分</text>
|
||||||
|
<text class="detail-value">{{ detailData.score }}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 证明材料 -->
|
||||||
|
<view class="detail-item file-section" v-if="detailData.files.length > 0">
|
||||||
|
<text class="detail-label">证明材料</text>
|
||||||
|
<view class="file-list">
|
||||||
|
<view
|
||||||
|
class="file-item"
|
||||||
|
v-for="(file, index) in detailData.files"
|
||||||
|
:key="index"
|
||||||
|
@click="previewFile(file)"
|
||||||
|
>
|
||||||
|
<uni-icons type="paperplane" size="16" color="#409eff" />
|
||||||
|
<text class="file-name">{{ file.name }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 转手机端按钮 -->
|
||||||
|
<view class="bottom-actions">
|
||||||
|
<button class="mobile-btn" @click="goBack">返回</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, onMounted } from "vue";
|
||||||
|
|
||||||
|
interface DetailData {
|
||||||
|
evaluationType: string;
|
||||||
|
scoreType: string;
|
||||||
|
scoreValue: number | string;
|
||||||
|
department: string;
|
||||||
|
evaluationDate: string;
|
||||||
|
score: number | string;
|
||||||
|
files: Array<{ name: string; url: string }>;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 详情数据
|
||||||
|
const detailData = ref<DetailData>({
|
||||||
|
evaluationType: "考核评价",
|
||||||
|
scoreType: "加分",
|
||||||
|
scoreValue: 1,
|
||||||
|
department: "教科处",
|
||||||
|
evaluationDate: "2025-06-08",
|
||||||
|
score: 90,
|
||||||
|
files: [
|
||||||
|
{ name: "教学成果证明.pdf", url: "/files/certificate.pdf" },
|
||||||
|
{ name: "获奖证书.jpg", url: "/files/award.jpg" },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
// 返回上一页
|
||||||
|
const goBack = () => {
|
||||||
|
uni.navigateBack();
|
||||||
|
};
|
||||||
|
|
||||||
|
// 预览文件
|
||||||
|
const previewFile = (file: { name: string; url: string }) => {
|
||||||
|
// 根据文件类型进行预览
|
||||||
|
const ext = file.name.split(".").pop()?.toLowerCase();
|
||||||
|
|
||||||
|
if (["jpg", "jpeg", "png", "gif"].includes(ext || "")) {
|
||||||
|
// 图片预览
|
||||||
|
uni.previewImage({
|
||||||
|
urls: [file.url],
|
||||||
|
current: file.url,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// 其他文件类型提示下载
|
||||||
|
uni.showModal({
|
||||||
|
title: "提示",
|
||||||
|
content: `是否下载文件: ${file.name}?`,
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
// TODO: 实现文件下载逻辑
|
||||||
|
uni.showToast({
|
||||||
|
title: "开始下载",
|
||||||
|
icon: "success",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 转手机端
|
||||||
|
const transferToMobile = () => {
|
||||||
|
uni.showModal({
|
||||||
|
title: "提示",
|
||||||
|
content: "确定要转到手机端处理吗?",
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
// TODO: 实现转手机端逻辑
|
||||||
|
uni.showToast({
|
||||||
|
title: "已转至手机端",
|
||||||
|
icon: "success",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
// 页面加载时可以获取详情数据
|
||||||
|
console.log("页面加载完成");
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.detail-container {
|
||||||
|
min-height: 100vh;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-wrapper {
|
||||||
|
padding: 30rpx 30rpx 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-section {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
|
||||||
|
.section-title {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #333;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.standard-text {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
|
||||||
|
.detail-label {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
width: 160rpx;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail-value {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.file-section {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
|
||||||
|
.detail-label {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.file-list {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.file-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 15rpx 20rpx;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: #e6f7ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
uni-icons {
|
||||||
|
margin-right: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.file-name {
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #333;
|
||||||
|
flex: 1;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-actions {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
padding: 20rpx 30rpx;
|
||||||
|
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-top: 1rpx solid #eee;
|
||||||
|
|
||||||
|
.mobile-btn {
|
||||||
|
width: 100%;
|
||||||
|
height: 88rpx;
|
||||||
|
background-color: #ff4757;
|
||||||
|
color: #ffffff;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 44rpx;
|
||||||
|
border: none;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: #ff3742;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
174
src/pages/view/routine/RengJiaoRengZhi/index.vue
Normal file
174
src/pages/view/routine/RengJiaoRengZhi/index.vue
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
<template>
|
||||||
|
<view class="container">
|
||||||
|
<view class="content">
|
||||||
|
<!-- 党政职务 -->
|
||||||
|
<view class="section">
|
||||||
|
<view class="section-title">党政职务:</view>
|
||||||
|
<view class="position-display">
|
||||||
|
<text class="position-text" v-for="item in partyPositions" :key="item.id">
|
||||||
|
{{ item.name }}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 其他职务 -->
|
||||||
|
<view class="section">
|
||||||
|
<view class="section-title">其他职务</view>
|
||||||
|
<view class="position-display">
|
||||||
|
<text class="position-text" v-for="item in otherPositions" :key="item.id">
|
||||||
|
{{ item.name }}
|
||||||
|
</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 任职信息列表 -->
|
||||||
|
<view class="info-list">
|
||||||
|
<view class="info-item" v-for="item in teachingInfo" :key="item.key">
|
||||||
|
<view class="info-label">{{ item.label }}</view>
|
||||||
|
<view class="info-value">
|
||||||
|
<text :class="{ empty: item.isEmpty }">{{ item.value }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
|
||||||
|
// 党政职务数据
|
||||||
|
const partyPositions = ref([
|
||||||
|
{ id: 1, name: "党委(总支)书记" },
|
||||||
|
{ id: 2, name: "党委(总支)副书记" },
|
||||||
|
]);
|
||||||
|
|
||||||
|
// 其他职务数据
|
||||||
|
const otherPositions = ref([{ id: 1, name: "党支部支委" }]);
|
||||||
|
|
||||||
|
// 任教任职信息
|
||||||
|
const teachingInfo = ref([
|
||||||
|
{
|
||||||
|
key: "mainSubject",
|
||||||
|
label: "主任学科",
|
||||||
|
value: "音乐",
|
||||||
|
isEmpty: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "mainClass",
|
||||||
|
label: "主任班级",
|
||||||
|
value: "未填写",
|
||||||
|
isEmpty: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "partTimeSubject",
|
||||||
|
label: "兼任学科",
|
||||||
|
value: "未填写",
|
||||||
|
isEmpty: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "partTimeClass",
|
||||||
|
label: "兼任班级",
|
||||||
|
value: "未填写",
|
||||||
|
isEmpty: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "grade",
|
||||||
|
label: "所属年级",
|
||||||
|
value: "一年级(2024级)",
|
||||||
|
isEmpty: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: "headTeacherClass",
|
||||||
|
label: "所任班主任班级",
|
||||||
|
value: "8班",
|
||||||
|
isEmpty: false,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
// 返回上一页
|
||||||
|
const goBack = () => {
|
||||||
|
uni.navigateBack();
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.container {
|
||||||
|
min-height: 100vh;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
padding-bottom: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
background-color: #ffffff;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
|
||||||
|
.section-title {
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 职务展示
|
||||||
|
.position-display {
|
||||||
|
.position-text {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
|
||||||
|
&:not(:last-child)::after {
|
||||||
|
content: '、';
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 信息列表
|
||||||
|
.info-list {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
margin: 0 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 30rpx;
|
||||||
|
border-bottom: 1rpx solid #f0f0f0;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-label {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-value {
|
||||||
|
flex: 1;
|
||||||
|
text-align: right;
|
||||||
|
|
||||||
|
text {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
|
||||||
|
&.empty {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -1,17 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="page-container">
|
<view class="page-container">
|
||||||
<!-- 1. 顶部 Banner -->
|
<!-- 1. 顶部 Banner -->
|
||||||
<view class="header-banner mx-15 mt-15 r-md" style="box-sizing: border-box">
|
<!-- <view class="header-banner mx-15 mt-15 r-md" style="box-sizing: border-box">
|
||||||
<view class="banner-text">
|
<view class="banner-text">
|
||||||
<text class="banner-title">上课巡查</text>
|
<text class="banner-title">上课巡查</text>
|
||||||
<text class="banner-subtitle">泸州市实验小学城西学校</text>
|
<text class="banner-subtitle">泸州市实验小学城西学校</text>
|
||||||
</view>
|
</view>
|
||||||
<!-- 右侧图片区域,暂时留空或用占位符 -->
|
|
||||||
<view class="banner-image-placeholder"></view>
|
<view class="banner-image-placeholder"></view>
|
||||||
</view>
|
</view> -->
|
||||||
|
|
||||||
<!-- 2. 我的应用 -->
|
<!-- 2. 我的应用 -->
|
||||||
<view class="section my-apps mt-15 px-15">
|
<!-- <view class="section my-apps mt-15 px-15">
|
||||||
<view class="section-title-bar">
|
<view class="section-title-bar">
|
||||||
<view class="decorator"></view>
|
<view class="decorator"></view>
|
||||||
<text class="title-text">我的应用</text>
|
<text class="title-text">我的应用</text>
|
||||||
@ -20,19 +19,17 @@
|
|||||||
<view class="app-grid">
|
<view class="app-grid">
|
||||||
<view class="app-item" @click="goToRecord">
|
<view class="app-item" @click="goToRecord">
|
||||||
<view class="app-icon-wrapper record-icon">
|
<view class="app-icon-wrapper record-icon">
|
||||||
<!-- 暂时用背景色代替图标 -->
|
|
||||||
</view>
|
</view>
|
||||||
<text class="app-text">巡查记录</text>
|
<text class="app-text">巡查记录</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="app-item" @click="goToSummary">
|
<view class="app-item" @click="goToSummary">
|
||||||
<view class="app-icon-wrapper summary-icon">
|
<view class="app-icon-wrapper summary-icon">
|
||||||
<!-- 暂时用背景色代替图标 -->
|
|
||||||
</view>
|
</view>
|
||||||
<text class="app-text">巡查汇总</text>
|
<text class="app-text">巡查汇总</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</uni-card>
|
</uni-card>
|
||||||
</view>
|
</view> -->
|
||||||
|
|
||||||
<!-- 3. 巡检情况 -->
|
<!-- 3. 巡检情况 -->
|
||||||
<view class="section inspection-status flex-1 flex-col mt-15">
|
<view class="section inspection-status flex-1 flex-col mt-15">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user