Procházet zdrojové kódy

禅道bug处理

master
suyanyan před 5 měsíci
rodič
revize
cd3987da6b
6 změnil soubory, kde provedl 80 přidání a 23 odebrání
  1. +1
    -0
      SafeCampus.WEB/src/api/interface/sys/usermanage/personnel.ts
  2. +3
    -2
      SafeCampus.WEB/src/components/Form/SSelect/index.vue
  3. +1
    -0
      SafeCampus.WEB/src/components/Form/SSelect/interface.ts
  4. +27
    -4
      SafeCampus.WEB/src/views/monitor/live/components/userForm.vue
  5. +20
    -13
      SafeCampus.WEB/src/views/userManage/classManage/index.vue
  6. +28
    -4
      SafeCampus.WEB/src/views/violation/portrait/detail.vue

+ 1
- 0
SafeCampus.WEB/src/api/interface/sys/usermanage/personnel.ts Zobrazit soubor

@@ -35,6 +35,7 @@ export namespace SysUserPersonnel {
userName?: string | number | undefined;
majorId?: any;
majorName?: any;
teacherId?: any;
}
/** 人脸信息 */
export interface SysUserAvatar {


+ 3
- 2
SafeCampus.WEB/src/components/Form/SSelect/index.vue Zobrazit soubor

@@ -4,7 +4,7 @@
* @Date: 2023-12-15 15:38:32
!-->
<template>
<el-select :placeholder="placeholder" :filterable="filterable" class="w-full" v-bind="$attrs" clearable>
<el-select :placeholder="placeholder" :filterable="filterable" class="w-full" v-bind="$attrs" :clearable="clearable">
<el-option v-for="(item, index) in options" :key="index" :label="item[props.label]" :value="item[props.value]" />
</el-select>
</template>
@@ -21,7 +21,8 @@ const props = withDefaults(defineProps<SSelectProps>(), {
value: "value",
label: "label",
button: false,
filterable: false //是否可搜索
filterable: false, //是否可搜索
clearable: true //是否可清空
});

const placeholder = computed(() => {


+ 1
- 0
SafeCampus.WEB/src/components/Form/SSelect/interface.ts Zobrazit soubor

@@ -22,4 +22,5 @@ export interface SSelectProps {
/** 选项值 */
value?: string;
filterable?: boolean;
clearable?: boolean;
}

+ 27
- 4
SafeCampus.WEB/src/views/monitor/live/components/userForm.vue Zobrazit soubor

@@ -15,7 +15,7 @@
label-width="auto"
label-suffix=" :"
>
<s-form-item label="指定推送人" prop="userId">
<s-form-item label="指定人" prop="userId">
<el-button link type="primary" @click="showSelector">选择</el-button>
<el-tag v-if="liveUserProps.record.userId" class="ml-3px" type="warning" closable @close="removeDirector">{{
liveUserProps.record.userInfo?.name
@@ -32,7 +32,7 @@
</template>

<script setup lang="ts">
import { SysOrg, SysUser, sysOrgApi, sysPositionApi, sysRoleApi, sysUserApi, monitorLIVEApi } from "@/api";
import { SysOrg, SysUser, sysOrgApi, userManageTeacherApi, sysPositionApi, sysRoleApi, sysUserApi, monitorLIVEApi } from "@/api";
import { FormOptEnum, SysDictEnum } from "@/enums";
import { required } from "@/utils/formRules";
import { FormInstance } from "element-plus";
@@ -51,7 +51,7 @@ const liveUserProps = reactive<FormProps.Base<any>>({

// 表单验证规则
const rules = reactive({
userId: [required("请选择指定推送人")]
userId: [required("请选择指定人")]
});

/**
@@ -98,7 +98,7 @@ async function handleSubmit() {
.finally(() => {
onClose();
});
} else {
} else if (liveUserProps.opt == "视频推送人") {
params.userId = liveUserProps.record.userId;
params.ids.push(liveUserProps.record.id);
//提交表单
@@ -111,6 +111,29 @@ async function handleSubmit() {
onClose();
});
// delete params.
} else if (liveUserProps.opt == "绑定班主任") {
await userManageTeacherApi
.add(liveUserProps.record)
.then(() => {
liveUserProps.successful!(); //调用父组件的successful方法
})
.finally(() => {
onClose();
});
} else if (liveUserProps.opt == "修改班主任") {
let params = {
id: liveUserProps.record.teacherId,
userId: liveUserProps.record.userId,
personSetId: liveUserProps.record.personSetId
};
await userManageTeacherApi
.update(params)
.then(() => {
liveUserProps.successful!(); //调用父组件的successful方法
})
.finally(() => {
onClose();
});
}
// console.log(params);
// return;


+ 20
- 13
SafeCampus.WEB/src/views/userManage/classManage/index.vue Zobrazit soubor

@@ -35,13 +35,13 @@
<el-link type="primary" :underline="false" :icon="ArrowDown"> 更多 </el-link>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item v-if="!scope.row.userId" :command="commander(scope.row, cmdEnumTree.AddTeacher)">
<el-dropdown-item v-if="!scope.row.pushUserId" :command="commander(scope.row, cmdEnumTree.AddTeacher)">
{{ cmdEnumTree.AddTeacher }}
</el-dropdown-item>
<el-dropdown-item v-if="scope.row.userId" :command="commander(scope.row, cmdEnumTree.UpdateTeacher)">
<el-dropdown-item v-if="scope.row.pushUserId" :command="commander(scope.row, cmdEnumTree.UpdateTeacher)">
{{ cmdEnumTree.UpdateTeacher }}
</el-dropdown-item>
<el-dropdown-item v-if="scope.row.userId" :command="commander(scope.row, cmdEnumTree.DeleteTeacher)">
<el-dropdown-item v-if="scope.row.pushUserId" :command="commander(scope.row, cmdEnumTree.DeleteTeacher)">
{{ cmdEnumTree.DeleteTeacher }}
</el-dropdown-item>
</el-dropdown-menu>
@@ -54,8 +54,8 @@

<!-- 班级新增/编辑表单 -->
<FormClass ref="formRefC" />
<!-- 班主任绑定/修改 -->
<FormTeacher ref="formRefT" />
<!-- 人员选择 -->
<userForm ref="userFormRef" />
</div>
</template>
<script setup lang="tsx" name="SysUserKeyPersonnel">
@@ -63,9 +63,9 @@ import { userManageClassManageApi,userManageTeacherApi,SysUserPersonnel,userMana
import { useHandleData } from "@/hooks/useHandleData";
import { FormOptEnum } from "@/enums";
import FormClass from "./components/formClass/index.vue";
import FormTeacher from "./components/formTeacher/index.vue";
import { ArrowDown } from "@element-plus/icons-vue";
import { ColumnProps, ProTableInstance } from "@/components/ProTable/interface";
import userForm from "@/views/monitor/live/components/userForm.vue";
// 获取 ProTable 元素,调用其获取刷新数据方法(还能获取到当前查询参数,方便导出携带参数)
const proTable = ref<ProTableInstance>();
const majorOptions = ref<any>([])
@@ -127,9 +127,6 @@ const columns: ColumnProps<SysUserPersonnel.ClassPage>[] = [

// 班级表单引用
const formRefC = ref<InstanceType<typeof FormClass> | null>(null);
// 班级表单引用
const formRefT = ref<InstanceType<typeof FormTeacher> | null>(null);


/**
* 打开班级表单
@@ -184,20 +181,30 @@ function commander(row: SysUserPersonnel.ClassPage, commander: cmdEnumTree): Com
async function handleCommandTree(commander: CommandTree) {
switch (commander.commander) {
case cmdEnumTree.AddTeacher:
formRefT.value?.onOpen({ opt: commander.commander, record: commander.row, successful: RefreshTable });
pushPerson(cmdEnumTree.AddTeacher, commander.row)
break
case cmdEnumTree.UpdateTeacher:
formRefT.value?.onOpen({ opt: commander.commander, record: commander.row, successful: RefreshTable });
pushPerson(cmdEnumTree.UpdateTeacher, commander.row)
break;
case cmdEnumTree.DeleteTeacher:
// 二次确认 => 请求api => 刷新表格
await useHandleData(userManageTeacherApi.delete, {id: commander.row.userId}, '解绑教师');
await useHandleData(userManageTeacherApi.delete, {id: commander.row.teacherId}, '解绑教师');
RefreshTable(); //刷新表格
break;
}
}

// 人员选择
// 表单引用
const userFormRef = ref<InstanceType<typeof userForm> | null>(null);
/**
* 打开表单
* @param opt 操作类型
* @param record 记录
*/
function pushPerson(opt: cmdEnumTree, record: {}) {
userFormRef.value?.onOpen({ opt: opt, record: record, successful: RefreshTable });
}
onMounted(() => {
// 获取专业下拉数据
getMajorList();


+ 28
- 4
SafeCampus.WEB/src/views/violation/portrait/detail.vue Zobrazit soubor

@@ -107,7 +107,13 @@
<div class="situation attendanceStatus">
<div class="top">
<span class="title">出勤情况分析</span>
<s-select v-model="state.attendanceTime" :options="state.options" style="width: 100px" @change="getStuAttendance"></s-select>
<s-select
v-model="state.attendanceTime"
:clearable="false"
:options="state.options"
style="width: 100px"
@change="getStuAttendance"
></s-select>
</div>
<div class="contentBox">
<div class="tip">
@@ -123,7 +129,13 @@
<div class="situation schoolStatus">
<div class="top">
<span class="title">出校访学情况</span>
<s-select v-model="state.leavesSchTime" :options="state.options" style="width: 100px" @change="getStuLeave"></s-select>
<s-select
v-model="state.leavesSchTime"
:clearable="false"
:options="state.options"
style="width: 100px"
@change="getStuLeave"
></s-select>
</div>
<div class="contentBox">
<div class="tip">
@@ -168,7 +180,13 @@
<div class="situation attendanceStatus">
<div class="top">
<span class="title">图书馆使用情况</span>
<s-select v-model="state.libraryTime" :options="state.options" style="width: 100px" @change="getStuLibrary"></s-select>
<s-select
v-model="state.libraryTime"
:clearable="false"
:options="state.options"
style="width: 100px"
@change="getStuLibrary"
></s-select>
</div>
<div class="contentBox">
<div class="tip">
@@ -188,7 +206,13 @@
<div class="situation attendanceStatus">
<div class="top">
<span class="title">一卡通消费情况</span>
<s-select v-model="state.oneCardTime" :options="state.options" style="width: 100px" @change="getOneCardSolution"></s-select>
<s-select
v-model="state.oneCardTime"
:clearable="false"
:options="state.options"
style="width: 100px"
@change="getOneCardSolution"
></s-select>
</div>
<div class="contentBox">
<div class="tip">


Načítá se…
Zrušit
Uložit