提交修复代码

This commit is contained in:
jiangzhe 2024-06-17 10:56:00 +08:00
parent edd4707e09
commit 53a0b32b5e
15 changed files with 133 additions and 70 deletions

View File

@ -72,7 +72,7 @@ export interface SysScaleQuestionForm extends BaseEntity {
*/
factorName?: string;
scaleAnswerList: ScaleAnswer[],
scaleAnswerList: any[],
}
export interface ScaleAnswer {

View File

@ -105,7 +105,7 @@ export const dynamicRoutes: RouteOption[] = [
permissions: ['system:user:edit'],
children: [
{
path: 'role/:userId(\\d+)',
path: 'role/:type/:userId(\\d+)',
component: () => import('@/views/system/user/authRole.vue'),
name: 'AuthRole',
meta: { title: '分配角色', activeMenu: '/system/user', icon: '' }

View File

@ -136,7 +136,7 @@ async function getScalePublishList() {
}
//
const completePieOption = ref(initPieOption('完成情况', []))
const completePieOption = ref(initPieOption('', []))
const completeBarOption = ref(initBarOption([], []))
const completeTable = ref([])
async function getCompleteData() {
@ -190,7 +190,7 @@ async function getCompleteData() {
}
//
const warnPieOption = ref(initPieOption('风险情况', []))
const warnPieOption = ref(initPieOption('', []))
const warBarOption = ref(initBarOption([], []))
const warnTable = ref([])
async function getwarnData() {
@ -294,7 +294,7 @@ function initPieOption(name = '', data = []) {
text: name,
subtext: '',
x: 'center',
y: '10',
y: '40',
textStyle: {
color: '#95989D',
fontSize: 20,
@ -310,8 +310,7 @@ function initPieOption(name = '', data = []) {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left'
orient: 'horizontal',
},
series: [
{

View File

@ -1,4 +1,5 @@
<template>
<div class="tab-container">
<el-tabs v-model="activeName" style="padding-left: 20px; padding-right: 20px;">
<el-tab-pane label="活动进度" name="schedule">
<schedule :batchNo="batchNo" :sessionName="sessionName"></schedule>
@ -7,20 +8,44 @@
<statistics :batchNo="batchNo"></statistics>
</el-tab-pane>
</el-tabs>
<div class="btn-back">
<el-button type="primary" @click="handleBack">返回</el-button>
</div>
</div>
</template>
<script setup>
<script setup lang="ts">
import { ref } from 'vue'
import { useRoute } from 'vue-router'
import statistics from '@/views/activity/component/statistics/index.vue'
import schedule from '@/views/activity/component/schedule/index.vue'
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const route = useRoute()
const batchNo = route.params.batchNo
const sessionName = route.params.sessionName
const activeName = ref('schedule')
const handleBack = () => {
console.log("handleBack");
const obj = { path: "/scale/SysScalePublish" };
proxy?.$tab.closeOpenPage(obj);
}
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
.tab-container {
position: relative;
.btn-back {
position: absolute;
top: 5px;
right: 20px;
}
}
</style>

View File

@ -69,7 +69,8 @@
v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改预警记录对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="900px" append-to-body>
<el-dialog :title="dialog.title" v-model="dialog.visible" width="900px" append-to-body
:close-on-click-modal="false">
<el-tabs v-model="activeName" class="demo-tabs">
<!-- <el-tab-pane label="基本信息" name="first">
<el-form ref="informationFormRef" :model="form" :rules="rules" label-width="80px">
@ -162,7 +163,7 @@
<el-table-column prop="address" label="Address" />
</el-table>
</el-tab-pane> -->
<el-tab-pane label="动态普查记录" name="warn">
<el-tab-pane label="动态干预记录" name="warn">
<el-table :data="interveneList">
<el-table-column prop="userName" label="测评人" />
<el-table-column prop="sessionName" label="场次名称" />
@ -177,7 +178,7 @@
<el-table-column prop="note" label="补充说明" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="查看测评结果" placement="top">
<el-tooltip content="查看详情" placement="top">
<el-button link type="primary" icon="View" @click="handleInterveneResult(scope.row)">查看详情</el-button>
</el-tooltip>
</template>
@ -189,7 +190,7 @@
</el-tabs>
</el-dialog>
<el-dialog title="记录详情" v-model="dialogResult" width="900px" append-to-body>
<el-dialog title="记录详情" v-model="dialogResult" width="900px" append-to-body :close-on-click-modal="false">
<el-card v-for="des in currentResult">
<el-descriptions title="测评详情" :column="1">
<el-descriptions-item label="总分:">{{ des.score }}</el-descriptions-item>
@ -200,7 +201,7 @@
</el-card>
</el-dialog>
<el-dialog title="预警干预详情" v-model="interveneResult" width="800px" append-to-body>
<el-dialog title="预警干预详情" v-model="interveneResult" width="800px" append-to-body :close-on-click-modal="false">
<el-descriptions :column="2" direction="vertical" border>
<el-descriptions-item label="测评人">{{ currentInterveneResult.userName }}</el-descriptions-item>
<el-descriptions-item label="风险等级">{{ handleSituation(currentInterveneResult.situation)
@ -210,10 +211,16 @@
<el-descriptions-item label="补充说明">{{ currentInterveneResult.note }}</el-descriptions-item>
<el-descriptions-item label="诊断说明">{{ currentInterveneResult.diagnose }}</el-descriptions-item>
<el-descriptions-item label="诊断附件" v-if="currentInterveneResult.diagnoseAnnex">
<el-button type="primary" text @click="downloadOss(currentInterveneResult.diagnoseAnnex)">下载附件</el-button>
<image-preview v-if="checkImg(currentInterveneResult.diagnoseAnnexUrl)"
:src="currentInterveneResult.diagnoseAnnexUrl" :width="50" :height="50" />
<el-button v-else type="primary" text
@click="downloadOss(currentInterveneResult.diagnoseAnnex)">下载附件</el-button>
</el-descriptions-item>
<el-descriptions-item label="通知附件" v-if="currentInterveneResult.noticeAnnex">
<el-button type="primary" text @click="downloadOss(currentInterveneResult.noticeAnnex)">下载附件</el-button>
<image-preview v-if="checkImg(currentInterveneResult.noticeAnnexUrl)"
:src="currentInterveneResult.noticeAnnexUrl" :width="50" :height="50" />
<el-button v-else type="primary" text
@click="downloadOss(currentInterveneResult.noticeAnnex)">下载附件</el-button>
</el-descriptions-item>
</el-descriptions>
</el-dialog>
@ -261,6 +268,11 @@ function handleSituation(situation: any) {
}
}
const checkImg = (annex: any) => {
return /\.(jpg|jpeg|png|gif)$/.test(annex)
}
const initFormData: any = {
}

View File

@ -84,7 +84,7 @@
v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<el-dialog title="处理详情" v-model="dialog.visible" width="700px" append-to-body>
<el-dialog title="处理详情" v-model="dialog.visible" width="700px" append-to-body :close-on-click-modal="false">
<el-form ref="warnRecordFormRef" :model="form" :rules="rules" label-width="110px">
<el-row>
<el-col :span="12">
@ -176,7 +176,7 @@
</template>
</el-dialog>
<el-dialog title="干预详情" v-model="listDialog" width="600px" append-to-body>
<el-dialog title="干预详情" v-model="listDialog" width="600px" append-to-body :close-on-click-modal="false">
<el-timeline style="max-width: 600px">
<el-timeline-item :timestamp="item.time" placement="top" v-for="item in timeList" :key="item.id">
{{ item.name }}
@ -187,7 +187,8 @@
</el-timeline>
</el-dialog>
<el-dialog :title="recordDialog.title" v-model="recordDialog.visible" width="800px" append-to-body>
<el-dialog :title="recordDialog.title" v-model="recordDialog.visible" width="800px" append-to-body
:close-on-click-modal="false">
<el-tabs v-model="activeName" class="demo-tabs">
<el-tab-pane label="静态普查记录" name="static">
<el-table :data="staticList" style="width: 100%">
@ -253,8 +254,12 @@
</el-card> -->
</el-dialog>
<el-dialog :title="publishDialog.title" v-model="publishDialog.visible" :width="700" append-to-body>
<el-dialog :title="publishDialog.title" v-model="publishDialog.visible" :width="700" append-to-body
:close-on-click-modal="false">
<el-form ref="publishFormRef" :model="publishForm" :rules="publishRules" label-width="120px">
<el-form-item label="测评人" prop="nickName">
<el-input v-model="publishForm.nickName" disabled />
</el-form-item>
<el-form-item label="场次名称" prop="sessionName">
<el-input v-model="publishForm.sessionName" placeholder="请输入量表名称" />
</el-form-item>
@ -520,6 +525,7 @@ const handlePublish = async (row?: any) => {
publishDialog.visible = true
publishForm.value.userIds = [row.userId]
publishForm.value.publishType = 0
publishForm.value.nickName = row.nickName
getScaleOptions()
}

View File

@ -61,7 +61,8 @@
</el-card>
<!-- 添加或修改预警记录对话框 -->
<el-dialog title="记录详情" v-model="dialogDesc" width="900px" append-to-body @close="handleResultClose">
<el-dialog title="记录详情" v-model="dialogDesc" width="900px" append-to-body :close-on-click-modal="false"
@close="handleResultClose">
<el-tabs v-model="activeTab" @tab-change="handleTabChange">
<el-tab-pane :label="item.scaleName" :name="item.recordId" v-for="item in resultList" :key="item.recordId">
<el-card v-for="des in currentResult" style="margin-bottom: 10px;">
@ -76,7 +77,7 @@
</el-tabs>
</el-dialog>
<el-dialog title="补充说明" v-model="dialog.visible" width="400px" append-to-body>
<el-dialog title="补充说明" v-model="dialog.visible" width="400px" append-to-body :close-on-click-modal="false">
<el-form ref="warnRecordFormRef" :model="form" :rules="rules">
<el-form-item label="" prop="note">
<el-input v-model="form.note" :rows="4" type="textarea" placeholder="请输入" />

View File

@ -1,23 +1,29 @@
<template>
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
:leave-active-class="proxy?.animate.searchAnimate.leave">
<div class="mb-[10px]" v-show="showSearch">
<el-card shadow="hover">
<el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
<el-form-item label="部门id" prop="deptId">
<el-input v-model="queryParams.deptId" placeholder="请输入部门id" clearable style="width: 240px" @keyup.enter="handleQuery" />
<el-input v-model="queryParams.deptId" placeholder="请输入部门id" clearable style="width: 240px"
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="用户id" prop="userId">
<el-input v-model="queryParams.userId" placeholder="请输入用户id" clearable style="width: 240px" @keyup.enter="handleQuery" />
<el-input v-model="queryParams.userId" placeholder="请输入用户id" clearable style="width: 240px"
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="排序号" prop="orderNum">
<el-input v-model="queryParams.orderNum" placeholder="请输入排序号" clearable style="width: 240px" @keyup.enter="handleQuery" />
<el-input v-model="queryParams.orderNum" placeholder="请输入排序号" clearable style="width: 240px"
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="key键" prop="testKey">
<el-input v-model="queryParams.testKey" placeholder="请输入key键" clearable style="width: 240px" @keyup.enter="handleQuery" />
<el-input v-model="queryParams.testKey" placeholder="请输入key键" clearable style="width: 240px"
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="值" prop="value">
<el-input v-model="queryParams.value" placeholder="请输入值" clearable style="width: 240px" @keyup.enter="handleQuery" />
<el-input v-model="queryParams.value" placeholder="请输入值" clearable style="width: 240px"
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@ -35,15 +41,16 @@
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['demo:demo:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['demo:demo:edit']">修改</el-button>
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
v-hasPermi="['demo:demo:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['demo:demo:remove']"
>删除</el-button
>
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
v-hasPermi="['demo:demo:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['demo:demo:export']">导出</el-button>
<el-button type="warning" plain icon="Download" @click="handleExport"
v-hasPermi="['demo:demo:export']">导出</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -60,19 +67,23 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['demo:demo:edit']"></el-button>
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['demo:demo:edit']"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['demo:demo:remove']"></el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['demo:demo:remove']"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改测试单对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body
:close-on-click-modal="false">
<el-form ref="demoFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="部门id" prop="deptId">
<el-input v-model="form.deptId" placeholder="请输入部门id" />

View File

@ -133,7 +133,8 @@
v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改心理测评量对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="800px" append-to-body>
<el-dialog :title="dialog.title" v-model="dialog.visible" width="800px" append-to-body
:close-on-click-modal="false">
<el-form ref="SysScaleFormRef" :model="form" :rules="rules" label-width="110px">
<el-row>
<el-col :span="12">
@ -188,7 +189,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="题量" prop="questionsNum">
<el-input-number v-model="form.questionsNum" :min="1" placeholder="请输入测评时间" class="w-100" />
<el-input-number v-model="form.questionsNum" :min="1" placeholder="请输入题量" class="w-100" />
</el-form-item>
</el-col>
</el-row>

View File

@ -64,7 +64,8 @@
</el-table>
</el-card>
<!-- 添加或修改测评因子对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="1300px" append-to-body>
<el-dialog :title="dialog.title" v-model="dialog.visible" width="1300px" append-to-body
:close-on-click-modal="false">
<el-form ref="SysScaleFactorFormRef" :model="form" :rules="rules" label-width="150px">
<el-card>
<template #header>

View File

@ -77,7 +77,7 @@
<el-tag v-else-if="scope.row.dimensionType === 2" type="primary">多项多维型</el-tag>
</template>
</el-table-column>
<el-table-column label="布次数" align="center" prop="publishNums" />
<el-table-column label="布次数" align="center" prop="publishNums" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="查看量表详情" placement="top">
@ -155,7 +155,7 @@
</template>
</el-dialog>
<el-dialog title="查看量表试卷详情" v-model="detailVisible" width="800px" append-to-body>
<el-dialog title="查看量表详情" v-model="detailVisible" width="800px" append-to-body>
<el-tabs v-model="activeName" type="card">
<el-tab-pane v-for="item in factorList" :label="item.factorName" :name="item.factorName" :key="item.factorId">
<p v-for="q in item.questionList" :key="q.questionId">

View File

@ -73,7 +73,8 @@
v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 添加或修改量问题内容对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="800px" append-to-body>
<el-dialog :title="dialog.title" v-model="dialog.visible" width="850px" append-to-body
:close-on-click-modal="false">
<el-form ref="SysScaleQuestionFormRef" :model="form" :rules="rules" label-width="120px">
<el-card>
<template #header>
@ -115,12 +116,17 @@
<el-table-column prop="answerOption" label="选项内容">
<template #default="scope">
<image-upload v-if="scope.row.type === 1" v-model="scope.row.answerOption" :limit="1" />
<el-input v-else v-model="scope.row.answerOption" placeholder="请输入选项内容" />
<el-input v-else v-model="scope.row.answerOption" placeholder="请输入" />
</template>
</el-table-column>
<el-table-column prop="score" label="分值">
<el-table-column prop="score" label="分值" width="160">
<template #default="scope">
<el-input-number v-model="scope.row.score" placeholder="请输入分值" />
<el-input-number v-model="scope.row.score" placeholder="请输入" />
</template>
</el-table-column>
<el-table-column prop="scoreType" label="得分类型" width="120">
<template #default="scope">
<el-input v-model="scope.row.scoreType" placeholder="选填" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@ -235,7 +241,6 @@ const data = reactive<PageData<SysScaleQuestionForm, SysScaleQuestionQuery>>({
const { queryParams, form, rules } = toRefs(data);
/** 查询量问题内容列表 */
const getList = async () => {
loading.value = true;
@ -295,7 +300,7 @@ const handleUpdate = async (row?: SysScaleQuestionVO) => {
}
function addQuestion() {
form.value.scaleAnswerList.push({ answerId: nanoid(), answerOption: '', score: 0, type: 0 })
form.value.scaleAnswerList.push({ answerId: nanoid(), answerOption: '', score: 0, type: 0, scoreType: '' })
}
function handleOptionDelete(row: any) {

View File

@ -460,7 +460,7 @@ const handleStatusChange = async (row: UserVO) => {
/** 跳转角色分配 */
const handleAuthRole = (row: UserVO) => {
const userId = row.userId;
router.push("/system/user-auth/role/" + userId);
router.push(`/system/user-auth/role/teacher/${userId}`);
}
/** 重置密码按钮操作 */

View File

@ -20,14 +20,8 @@
<div class="panel">
<h4 class="panel-title">角色信息</h4>
<div>
<el-table
v-loading="loading"
:row-key="getRowKey"
@row-click="clickRow"
ref="tableRef"
@selection-change="handleSelectionChange"
:data="roles.slice((pageNum - 1) * pageSize, pageNum * pageSize)"
>
<el-table v-loading="loading" :row-key="getRowKey" @row-click="clickRow" ref="tableRef"
@selection-change="handleSelectionChange" :data="roles.slice((pageNum - 1) * pageSize, pageNum * pageSize)">
<el-table-column label="序号" width="55" type="index" align="center">
<template #default="scope">
<span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
@ -60,6 +54,7 @@ import { getAuthRole, updateAuthRole } from "@/api/system/user";
import { UserForm } from "@/api/system/user/types";
const route = useRoute();
console.log('route', route)
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const loading = ref(true);
@ -91,8 +86,15 @@ const getRowKey = (row: RoleVO): string => {
};
/** 关闭按钮 */
const close = () => {
if (route.params.type == 'student') {
const obj = { path: "/system/user" };
proxy?.$tab.closeOpenPage(obj);
}
if (route.params.type == 'teacher') {
const obj = { path: "/system/teacher" };
proxy?.$tab.closeOpenPage(obj);
}
};
/** 提交按钮 */
const submitForm = async () => {

View File

@ -454,7 +454,7 @@ const handleStatusChange = async (row: UserVO) => {
/** 跳转角色分配 */
const handleAuthRole = (row: UserVO) => {
const userId = row.userId;
router.push("/system/user-auth/role/" + userId);
router.push(`/system/user-auth/role/student/${userId}`);
}
/** 重置密码按钮操作 */