|
@@ -3,51 +3,18 @@
|
|
|
<div class="search flex justify-between bg-white rounded-md">
|
|
|
<el-form :inline="true" class="demo-form-inline" size="default">
|
|
|
<el-form-item label="">
|
|
|
- <el-select
|
|
|
- v-model="form_query.sm_id"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- placeholder="全部学校"
|
|
|
- @change="initData"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(item, index) in tableSchoolData"
|
|
|
- :key="index"
|
|
|
- :label="item.sm_name"
|
|
|
- :value="item.id"
|
|
|
- />
|
|
|
+ <el-select v-model="form_query.sm_id" filterable clearable placeholder="全部学校" @change="initData">
|
|
|
+ <el-option v-for="(item, index) in tableSchoolData" :key="index" :label="item.sm_name" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="">
|
|
|
- <el-select
|
|
|
- placeholder="全部年级"
|
|
|
- v-model="form_query.user_grade_num"
|
|
|
- @change="initData"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(item, index) in tableGradeData"
|
|
|
- :key="index"
|
|
|
- :label="item.tjzn_njmc"
|
|
|
- :value="item.tjzn_id"
|
|
|
- />
|
|
|
+ <el-select placeholder="全部年级" v-model="form_query.user_grade_num" @change="initData" filterable clearable>
|
|
|
+ <el-option v-for="(item, index) in tableGradeData" :key="index" :label="item.tjzn_njmc" :value="item.tjzn_id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="">
|
|
|
- <el-select
|
|
|
- v-model="form_query.subject_id"
|
|
|
- placeholder="全部学科"
|
|
|
- @change="initData"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(item, index) in tableSubjectData"
|
|
|
- :key="index"
|
|
|
- :label="item.tjzx_xkmc"
|
|
|
- :value="item.tjzx_id"
|
|
|
- />
|
|
|
+ <el-select v-model="form_query.subject_id" placeholder="全部学科" @change="initData" filterable clearable>
|
|
|
+ <el-option v-for="(item, index) in tableSubjectData" :key="index" :label="item.tjzx_xkmc" :value="item.tjzx_id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -60,51 +27,22 @@
|
|
|
<div>
|
|
|
<el-button type="primary" @click="handleAdd">新增</el-button>
|
|
|
<el-button type="primary" @click="exportAll">导出</el-button>
|
|
|
- <import-button
|
|
|
- url="/user/main"
|
|
|
- :d="{ user_role_id: '75' }"
|
|
|
- @success="initData"
|
|
|
- >
|
|
|
+ <import-button url="/user/main" :d="{ user_role_id: '75' }" @success="initData">
|
|
|
<template #text>批量导入</template>
|
|
|
</import-button>
|
|
|
- <el-button
|
|
|
- type="danger"
|
|
|
- @click="handleMulDelete"
|
|
|
- :disabled="multipleSelection.length == 0"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
+ <el-button type="danger" @click="handleMulDelete" :disabled="multipleSelection.length == 0">删除</el-button>
|
|
|
</div>
|
|
|
<div class="flex content-center">
|
|
|
- <el-input
|
|
|
- v-model="form_query.keyword"
|
|
|
- class="w-40 mx-2"
|
|
|
- size="small"
|
|
|
- placeholder="请输搜索关键词"
|
|
|
- :suffix-icon="Search"
|
|
|
- clearable
|
|
|
- />
|
|
|
+ <el-input v-model="form_query.keyword" class="w-40 mx-2" size="small" placeholder="请输搜索关键词" :suffix-icon="Search" clearable />
|
|
|
<el-button type="primary" @click="initData">搜索</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
<el-table :data="tableData" @selection-change="handleSelectionChange">
|
|
|
<el-table-column type="selection" width="55" />
|
|
|
- <el-table-column
|
|
|
- prop="user_id"
|
|
|
- label="ID"
|
|
|
- width="100"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="user_name"
|
|
|
- label="账号"
|
|
|
- width="180"
|
|
|
- show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="user_realname"
|
|
|
- label="姓名"
|
|
|
- width="150"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column prop="sm_id" label="学校" >
|
|
|
+ <el-table-column prop="user_id" label="ID" width="100"></el-table-column>
|
|
|
+ <el-table-column prop="user_name" label="账号" width="180" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column prop="user_realname" label="姓名" width="150"></el-table-column>
|
|
|
+ <el-table-column prop="sm_id" label="学校">
|
|
|
<template #default="scope">
|
|
|
<div v-for="item in tableSchoolData" :key="item.id">
|
|
|
<span v-if="item.id == scope.row.sm_id">{{ item.sm_name }}</span>
|
|
@@ -115,88 +53,39 @@
|
|
|
<el-table-column prop="subject_id" label="学科"> </el-table-column>
|
|
|
<el-table-column label="操作" width="245">
|
|
|
<template #default="scope">
|
|
|
- <el-button type="text" @click="handleDetail(scope.row.user_id)"
|
|
|
- >详情 |</el-button
|
|
|
- >
|
|
|
- <el-button type="text" @click="handleEdit(scope.row)"
|
|
|
- >编辑 |</el-button
|
|
|
- >
|
|
|
- <el-button type="text" @click="handleDelete(scope.row.user_id)"
|
|
|
- >删除
|
|
|
+ <el-button type="text" @click="handleDetail(scope.row.user_id)">详情 |</el-button>
|
|
|
+ <el-button type="text" @click="handleEdit(scope.row)">编辑 |</el-button>
|
|
|
+ <el-button type="text" @click="handleDelete(scope.row.user_id)">删除
|
|
|
</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<div class="flex justify-end my-10">
|
|
|
- <el-pagination
|
|
|
- v-model:current-page="form_query.page"
|
|
|
- v-model:page-size="form_query.limit"
|
|
|
- layout="total,sizes, prev, pager, next, jumper"
|
|
|
- :total="total"
|
|
|
- :background="true"
|
|
|
- @current-change="initData"
|
|
|
- :hide-on-single-page="false"
|
|
|
- />
|
|
|
+ <el-pagination v-model:current-page="form_query.page" v-model:page-size="form_query.limit" layout="total,sizes, prev, pager, next, jumper" :total="total" :background="true" @current-change="initData" :hide-on-single-page="false" />
|
|
|
</div>
|
|
|
|
|
|
<el-dialog v-model="dialogVisible" :title="title" width="780px">
|
|
|
- <el-form
|
|
|
- ref="ruleFormRef"
|
|
|
- :model="ruleForm"
|
|
|
- :rules="rules"
|
|
|
- label-width="120px"
|
|
|
- class="demo-ruleForm"
|
|
|
- :size="formSize"
|
|
|
- status-icon
|
|
|
- >
|
|
|
+ <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm" :size="formSize" status-icon>
|
|
|
<h3 class="text-hex-00A3FF">账号信息</h3>
|
|
|
<div class="flex">
|
|
|
<el-form-item label="账号:" prop="user_name">
|
|
|
<el-input class="rank" v-model="ruleForm.user_name" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="密码:" prop="user_password">
|
|
|
- <el-input
|
|
|
- class="rank"
|
|
|
- :disabled="isEdit"
|
|
|
- v-model="ruleForm.user_password"
|
|
|
- />
|
|
|
+ <el-input class="rank" :disabled="isEdit" v-model="ruleForm.user_password" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="flex">
|
|
|
<el-form-item label="用户角色:" prop="user_role_id_sub">
|
|
|
- <el-select
|
|
|
- multiple
|
|
|
- collapse-tags
|
|
|
- v-model="userRoleData"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- @change="handleRoleChange"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(item, index) in roleList"
|
|
|
- :key="index"
|
|
|
- :label="item.tur_role_name"
|
|
|
- :value="item.tur_id"
|
|
|
- />
|
|
|
+ <el-select multiple collapse-tags v-model="userRoleData" filterable clearable @change="handleRoleChange">
|
|
|
+ <el-option v-for="(item, index) in roleList" :key="index" :label="item.tur_role_name" :value="item.tur_id" />
|
|
|
</el-select>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- class="ml-100px"
|
|
|
- plain
|
|
|
- @click="setRoleDialogVisible = true"
|
|
|
- >自定义角色</el-button
|
|
|
- >
|
|
|
+ <el-button type="primary" class="ml-100px" plain @click="setRoleDialogVisible = true">自定义角色</el-button>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<h3 class="text-hex-00A3FF">基本信息</h3>
|
|
|
<el-form-item label="头像:">
|
|
|
- <file-upload-progress
|
|
|
- v-if="dialogVisible"
|
|
|
- v-model:part="ruleForm.user_avatar"
|
|
|
- :limit="1"
|
|
|
- accept=".jpg,.jpeg,.webp,.png"
|
|
|
- :size-limit="500 * 1024"
|
|
|
- >
|
|
|
+ <file-upload-progress v-if="dialogVisible" v-model:part="ruleForm.user_avatar" :limit="1" accept=".jpg,.jpeg,.webp,.png" :size-limit="500 * 1024">
|
|
|
<el-button type="primary"> 点击上传 </el-button>
|
|
|
<template #tip>
|
|
|
<div class="mt-2 text-xs">
|
|
@@ -222,18 +111,8 @@
|
|
|
|
|
|
<div class="flex">
|
|
|
<el-form-item label="学校:" prop="sm_id">
|
|
|
- <el-select
|
|
|
- v-model="ruleForm.sm_id"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- placeholder="全部学校"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(item, index) in tableSchoolData"
|
|
|
- :key="index"
|
|
|
- :label="item.sm_name"
|
|
|
- :value="item.id"
|
|
|
- />
|
|
|
+ <el-select v-model="ruleForm.sm_id" filterable clearable placeholder="全部学校">
|
|
|
+ <el-option v-for="(item, index) in tableSchoolData" :key="index" :label="item.sm_name" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
@@ -248,46 +127,25 @@
|
|
|
</div>
|
|
|
<div class="w-565px">
|
|
|
<div class="h-40px w-full justify-end flex items-center">
|
|
|
- <el-icon
|
|
|
- @click="deleteOffice(i)"
|
|
|
- color="#409eff"
|
|
|
- size="20px"
|
|
|
- >
|
|
|
+ <el-icon @click="deleteOffice(i)" color="#409eff" size="20px">
|
|
|
<Delete />
|
|
|
</el-icon>
|
|
|
</div>
|
|
|
<div class="w-full office">
|
|
|
<span>年级:</span>
|
|
|
- <remote-select
|
|
|
- v-model:model-name="p.grade_name"
|
|
|
- v-model="p.grade_id"
|
|
|
- to="jcxxgl_zyflgl_nj"
|
|
|
- :fields="['tjzn_id', 'tjzn_njmc']"
|
|
|
- ></remote-select>
|
|
|
+ <remote-select v-model:model-name="p.grade_name" v-model="p.grade_id" to="jcxxgl_zyflgl_nj" :fields="['tjzn_id', 'tjzn_njmc']"></remote-select>
|
|
|
</div>
|
|
|
<div class="flex office">
|
|
|
<span class="mr-10px text-right">学科:</span>
|
|
|
- <remote-select
|
|
|
- v-model:model-name="p.xueke_name"
|
|
|
- v-model="p.xueke_id"
|
|
|
- to="jcxxgl_zyflgl_xk"
|
|
|
- :fields="['tjzx_id', 'tjzx_xkmc']"
|
|
|
- ></remote-select>
|
|
|
+ <remote-select v-model:model-name="p.xueke_name" v-model="p.xueke_id" to="jcxxgl_zyflgl_xk" :fields="['tjzx_id', 'tjzx_xkmc']"></remote-select>
|
|
|
<span class="mr-10px ml-60px text-right">任教班级:</span>
|
|
|
- <remote-select
|
|
|
- v-model="p.class_id"
|
|
|
- to="jcxxgl_zyflgl_bj"
|
|
|
- v-model:model-name="p.class_name"
|
|
|
- :fields="['tjzb_id', 'tjzb_bjmc']"
|
|
|
- ></remote-select>
|
|
|
+ <remote-select v-model="p.class_id" to="jcxxgl_zyflgl_bj" v-model:model-name="p.class_name" :fields="['tjzb_id', 'tjzb_bjmc']"></remote-select>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-button class="ml-100px" @click="addOffice" type="primary" plain
|
|
|
- >添加</el-button
|
|
|
- >
|
|
|
+ <el-button class="ml-100px" @click="addOffice" type="primary" plain>添加</el-button>
|
|
|
</div>
|
|
|
<el-form-item label="爱好特长:" class="w-640px" prop="about">
|
|
|
<el-input type="textarea" v-model="ruleForm.about" />
|
|
@@ -310,26 +168,10 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog
|
|
|
- v-model="setRoleDialogVisible"
|
|
|
- class="_"
|
|
|
- width="565"
|
|
|
- destroy-on-close
|
|
|
- title="自定义角色"
|
|
|
- @close="handleClose"
|
|
|
- >
|
|
|
- <el-form
|
|
|
- class="table"
|
|
|
- ref="ruleFormRef1"
|
|
|
- :model="roleData"
|
|
|
- :rules="roleRules"
|
|
|
- >
|
|
|
+ <el-dialog v-model="setRoleDialogVisible" class="_" width="565" destroy-on-close title="自定义角色" @close="handleClose">
|
|
|
+ <el-form class="table" ref="ruleFormRef1" :model="roleData" :rules="roleRules">
|
|
|
<el-form-item label="角色名:" prop="tur_role_name" class="w-270px">
|
|
|
- <el-input
|
|
|
- size="small"
|
|
|
- v-model="roleData.tur_role_name"
|
|
|
- type="text"
|
|
|
- />
|
|
|
+ <el-input size="small" v-model="roleData.tur_role_name" type="text" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="" prop="tur_role_menu">
|
|
|
<div class="w-full">设置权限:</div>
|
|
@@ -339,31 +181,16 @@
|
|
|
<template #footer>
|
|
|
<span class="flex_center space-x-12">
|
|
|
<el-button size="large" @click="handleClose">取消</el-button>
|
|
|
- <el-button
|
|
|
- size="large"
|
|
|
- type="primary"
|
|
|
- @click="PermissionSubmit(ruleFormRef1)"
|
|
|
- >
|
|
|
+ <el-button size="large" type="primary" @click="PermissionSubmit(ruleFormRef1)">
|
|
|
确定
|
|
|
</el-button>
|
|
|
</span>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog
|
|
|
- v-model="detailDialogVisible"
|
|
|
- class="_"
|
|
|
- width="778"
|
|
|
- title="详情"
|
|
|
- >
|
|
|
+ <el-dialog v-model="detailDialogVisible" class="_" width="778" title="详情">
|
|
|
<img class="avatar" :src="ruleForm.user_avatar" />
|
|
|
- <el-form
|
|
|
- class="grid grid-cols-2"
|
|
|
- ref="ruleFormRef"
|
|
|
- label-position="right"
|
|
|
- label-width="90px"
|
|
|
- :model="detailForm"
|
|
|
- >
|
|
|
+ <el-form class="grid grid-cols-2" ref="ruleFormRef" label-position="right" label-width="90px" :model="detailForm">
|
|
|
<el-form-item label="账号:">
|
|
|
{{ detailForm.user_name }}
|
|
|
</el-form-item>
|
|
@@ -385,8 +212,7 @@
|
|
|
<div v-for="item in officeData" :key="item">
|
|
|
<span class="mr-30px">
|
|
|
{{ item.grade_name }}{{ item.class_name
|
|
|
- }}{{ item.xueke_name }}</span
|
|
|
- >
|
|
|
+ }}{{ item.xueke_name }}</span>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="特长:" class="col-span-full">
|
|
@@ -401,9 +227,7 @@
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
<span class="flex_center space-x-12">
|
|
|
- <el-button size="large" type="primary" @click="handleFormCancel"
|
|
|
- >返回</el-button
|
|
|
- >
|
|
|
+ <el-button size="large" type="primary" @click="handleFormCancel">返回</el-button>
|
|
|
</span>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
@@ -516,7 +340,7 @@ function initClassData() {
|
|
|
//角色列表
|
|
|
let roleList = $ref([]);
|
|
|
function initRoleData() {
|
|
|
- role_list({ limit: 100 }).then((res) => {
|
|
|
+ role_list({ limit: 100, M5jxrcL: "" }).then((res) => {
|
|
|
if (res.code === "1") {
|
|
|
roleList = res.data.page_data;
|
|
|
}
|
|
@@ -559,8 +383,8 @@ function handleDetail(id) {
|
|
|
detailData.gender == 1
|
|
|
? "男"
|
|
|
: detailData.gender == 2
|
|
|
- ? "女"
|
|
|
- : "保密",
|
|
|
+ ? "女"
|
|
|
+ : "保密",
|
|
|
sm_id: detailData.sm_id,
|
|
|
user_phone: detailData.user_phone,
|
|
|
user_email: detailData.user_email,
|
|
@@ -824,7 +648,7 @@ function handleMulDelete() {
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
- .catch(() => {});
|
|
|
+ .catch(() => { });
|
|
|
}
|
|
|
//单个删除
|
|
|
function handleDelete(id) {
|
|
@@ -850,7 +674,7 @@ function handleDelete(id) {
|
|
|
}
|
|
|
});
|
|
|
})
|
|
|
- .catch(() => {});
|
|
|
+ .catch(() => { });
|
|
|
}
|
|
|
function exportAll() {
|
|
|
let ids = multipleSelection.join(",");
|