Commit f57ca13a by zhaopanyu

公文流转修改 1.5

parent 09b589fb
import {createRouter, createWebHashHistory, createWebHistory} from "vue-router";
import {Toast} from "vant";
import {
createRouter,
createWebHashHistory,
createWebHistory,
} from "vue-router";
import { Toast } from "vant";
// createWebHistory
const routes = [
......@@ -101,7 +105,6 @@ const routes = [
component: () => import("../views/parent/exlist.vue"),
},
/* 校历*/
{
path: "/Calendar",
......@@ -130,7 +133,6 @@ const routes = [
import("../views/public/questionnaire/questionnairedetail.vue"),
},
/* 学生请假 */
{
path: "/studentLeave",
......@@ -235,19 +237,22 @@ const routes = [
{
path: "/courseList",
name: "courseList",
component: () => import("../views/parent/studentCourseSelection/courseList"),
component: () =>
import("../views/parent/studentCourseSelection/courseList"),
},
/* 学生选课 家长端 超过日期页面 */
{
path: "/studentCourse",
name: "studentCourse",
component: () => import("../views/parent/studentCourseSelection/checkCourse"),
component: () =>
import("../views/parent/studentCourseSelection/checkCourse"),
},
/* 学生选课 家长端 学科成绩 */
{
path: "/subjectAchievement",
name: "subjectAchievement",
component: () => import("../views/parent/studentCourseSelection/subjectAchievement"),
component: () =>
import("../views/parent/studentCourseSelection/subjectAchievement"),
},
/* 学校社团 家长端 */
{
......@@ -271,7 +276,8 @@ const routes = [
{
path: "/totalScoreView",
name: "totalScoreView",
component: () => import("../views/parent/studentCourseSelection/totalScoreView"),
component: () =>
import("../views/parent/studentCourseSelection/totalScoreView"),
},
/* 教师列表页 教师端的 可以查看所有教师 */
{
......@@ -481,6 +487,7 @@ const routes = [
name: "materialPurchase",
component: () => import("../views/teacher/approvalList/index.vue"),
},
// 审批详情
{
path: "/approvalDetail",
......@@ -493,6 +500,24 @@ const routes = [
name: "teacherLeaveDetail",
component: () => import("../views/teacher/approvalList/detailqj.vue"),
},
//公文流转
{
path: "/moveMent",
name: "moveMent",
component: () => import("../views/teacher/moveMent/index.vue"),
},
//传阅查看
{
path: "/InitiateAction",
name: "InitiateAction",
component: () => import("../views/teacher/moveMent/InitiateAction.vue"),
},
//批阅
{
path: "/readOver",
name: "readOver",
component: () => import("../views/teacher/moveMent/readOver.vue"),
},
//我的领用
{
path: "/myUse",
......@@ -640,7 +665,8 @@ const routes = [
{
path: "/schoolProperty/equipmentFix/equipmentFixDetail",
name: "equipmentFixDetail",
component: () => import("../views/teacher/schoolProperty/equipmentFixDetail"),
component: () =>
import("../views/teacher/schoolProperty/equipmentFixDetail"),
},
// 设备报修新增、修改、查看、反馈页面
{
......@@ -651,197 +677,253 @@ const routes = [
//扫码查看设备的详细信息
{
path: "/schoolProperty/equipmentInfo",
name: 'equipmentInfo',
name: "equipmentInfo",
component: () => import("../views/teacher/schoolProperty/equipmentInfo"),
},
/** 实验室管理 laboratoryManagement 管理员权限 教师权限 领导权限 级部权限 **/
{
path: "/laboratoryManagement",
name: 'laboratoryManagement',
name: "laboratoryManagement",
component: () => import("../views/teacher/laboratoryManagement/index.vue"),
},
//领导-实验室记录
{
path: "/laboratoryManagement/laboratoryRecord",
name: 'laboratoryRecord',
component: () => import("../views/teacher/laboratoryManagement/leader/laboratoryRecord"),
name: "laboratoryRecord",
component: () =>
import("../views/teacher/laboratoryManagement/leader/laboratoryRecord"),
},
//领导-实验室完成情况统计
{
path: "/laboratoryManagement/laboratoryCompleteStatistics",
name: 'laboratoryCompleteStatistics',
component: () => import("../views/teacher/laboratoryManagement/leader/laboratoryCompleteStatistics"),
name: "laboratoryCompleteStatistics",
component: () =>
import(
"../views/teacher/laboratoryManagement/leader/laboratoryCompleteStatistics"
),
},
{
path: '/laboratoryManagement/laboratoryCompleteStatistics/checkComplete',
name: 'checkComplete',
component: () => import("../views/teacher/laboratoryManagement/leader/checkComplete"),
path: "/laboratoryManagement/laboratoryCompleteStatistics/checkComplete",
name: "checkComplete",
component: () =>
import("../views/teacher/laboratoryManagement/leader/checkComplete"),
},
// 实验室管理员 - 年级实验预约列表
{
path: '/laboratoryManagement/gradeLaboratory',
name: 'gradeLaboratory',
component: () => import("../views/teacher/laboratoryManagement/manager/gradeLaboratory"),
path: "/laboratoryManagement/gradeLaboratory",
name: "gradeLaboratory",
component: () =>
import("../views/teacher/laboratoryManagement/manager/gradeLaboratory"),
},
// 实验室管理员 - 年级实验预约列表查看
{
path: '/laboratoryManagement/gradeLaboratory/checkGradeComplete',
name: 'checkGradeComplete',
component: () => import("../views/teacher/laboratoryManagement/manager/checkGradeComplete"),
path: "/laboratoryManagement/gradeLaboratory/checkGradeComplete",
name: "checkGradeComplete",
component: () =>
import(
"../views/teacher/laboratoryManagement/manager/checkGradeComplete"
),
},
// 实验室管理员 - 教师实验室预约
{
path: '/laboratoryManagement/teacherLaboratory',
name: 'teacherLaboratory',
component: () => import("../views/teacher/laboratoryManagement/manager/teacherLaboratory"),
path: "/laboratoryManagement/teacherLaboratory",
name: "teacherLaboratory",
component: () =>
import("../views/teacher/laboratoryManagement/manager/teacherLaboratory"),
},
// 实验室管理员 - 教师实验室预约查看/申请审批
{
path: '/laboratoryManagement/teacherLaboratory/teacherLaboratoryApprove',
name: 'teacherLaboratoryApprove',
component: () => import("../views/teacher/laboratoryManagement/manager/teacherLaboratoryApprove"),
path: "/laboratoryManagement/teacherLaboratory/teacherLaboratoryApprove",
name: "teacherLaboratoryApprove",
component: () =>
import(
"../views/teacher/laboratoryManagement/manager/teacherLaboratoryApprove"
),
},
// 实验室管理员 - 个人实验审批
{
path: '/laboratoryManagement/personalLaboratoryApprove',
name: 'personalLaboratoryApprove',
component: () => import("../views/teacher/laboratoryManagement/manager/personalLaboratoryApprove"),
path: "/laboratoryManagement/personalLaboratoryApprove",
name: "personalLaboratoryApprove",
component: () =>
import(
"../views/teacher/laboratoryManagement/manager/personalLaboratoryApprove"
),
},
//级部申请-年级实验室预约
{
path: '/laboratoryManagement/gradeLaboratoryApprove',
name: 'gradeLaboratoryApprove',
component: () => import("../views/teacher/laboratoryManagement/levelPart/gradeLaboratoryApprove"),
path: "/laboratoryManagement/gradeLaboratoryApprove",
name: "gradeLaboratoryApprove",
component: () =>
import(
"../views/teacher/laboratoryManagement/levelPart/gradeLaboratoryApprove"
),
},
//级部申请-年级实验室预约-新增/查看/修改
{
path: '/laboratoryManagement/gradeLaboratoryApprove/gradeLaboratoryDetail',
name: 'gradeLaboratoryDetail',
component: () => import("../views/teacher/laboratoryManagement/levelPart/gradeLaboratoryDetail"),
path: "/laboratoryManagement/gradeLaboratoryApprove/gradeLaboratoryDetail",
name: "gradeLaboratoryDetail",
component: () =>
import(
"../views/teacher/laboratoryManagement/levelPart/gradeLaboratoryDetail"
),
},
//级部申请-班级完成情况明细
{
path: '/laboratoryManagement/gradeLaboratoryComplete',
name: 'gradeLaboratoryComplete',
component: () => import("../views/teacher/laboratoryManagement/levelPart/gradeLaboratoryComplete"),
path: "/laboratoryManagement/gradeLaboratoryComplete",
name: "gradeLaboratoryComplete",
component: () =>
import(
"../views/teacher/laboratoryManagement/levelPart/gradeLaboratoryComplete"
),
},
//级部申请-班级完成情况查看
{
path: '/laboratoryManagement/gradeLaboratoryComplete/checkGradeLaboratoryComplete',
name: 'checkGradeLaboratoryComplete',
component: () => import("../views/teacher/laboratoryManagement/levelPart/checkGradeLaboratoryComplete"),
path: "/laboratoryManagement/gradeLaboratoryComplete/checkGradeLaboratoryComplete",
name: "checkGradeLaboratoryComplete",
component: () =>
import(
"../views/teacher/laboratoryManagement/levelPart/checkGradeLaboratoryComplete"
),
},
//级部申请-实验室完成情况明细
{
path: '/laboratoryManagement/laboratoryCompleteDetail',
name: 'laboratoryCompleteDetail',
component: () => import("../views/teacher/laboratoryManagement/levelPart/laboratoryCompleteDetail"),
path: "/laboratoryManagement/laboratoryCompleteDetail",
name: "laboratoryCompleteDetail",
component: () =>
import(
"../views/teacher/laboratoryManagement/levelPart/laboratoryCompleteDetail"
),
},
//级部申请-查看实验室完成情况
{
path: '/laboratoryManagement/laboratoryCompleteDetail/checkLaboratoryComplete',
name: 'checkLaboratoryComplete',
component: () => import("../views/teacher/laboratoryManagement/levelPart/checkLaboratoryComplete"),
path: "/laboratoryManagement/laboratoryCompleteDetail/checkLaboratoryComplete",
name: "checkLaboratoryComplete",
component: () =>
import(
"../views/teacher/laboratoryManagement/levelPart/checkLaboratoryComplete"
),
},
//教师申请-实验室安排
{
path: '/laboratoryManagement/laboratoryArrangement',
name: 'laboratoryArrangement',
component: () => import("../views/teacher/laboratoryManagement/teacher/laboratoryArrangement"),
path: "/laboratoryManagement/laboratoryArrangement",
name: "laboratoryArrangement",
component: () =>
import(
"../views/teacher/laboratoryManagement/teacher/laboratoryArrangement"
),
},
//教师申请-实验室安排查看、申请
{
path: '/laboratoryManagement/laboratoryArrangement/laboratoryArrangementDetail',
name: 'laboratoryArrangementDetail',
component: () => import("../views/teacher/laboratoryManagement/teacher/laboratoryArrangementDetail"),
path: "/laboratoryManagement/laboratoryArrangement/laboratoryArrangementDetail",
name: "laboratoryArrangementDetail",
component: () =>
import(
"../views/teacher/laboratoryManagement/teacher/laboratoryArrangementDetail"
),
},
//教师申请-实验室申请记录
{
path: '/laboratoryManagement/laboratoryApplicationRecord',
name: 'laboratoryApplicationRecord',
component: () => import("../views/teacher/laboratoryManagement/teacher/laboratoryApplicationRecord"),
path: "/laboratoryManagement/laboratoryApplicationRecord",
name: "laboratoryApplicationRecord",
component: () =>
import(
"../views/teacher/laboratoryManagement/teacher/laboratoryApplicationRecord"
),
},
//教师申请-实验室申请记录查看
{
path: '/laboratoryManagement/laboratoryApplicationRecord/checkLaboratoryApplication',
name: 'checkLaboratoryApplication',
component: () => import("../views/teacher/laboratoryManagement/teacher/checkLaboratoryApplication"),
path: "/laboratoryManagement/laboratoryApplicationRecord/checkLaboratoryApplication",
name: "checkLaboratoryApplication",
component: () =>
import(
"../views/teacher/laboratoryManagement/teacher/checkLaboratoryApplication"
),
},
//教师申请-个人实验申请
{
path: '/laboratoryManagement/PersonalLaboratoryApplication',
name: 'PersonalLaboratoryApplication',
component: () => import("../views/teacher/laboratoryManagement/teacher/PersonalLaboratoryApplication"),
path: "/laboratoryManagement/PersonalLaboratoryApplication",
name: "PersonalLaboratoryApplication",
component: () =>
import(
"../views/teacher/laboratoryManagement/teacher/PersonalLaboratoryApplication"
),
},
//教师申请-个人实验申请新增、修改
{
path: '/laboratoryManagement/PersonalLaboratoryApplication/PersonalLaboratoryApplyDetail',
name: 'PersonalLaboratoryApplyDetail',
component: () => import("../views/teacher/laboratoryManagement/teacher/PersonalLaboratoryApplyDetail"),
path: "/laboratoryManagement/PersonalLaboratoryApplication/PersonalLaboratoryApplyDetail",
name: "PersonalLaboratoryApplyDetail",
component: () =>
import(
"../views/teacher/laboratoryManagement/teacher/PersonalLaboratoryApplyDetail"
),
},
/** 实验室管理 laboratoryManagement 管理员权限 教师权限 领导权限 级部权限 **/
/** 安全管理 safetyManagement 教师端 **/
{
path: '/safetyManagement',
name: 'safetyManagement',
path: "/safetyManagement",
name: "safetyManagement",
component: () => import("../views/teacher/safetyManagement/index.vue"),
},
//个人安全管理-车辆出入登记
{
path: '/safetyManagement/carAccessRegistration',
name: 'carAccessRegistration',
component: () => import("../views/teacher/safetyManagement/carAccessRegistration"),
path: "/safetyManagement/carAccessRegistration",
name: "carAccessRegistration",
component: () =>
import("../views/teacher/safetyManagement/carAccessRegistration"),
},
//个人安全管理-监控录像调阅
{
path: '/safetyManagement/monitoringCall',
name: 'monitoringCall',
path: "/safetyManagement/monitoringCall",
name: "monitoringCall",
component: () => import("../views/teacher/safetyManagement/monitoringCall"),
},
//信息中心监控管理-监控调阅内部
{
path: '/safetyManagement/monitoringCallInside',
name: 'monitoringCallInside',
component: () => import("../views/teacher/safetyManagement/monitoringCallInside"),
path: "/safetyManagement/monitoringCallInside",
name: "monitoringCallInside",
component: () =>
import("../views/teacher/safetyManagement/monitoringCallInside"),
},
//信息中心监控管理-监控调阅外部
{
path: '/safetyManagement/monitoringCallOutside',
name: 'monitoringCallOutside',
component: () => import("../views/teacher/safetyManagement/monitoringCallOutside"),
path: "/safetyManagement/monitoringCallOutside",
name: "monitoringCallOutside",
component: () =>
import("../views/teacher/safetyManagement/monitoringCallOutside"),
},
//安全管理-车辆登记表
{
path: '/safetyManagement/vehicleRegistration',
name: 'vehicleRegistration',
component: () => import("../views/teacher/safetyManagement/vehicleRegistration"),
path: "/safetyManagement/vehicleRegistration",
name: "vehicleRegistration",
component: () =>
import("../views/teacher/safetyManagement/vehicleRegistration"),
},
//安全管理-车辆出入登记申请列表
{
path: '/safetyManagement/carAccessRegistrationApply',
name: 'carAccessRegistrationApply',
component: () => import("../views/teacher/safetyManagement/carAccessRegistrationApply"),
path: "/safetyManagement/carAccessRegistrationApply",
name: "carAccessRegistrationApply",
component: () =>
import("../views/teacher/safetyManagement/carAccessRegistrationApply"),
},
//安全管理-监控调阅内部申请列表
{
path: '/safetyManagement/monitoringCallInsideApply',
name: 'monitoringCallInsideApply',
component: () => import("../views/teacher/safetyManagement/monitoringCallInsideApply"),
path: "/safetyManagement/monitoringCallInsideApply",
name: "monitoringCallInsideApply",
component: () =>
import("../views/teacher/safetyManagement/monitoringCallInsideApply"),
},
//安全管理-监控调阅外部申请列表
{
path: '/safetyManagement/monitoringCallOutsideApply',
name: 'monitoringCallOutsideApply',
component: () => import("../views/teacher/safetyManagement/monitoringCallOutsideApply"),
path: "/safetyManagement/monitoringCallOutsideApply",
name: "monitoringCallOutsideApply",
component: () =>
import("../views/teacher/safetyManagement/monitoringCallOutsideApply"),
},
];
const router = createRouter({
history: createWebHashHistory('zhxygzh'),
history: createWebHashHistory("zhxygzh"),
// mode: "history",
// base: process.env.BASE_URL,
routes,
......@@ -853,7 +935,7 @@ router.beforeEach((to, from, next) => {
Toast("开发中");
return;
}
next()
next();
// next();
// if (!to.meta.noAuth) {
// next({ name: "login" });
......
......@@ -58,7 +58,7 @@ export function loginOut() {
});
}
export function getgetToken(id) {
let result = axios.get("/wx/user/getToken")
let result = axios.get("/wx/user/getToken");
return result;
}
......@@ -301,7 +301,10 @@ export function messageinfoteac(id) {
//消息读取
export function changeStatus(id) {
let url = store.state.userLoginType == 1 ? "/wx/parentMessage/changeStatus/" : "/wx/message/changeStatus/"
let url =
store.state.userLoginType == 1
? "/wx/parentMessage/changeStatus/"
: "/wx/message/changeStatus/";
let result = axios.put(url + id + "?status=1");
return result;
}
......@@ -634,14 +637,14 @@ export function cancelLeave(taskId, params) {
});
}
//根据用户找到所在的组织
export function getUserDept(userId){
export function getUserDept(userId) {
return axios({
url: "/wx/teacherLeave/getUserDept/" + userId,
method: "get",
});
}
//根据部门和部门id 获取当前机构的 科室主任 处室主任
export function getDeptGrapRole(deptName,deptId){
export function getDeptGrapRole(deptName, deptId) {
return axios({
url: `/wx/teacherLeave/getDeptGrapRole?deptName=${deptName}&deptId=${deptId}`,
method: "get",
......@@ -1101,7 +1104,7 @@ export function getpersonalListinfo(id) {
});
}
//请假时间
export function getTotalTime(query,type) {
export function getTotalTime(query, type) {
return axios({
url: `/wx/teacherLeave/getTotalTime/${store.state.userInfo.userId}/${type}`,
method: "get",
......@@ -1264,11 +1267,7 @@ export function postStudentLeave(params) {
}
export function postStudentLeavecancel(params) {
return axios({
url:
"/wx/studentLeave/cancel/" +
params.taskId +
"/" +
params.instanceId,
url: "/wx/studentLeave/cancel/" + params.taskId + "/" + params.instanceId,
method: "post",
data: params.schoolStudentLeave,
});
......@@ -1319,7 +1318,7 @@ export function uploadfileImg(query) {
});
}
export function postexam(query, id, iscm) {
let url = iscm ? "/wx/schoolDcwj/edit/" + id : "/wx/schoolDcwj/commit/" + id
let url = iscm ? "/wx/schoolDcwj/edit/" + id : "/wx/schoolDcwj/commit/" + id;
return axios({
url: url,
method: "POST",
......@@ -1345,18 +1344,18 @@ export function getschoolXxfbdetail(query) {
});
}
export function postfz(id, query) {
let url = "/wx/schoolXxfb/commit/" + id
let url = "/wx/schoolXxfb/commit/" + id;
return axios({
url: url,
method: "POST",
params: { ...query }
params: { ...query },
});
}
/**
* 信息采集
*/
export function getmatch(query) {
let url = "/wx/schoolInfo/match"
let url = "/wx/schoolInfo/match";
return axios({
url: url,
method: "get",
......@@ -1364,16 +1363,15 @@ export function getmatch(query) {
});
}
export function postmaintain(query) {
let url = "/wx/schoolInfo/maintain"
let url = "/wx/schoolInfo/maintain";
return axios({
url: url,
method: "PUT",
data: query
data: query,
});
}
export function getAcquisitionList(query) {
let url = "/wx/schoolInfo/getAcquisitionList/" + query
let url = "/wx/schoolInfo/getAcquisitionList/" + query;
return axios({
url: url,
method: "get",
......@@ -1389,3 +1387,62 @@ export function getTotalDay(query) {
params: query,
});
}
// 查询我的任务
//我的任务
export function mytaskList(userId) {
return axios.get("/wx/officialflow/taskList/" + userId);
}
// 详情页
export function lookList(id) {
let url = "/wx/officialflow/review/getInfo/" + id;
return axios({
url: url,
method: "get",
params: id,
});
}
// 批阅人操作
export function offiCialflow(query) {
let url = "/wx/officialflow/review/" + query.id; // 在路径和查询参数之间加上 ?
return axios({
url: url,
method: "put",
data: query,
});
}
// 发起人操作
export function offiCialflowfq(query) {
let url = "/wx/officialflow/initiator";
return axios({
url: url,
method: "put",
data: query,
});
}
// 传阅人操作
export function offiCialflowcy(query) {
let url = "/wx/officialflow/circulator/" + query.id;
return axios({
url: url,
method: "put",
data: query,
});
}
//批阅人下拉框
export function getSchoolLeader(query) {
return axios({
url: "/wx/officialflow/getSchoolLeader",
method: "get",
params: query,
});
}
//传阅人
export function getTeacherList(query) {
return axios({
url: "/wx/officialflow/getTeacherList",
method: "get",
params: query,
});
}
<template>
<van-nav-bar title="传阅" left-text="返回" left-arrow @click-left="goback" />
<div style="margin: 0.1rem;font-weight: 700;">
<span style="margin-left: 10px; font-size: 18px;font-family: PingFang SC;background-color: #faf9f9;">公文信息</span>
<table style="border: 1px solid #e5ecf4;">
<tr style="border: 1px solid #e5ecf4;">
<td class="td-width"
style=" font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #faf9f9;">发文字号</td>
<td style=" font-size: 15px;border: 1px solid #e5ecf4; " :colspan="3">{{ list && list.issuedNum ?
list.issuedNum : '' }}</td>
</tr>
<tr style="border: 1px solid #e5ecf4;">
<td class="td-width"
style=" font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #faf9f9;">发文标题</td>
<td style=" font-size: 15px; border: 1px solid #e5ecf4;" :colspan="3">{{ list && list.issuedName ?
list.issuedName : '' }}</td>
</tr>
<tr style="border: 1px solid #e5ecf4;">
<td class="td-width"
style=" font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #f9f9f9;background-color: #faf9f9;">
收文时间
</td>
<td style=" font-size: 15px;border: 1px solid #e5ecf4; "> {{ list && list.receiveDate ?
list.receiveDate : '' }}</td>
<td class="td-width"
style=" font-size: 15px;border: 1px solid #e5ecf4;background-color: #f9f9f9;background-color: #faf9f9; ">
办理期限</td>
<td style=" font-size: 15px;border: 1px solid #e5ecf4; ">{{ list && list.deadline ?
list.deadline : '' }}</td>
</tr>
<tr style="border: 1px solid #e5ecf4;">
<td class="td-width"
style=" font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #faf9f9;">紧急程度</td>
<td style=" font-size: 15px;border: 1px solid #e5ecf4;" :colspan="3">{{ list && list.urgency ?
list.urgency : '' }}</td>
</tr>
<tr style="border: 1px solid #e5ecf4;">
<td class="td-spe" style=" font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #faf9f9;">
简介</td>
<td style=" font-size: 15px;border: 1px solid #e5ecf4;" :colspan="3">{{ list && list.remarks ?
list.remarks : '' }}</td>
</tr>
<tr style="border: 1px solid #e5ecf4;">
<td class="td-spe" style="font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #faf9f9;">
文件
</td>
<td style="font-size: 15px;border: 1px solid #e5ecf4;" :colspan="3">
{{ list && list.fileList ? list.fileList.map(item => item.fjmc).join(', ') : '' }}
</td>
</tr>
</table>
</div>
<!-- 流转信息 -->
<div style="
text-align: left;
margin: 0.2rem;
height: 20px;
font-family: PingFang SC;
font-weight: 700;
color: #242627;
font-size: 18px;
">
<span style="margin-left: 10px; height: 20px">流转信息</span>
</div>
<!-- 表格信息 -->
<div style="
margin-left: 0.2rem;
text-align: center;
min-width: 315px;
height: 68px;
background: #f5f7f7;
border: 1px solid;
border-color: #eeeeee;
display: flex;
align-items: center;
justify-content: space-around;
">
<div style="
height: 67px;
line-height: 67px;
min-width: 60px;
font-family: PingFang SC;
font-weight: 700;
color: #000000;
font-size: 15px;
border-right: 1px solid;
border-color: #eeeeee;
">
接收人
</div>
<div style="
height: 67px;
line-height: 67px;
min-width: 77px;
font-family: PingFang SC;
font-weight: 700;
color: #000000;
font-size: 15px;
border-right: 1px solid;
border-color: #eeeeee;
">
接收时间
</div>
<div style="
height: 67px;
line-height: 67px;
min-width: 137px;
font-family: PingFang SC;
font-weight: 700;
color: #000000;
font-size: 15px;
">
办理时间
</div>
<div style="
height: 67px;
line-height: 67px;
min-width: 137px;
font-family: PingFang SC;
font-weight: 700;
color: #000000;
font-size: 15px;
">
意见
</div>
</div>
<div v-for="item in review" :key="item" style="
display: flex;
/* height: 70px;
line-height: 70px; */
align-items: center;
justify-content: space-around;
/* min-width: 315px; */
border: 1px solid;
border-color: #eeeeee;
">
<div style="
/* height: 67px;
line-height: 67px;
min-width: 101px; */
font-family: PingFang SC;
text-align: center;
color: #000000;
font-size: 14px;
border-right: 1px solid;
border-color: #eeeeee;
">
{{ item.userName }}
</div>
<div style="
min-width: 77px;
font-family: PingFang SC;
color: #000000;
font-size: 14px;
text-align: center;
border-right: 1px solid;
border-color: #eeeeee;
display: flex;
align-items: center;
flex-direction: column;
">
<div style="">{{ item.receiveTime }}</div>
</div>
<div style="
height: 67px;
line-height: 67px;
min-width: 137px;
font-family: PingFang SC;
text-align: center;
color: #000000;
font-size: 14px;
">
{{ item.finishTime }}
</div>
<div style="
height: 67px;
line-height: 67px;
min-width: 137px;
font-family: PingFang SC;
color: #000000;
text-align: center;
font-size: 14px;
">
{{ item.opinion }}
</div>
</div>
</template>
<script setup>
import { ref, toRefs, computed, reactive, onMounted } from "vue";
import {
mytaskList,// 查询我的任务
lookList,// 详情页
offiCialflow,// 批阅人操作
offiCialflowfq,// 发起人操作
offiCialflowcy,// 传阅人操作
getSchoolLeader,//批阅人下拉框
getTeacherList//传阅人下拉框
} from "@/service/home";
import { useRouter, useRoute } from "vue-router";
import { createApp } from 'vue';
import { Field, CellGroup } from 'vant';
import { useStore } from "vuex";
import { Toast } from "vant";
const router = useRouter();
const route = useRoute();
const xzdetail = ref();
const app = createApp();
const list = ref();
const review = ref();
const store = useStore();
// 提交表单
const postForm = ref(null);
const detail = JSON.parse(decodeURIComponent(route.query.detail)); // 接收参数
const state = ref({
opinion: "", //意见
receiveUser: "", //用户id
});
app.use(Field);
app.use(CellGroup);
const loadData = async () => {
let result = await lookList(detail.id, {
});
list.value = result.offical;
console.log(list, 'list');
review.value = result.review;
console.log(review, 'review');
};
console.log(loadData, 'loadData');
const goback = async () => {
try {
const query = {
id: detail.id,
userId: store.state.userInfo.teacherId,
}; // 创建一个空的 query 对象
await offiCialflowcy(query); // 调用 offiCialflowcy 接口,并传递 query 对象
router.back();
} catch (error) {
}
};
onMounted(async () => {
loadData();
});
</script>
<style lang="less" scoped>
table {
border-collapse: collapse;
border: 1px solid gray;
width: 100%;
font-size: 0.28rem;
tr {
width: 100%;
.td-width {
text-align: center;
padding: 0.2225rem;
}
.td-spe {
text-align: center;
padding: 0.3525rem;
}
}
}
</style>
\ No newline at end of file
<template>
<van-nav-bar title="公文流转" left-text="返回" left-arrow @click-left="goback" />
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-list v-model:loading="state.loading" :finished="finished" :finished-text="loadingText" @load="onLoad">
<div class="c_main_list" v-for="item in list" :key="item" style="padding: 18px 12px 15px 17px">
<div style="
font-family: PingFang SC;
font-weight: 700;
color: #000000;
font-size: 16px;
">
{{ item.issuedNum }}
</div>
<div style="font-size: 12px; margin: 10px -10px 10px -10px">
<van-cell-group inset>
<van-field v-model="item.issuedName" rows="4" autosize type="textarea" readonly placeholder="申请内容"
style="
background-color: #f5f7f7;
font-family: PingFang SC;
color: #6f787d;
font-size: 14px;
" />
</van-cell-group>
</div>
<div style="
display: flex;
align-items: center;
justify-content: flex-end;
margin-top: 23px;
">
<div v-if="item.receiveType == '1'" @click="goDetails(item)" class="flex_center" style="
width: 64px;
height: 32px;
border: 1px solid;
background: #ff7a6a;
border-radius: 3px;
font-family: PingFang SC;
font-weight: 700;
color: #ffffff;
font-size: 14px;
text-align: center;
margin-left: 10px;
">
批阅
</div>
<div v-if="item.receiveType == '2'" class="flex_center" @click="goDetails(item)" style="
width: 64px;
height: 32px;
background: #6aadff;
border-radius: 3px;
font-family: PingFang SC;
font-weight: 700;
color: #ffffff;
font-size: 14px;
text-align: center;
margin-left: 10px;
">
传阅
</div>
</div>
</div>
</van-list>
</van-pull-refresh>
<div class="box" style="
margin: 5px 6px 0 6px;
background-color: #ffffff;
height: 180px;
padding: 10px 10px 10px 10px;
"></div>
</template>
<script setup>
import { ref, toRefs, computed, reactive, onMounted } from "vue";
import { useRouter } from "vue-router";
import {
mytaskList,// 查询我的任务
lookList,// 详情页
offiCialflow,// 批阅人操作
offiCialflowfq,// 发起人操作
offiCialflowcy,// 传阅人操作
getSchoolLeader,//批阅人下拉框
getTeacherList//传阅人下拉框
} from "@/service/home";
import { Toast } from "vant";
import axios from "axios";
import { useStore } from "vuex";
import { formatDatetime } from "@/utils/time.js";
const state = reactive({
loading: false,
});
const receiveType = ref("");
const store = useStore();
const router = useRouter();
const list = ref([]);
const loading = ref(false);
const finished = ref(false);
const refreshing = ref(false);
const pageNum = ref(0);
const option1 = [
{ text: "全部", value: "" },
];
const change = async () => {
refreshing.value = true;
onRefresh();
};
const goDetails = (item) => {
// 批阅
if (item.receiveType == 1) {
router.push({
path: "/readOver",
query: {
detail: encodeURIComponent(JSON.stringify(item)),
},
});
}
// 传阅 查看
else if (item.receiveType == 2) {
router.push({
path: "/InitiateAction",
query: {
detail: encodeURIComponent(JSON.stringify(item)),
},
});
}
};
const onLoad = async () => {
if (refreshing.value) {
list.value = [];
pageNum.value = 0;
refreshing.value = false;
}
pageNum.value += 1;
let result = await mytaskList(store.state.userInfo.teacherId);
console.log(result, 'result');
if (result.code == 200) {
list.value.push(...result.data);
list.value.length === result.total && (finished.value = true);
} else {
Toast("获取信息失败!");
loading.value = false;
return;
}
loading.value = false; // 设置loading为false,表示数据加载完成
};
const onRefresh = () => {
// 清空列表数据
finished.value = false;
// 重新加载数据
// 将 loading 设置为 true,表示处于加载状态
loading.value = true;
onLoad();
};
const posttactleave = async () => {
let result = await postteacherLeave();
};
const goback = () => {
router.back();
};
</script>
<style lang="less" scoped>
.main_search_1 {
width: 100%;
flex: 1;
height: 15vw;
display: inline-block;
vertical-align: top;
margin: 0 0 -2px 0;
}
</style>
<template>
<van-nav-bar title="批阅" left-text="返回" left-arrow @click-left="goback" />
<van-row gutter="2"
style="line-height: 10px;display: flex;flex-direction: row;justify-content: center;align-items: center;">
<van-col span="20" @refresh="onRefresh">
<van-form ref="postForm">
<van-field style="font-family: PingFang SC;
font-weight: 700;
color: #242627;
font-size: 15px;" v-model="state.opinion" rows="1" autosize label="批阅意见" type="textarea"
placeholder="请输入内容" />
</van-form>
</van-col>
<van-col span="4">
<van-button type="primary" @click="onSubmit" style="height: 0.8rem; border-radius: 8px;">确定</van-button>
</van-col>
</van-row>
<div style="margin: 0.1rem;font-weight: 700;">
<span style="margin-left: 10px; font-size: 18px;font-family: PingFang SC;background-color: #faf9f9;">公文信息</span>
<table style="border: 1px solid #e5ecf4;">
<tr style="border: 1px solid #e5ecf4;">
<td class="td-width"
style=" font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #faf9f9;">发文字号</td>
<td style=" font-size: 15px;border: 1px solid #e5ecf4; " :colspan="3">{{ list && list.issuedNum ?
list.issuedNum : '' }}</td>
</tr>
<tr style="border: 1px solid #e5ecf4;">
<td class="td-width"
style=" font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #faf9f9;">发文标题</td>
<td style=" font-size: 15px; border: 1px solid #e5ecf4;" :colspan="3">{{ list && list.issuedName ?
list.issuedName : '' }}</td>
</tr>
<tr style="border: 1px solid #e5ecf4;">
<td class="td-width"
style=" font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #f9f9f9;background-color: #faf9f9;">
收文时间
</td>
<td style=" font-size: 15px;border: 1px solid #e5ecf4; "> {{ list && list.receiveDate ?
list.receiveDate : '' }}</td>
<td class="td-width"
style=" font-size: 15px;border: 1px solid #e5ecf4;background-color: #f9f9f9;background-color: #faf9f9; ">
办理期限</td>
<td style=" font-size: 15px;border: 1px solid #e5ecf4; ">{{ list && list.deadline ?
list.deadline : '' }}</td>
</tr>
<tr style="border: 1px solid #e5ecf4;">
<td class="td-width"
style=" font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #faf9f9;">紧急程度</td>
<td style=" font-size: 15px;border: 1px solid #e5ecf4;" :colspan="3">{{ list && list.urgency ?
list.urgency : '' }}</td>
</tr>
<tr style="border: 1px solid #e5ecf4;">
<td class="td-spe" style=" font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #faf9f9;">
简介</td>
<td style=" font-size: 15px;border: 1px solid #e5ecf4;" :colspan="3">{{ list && list.remarks ?
list.remarks : '' }}</td>
</tr>
<tr style="border: 1px solid #e5ecf4;">
<td class="td-spe" style="font-size: 15px;border: 1px solid #e5ecf4;width: 25%;background-color: #faf9f9;">
文件
</td>
<td style="font-size: 15px;border: 1px solid #e5ecf4;" :colspan="3">
{{ list && list.fileList ? list.fileList.map(item => item.fjmc).join(', ') : '' }}
</td>
</tr>
</table>
</div>
<!-- 流转信息 -->
<div style="
text-align: left;
margin: 0.2rem;
height: 20px;
font-family: PingFang SC;
font-weight: 700;
color: #242627;
font-size: 18px;
">
<span style="margin-left: 10px; height: 20px">流转信息</span>
</div>
<!-- 表格信息 -->
<div style="
margin-left: 0.2rem;
text-align: center;
min-width: 315px;
height: 68px;
background: #f5f7f7;
border: 1px solid;
border-color: #eeeeee;
display: flex;
align-items: center;
justify-content: space-around;
">
<div style="
height: 67px;
line-height: 67px;
min-width: 60px;
font-family: PingFang SC;
font-weight: 700;
color: #000000;
font-size: 15px;
border-right: 1px solid;
border-color: #eeeeee;
">
接收人
</div>
<div style="
height: 67px;
line-height: 67px;
min-width: 77px;
font-family: PingFang SC;
font-weight: 700;
color: #000000;
font-size: 15px;
border-right: 1px solid;
border-color: #eeeeee;
">
接收时间
</div>
<div style="
height: 67px;
line-height: 67px;
min-width: 137px;
font-family: PingFang SC;
font-weight: 700;
color: #000000;
font-size: 15px;
">
办理时间
</div>
<div style="
height: 67px;
line-height: 67px;
min-width: 137px;
font-family: PingFang SC;
font-weight: 700;
color: #000000;
font-size: 15px;
">
意见
</div>
</div>
<div v-for="item in review" :key="item" style="
display: flex;
/* height: 70px;
line-height: 70px; */
align-items: center;
justify-content: space-around;
/* min-width: 315px; */
border: 1px solid;
border-color: #eeeeee;
">
<div style="
/* height: 67px;
line-height: 67px;
min-width: 101px; */
font-family: PingFang SC;
text-align: center;
color: #000000;
font-size: 14px;
border-right: 1px solid;
border-color: #eeeeee;
">
{{ item.userName }}
</div>
<div style="
min-width: 77px;
font-family: PingFang SC;
color: #000000;
font-size: 14px;
text-align: center;
border-right: 1px solid;
border-color: #eeeeee;
display: flex;
align-items: center;
flex-direction: column;
">
<div style="">{{ item.receiveTime }}</div>
</div>
<div style="
height: 67px;
line-height: 67px;
min-width: 137px;
font-family: PingFang SC;
text-align: center;
color: #000000;
font-size: 14px;
">
{{ item.finishTime }}
</div>
<div style="
height: 67px;
line-height: 67px;
min-width: 137px;
font-family: PingFang SC;
color: #000000;
text-align: center;
font-size: 14px;
">
{{ item.opinion }}
</div>
</div>
</template>
<script setup>
import { ref, toRefs, computed, reactive, onMounted } from "vue";
import {
mytaskList,// 查询我的任务
lookList,// 详情页
offiCialflow,// 批阅人操作
offiCialflowfq,// 发起人操作
offiCialflowcy,// 传阅人操作
getSchoolLeader,//批阅人下拉框
getTeacherList//传阅人下拉框
} from "@/service/home";
import { useRouter, useRoute } from "vue-router";
import { createApp } from 'vue';
import { Field, CellGroup } from 'vant';
import { useStore } from "vuex";
import { Toast } from "vant";
const router = useRouter();
const route = useRoute();
const xzdetail = ref();
const app = createApp();
const list = ref();
const review = ref();
const store = useStore();
// 提交表单
const postForm = ref(null);
const detail = JSON.parse(decodeURIComponent(route.query.detail)); // 接收参数
console.log(detail, 'detail');
const state = ref({
opinion: "", //意见
receiveUser: "", //用户id
});
app.use(Field);
app.use(CellGroup);
const loadData = async () => {
let result = await lookList(detail.id, {
});
list.value = result.offical;
console.log(list, 'list');
review.value = result.review;
console.log(review, 'review');
};
// const onSubmit = () => {
// let data = {};
// data.userId = store.state.userInfo.teacherId;
// data.opinion = state.opinion.value;
// console.log("state.opinion:", state.opinion);
// console.log("store.state.userInfo.teacherId:", store.state.userInfo.teacherId);
// postForm.validate().then((valid) => {
// loading.value = true;
// offiCialflow(data).then((response) => {
// loading.value = false;
// Toast.success("提交成功");
// goLeave();
// }).catch((error) => {
// loading.value = false;
// Toast.fail("提交失败");
// });
// }).catch((message) => { });
// };
const onSubmit = async (item) => {
console.log(item);
let result = await offiCialflow({
id: detail.id,
opinion: state.value.opinion,
receiveUser: store.state.userInfo.teacherId,
});
if (result.code == 200) {
Toast("提交成功");
goback();
onRefresh();
} else {
Toast("提交失败!");
}
};
const onRefresh = () => {
// 清空列表数据
finished.value = false;
// 重新加载数据
// 将 loading 设置为 true,表示处于加载状态
loading.value = true;
onLoad();
};
console.log(loadData, 'loadData');
const goback = () => {
router.back();
};
onMounted(async () => {
loadData();
});
</script>
<style lang="less" scoped>
table {
border-collapse: collapse;
border: 1px solid gray;
width: 100%;
font-size: 0.28rem;
tr {
width: 100%;
.td-width {
text-align: center;
padding: 0.2225rem;
}
.td-spe {
text-align: center;
padding: 0.3525rem;
}
}
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment