|
@@ -11,121 +11,141 @@
|
|
|
</div>
|
|
</div>
|
|
|
<div class="content_right">
|
|
<div class="content_right">
|
|
|
<el-button>刷新</el-button>
|
|
<el-button>刷新</el-button>
|
|
|
- <el-button type="primary" @click="AddMultiExam" >
|
|
|
|
|
- 新增用户
|
|
|
|
|
- </el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" @click="AddManager" >新增用户</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="page_jg_20"></div>
|
|
<div class="page_jg_20"></div>
|
|
|
<div class="page_table">
|
|
<div class="page_table">
|
|
|
- <el-table :data="tableData" stripe
|
|
|
|
|
- :key="tableKey"
|
|
|
|
|
- v-loading="tableLoading"
|
|
|
|
|
- element-loading-text="拼命加载中……"
|
|
|
|
|
- element-loading-spinner="el-icon-loading"
|
|
|
|
|
- element-loading-background="#ffffff"
|
|
|
|
|
- row-key="studentId">
|
|
|
|
|
-
|
|
|
|
|
- <el-table-column type="index" label="序号" :index="GetIndexNumber" align="center" width="50" fixed="left"></el-table-column>
|
|
|
|
|
-
|
|
|
|
|
- <el-table-column prop="account" label="账号" align="center" show-overflow-tooltip>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="userName" label="姓名" align="center" show-overflow-tooltip>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="stateName" label="状态" align="center" show-overflow-tooltip>
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div class="table_row_status">
|
|
|
|
|
- <!-- 需汇总 -->
|
|
|
|
|
- <div class="need_summary_icon" v-if="scope.row.state==1"></div>
|
|
|
|
|
- <!-- 汇总中 改成成绩中 -->
|
|
|
|
|
- <div class="score_look_icon" v-else-if="scope.row.state==4"></div>
|
|
|
|
|
- <!-- 已发布 -->
|
|
|
|
|
- <div class="yes_release_icon" v-else-if="scope.row.state==2"></div>
|
|
|
|
|
- <!-- 已关闭 -->
|
|
|
|
|
- <div class="ready_close_icon" v-else-if="scope.row.state==3"></div>
|
|
|
|
|
- <!-- 未发布 -->
|
|
|
|
|
- <div class="no_release_icon" v-else></div>
|
|
|
|
|
- {{ scope.row.stateName }}
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="loginTime" label="最后登录时间" align="center" show-overflow-tooltip>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column label="操作" align="center" fixed="right" min-width="120">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div class="table_row_option">
|
|
|
|
|
-
|
|
|
|
|
- <div class="button_editor" @click="EditorStudent(scope.row)">编辑</div>
|
|
|
|
|
-
|
|
|
|
|
- <div class="button_delete" @click="DeleteStudent(scope.row)">删除</div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- </el-table>
|
|
|
|
|
|
|
+ <el-table :data="tableData" stripe :key="tableKey" v-loading="tableLoading" element-loading-text="拼命加载中……"
|
|
|
|
|
+ element-loading-spinner="el-icon-loading" element-loading-background="#ffffff" row-key="studentId">
|
|
|
|
|
+ <el-table-column type="index" label="序号" align="center" width="50" />
|
|
|
|
|
+ <el-table-column prop="username" label="账号" align="center" show-overflow-tooltip />
|
|
|
|
|
+ <el-table-column prop="nickname" label="姓名" align="center" show-overflow-tooltip />
|
|
|
|
|
+ <el-table-column prop="phoneNo" label="手机号" align="center" show-overflow-tooltip />
|
|
|
|
|
+ <el-table-column prop="status" label="状态" align="center" show-overflow-tooltip>
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <div class="table_row_status">
|
|
|
|
|
+ <!-- 正常 -->
|
|
|
|
|
+ <div class="yes_release_icon" v-if="scope.row.status == 1"></div>
|
|
|
|
|
+ <!-- 封禁 -->
|
|
|
|
|
+ <div class="ready_close_icon" v-else-if="scope.row.status==2"></div>
|
|
|
|
|
+ {{ scope.row.statusLabel }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column prop="lastLoginAt" label="最后登录时间" align="center" show-overflow-tooltip />
|
|
|
|
|
+ <el-table-column label="操作" align="center" fixed="right" min-width="120">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <div class="table_row_option">
|
|
|
|
|
+ <div class="button_editor" @click="EditManager(scope.row)">编辑</div>
|
|
|
|
|
+ <div class="button_editor" @click="EditPassword(scope.row)">重置密码</div>
|
|
|
|
|
+ <div class="button_delete" @click="DeleteManager(scope.row)">删除</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="page_dialog">
|
|
|
|
|
+ <AddAdmin v-if="dialogData.showDialog" @update="RefTable" />
|
|
|
|
|
+ <ResetPassword v-if="passwordDialog.dialogShow" />
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
-<script setup>
|
|
|
|
|
-import { ref ,onMounted, onBeforeUnmount} from 'vue'
|
|
|
|
|
|
|
+<script lang="ts" setup>
|
|
|
|
|
+import { ref, reactive, onMounted, onBeforeUnmount, provide} from 'vue'
|
|
|
import { Search } from '@element-plus/icons-vue'
|
|
import { Search } from '@element-plus/icons-vue'
|
|
|
-const tableData = ref([]);//表格数据
|
|
|
|
|
-const tableLoading = ref(false);//表格加载loading
|
|
|
|
|
-const tableKey = ref(0);//用于强制刷新table
|
|
|
|
|
-const keyWord = ref('');//搜索关键词
|
|
|
|
|
-
|
|
|
|
|
-const GetTableData=async()=>{
|
|
|
|
|
|
|
+import { ElMessageBox, ElMessage } from 'element-plus'
|
|
|
|
|
+import { getUserList } from '@/api/school'
|
|
|
|
|
+import { deleteManager } from '@/api/manager'
|
|
|
|
|
+import AddAdmin from '@/views/manager/addAdmin.vue'
|
|
|
|
|
+import ResetPassword from '@/components/resetPassword.vue'
|
|
|
|
|
+const tableData = ref([]); // 表格数据
|
|
|
|
|
+const tableLoading = ref(false); //表 格加载loading
|
|
|
|
|
+const tableKey = ref(0); // 用于强制刷新table
|
|
|
|
|
+const keyWord = ref(''); // 搜索关键词
|
|
|
|
|
+const dialogData = reactive({
|
|
|
|
|
+ showDialog: false,
|
|
|
|
|
+ id: '',
|
|
|
|
|
+ pageType: ''
|
|
|
|
|
+}) // 添加/修改用户弹窗数据
|
|
|
|
|
+const passwordDialog = reactive({
|
|
|
|
|
+ dialogShow: false,
|
|
|
|
|
+ id: '',
|
|
|
|
|
+ name: '',
|
|
|
|
|
+ label: '',
|
|
|
|
|
+ remark: ''
|
|
|
|
|
+}) // 重置密码弹窗数据
|
|
|
|
|
+provide('dialogData', dialogData)
|
|
|
|
|
+provide('passwordDialog', passwordDialog)
|
|
|
|
|
+// 获取运维人员列表
|
|
|
|
|
+const GetUserList = async() => {
|
|
|
try{
|
|
try{
|
|
|
- // tableLoading.value=true;
|
|
|
|
|
- // const res=await fetch('/api/manager/getStudents');
|
|
|
|
|
- // if(res.code===200)
|
|
|
|
|
- // {
|
|
|
|
|
- // tableData.value=res.data || [];
|
|
|
|
|
- // }
|
|
|
|
|
- tableData.value=[
|
|
|
|
|
- {
|
|
|
|
|
- account: '182900',
|
|
|
|
|
- userName: '杨晓正',
|
|
|
|
|
- phone: '13552478041',
|
|
|
|
|
- state: '0',
|
|
|
|
|
- stateName: '正常',
|
|
|
|
|
- loginTime: '2024-10-15',
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- account: '182900',
|
|
|
|
|
- userName: '杨晓正',
|
|
|
|
|
- phone: '13552478041',
|
|
|
|
|
- state: '1',
|
|
|
|
|
- stateName: '封禁',
|
|
|
|
|
- loginTime: '2024-10-15',
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- account: '182900',
|
|
|
|
|
- userName: '杨晓正',
|
|
|
|
|
- phone: '13552478041',
|
|
|
|
|
- state: '1',
|
|
|
|
|
- stateName: '封禁',
|
|
|
|
|
- loginTime: '2024-10-15',
|
|
|
|
|
- }
|
|
|
|
|
- ];
|
|
|
|
|
- }catch(error)
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ tableLoading.value=true;
|
|
|
|
|
+ const res = await getUserList({
|
|
|
|
|
+ queryStr: keyWord.value
|
|
|
|
|
+ })
|
|
|
|
|
+ if(res.code == 200 && res.data) {
|
|
|
|
|
+ const { data } = res
|
|
|
|
|
+ tableData.value = data
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch(error) {
|
|
|
console.error('获取数据失败:', error)
|
|
console.error('获取数据失败:', error)
|
|
|
- }finally
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ } finally {
|
|
|
tableLoading.value = false
|
|
tableLoading.value = false
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+const GoSearch = () => {
|
|
|
|
|
+ GetUserList()
|
|
|
|
|
+}
|
|
|
// 组件挂载时自动加载数据
|
|
// 组件挂载时自动加载数据
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
- GetTableData()//加载表格数据
|
|
|
|
|
|
|
+ GetUserList()//加载表格数据
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
// 表格相关方法
|
|
// 表格相关方法
|
|
|
function GetIndexNumber(index) {
|
|
function GetIndexNumber(index) {
|
|
|
return index + 1
|
|
return index + 1
|
|
|
}
|
|
}
|
|
|
|
|
+const AddManager = () => {
|
|
|
|
|
+ dialogData.showDialog = true
|
|
|
|
|
+ dialogData.pageType = 'add'
|
|
|
|
|
+}
|
|
|
|
|
+const EditManager = (row) => {
|
|
|
|
|
+ dialogData.showDialog = true
|
|
|
|
|
+ dialogData.pageType = 'edit'
|
|
|
|
|
+ dialogData.id = row.id
|
|
|
|
|
+}
|
|
|
|
|
+const RefTable = (val) => {
|
|
|
|
|
+ dialogData.showDialog = val
|
|
|
|
|
+ GetUserList()
|
|
|
|
|
+}
|
|
|
|
|
+const DeleteManager = (row) => {
|
|
|
|
|
+ console.log(row)
|
|
|
|
|
+ ElMessageBox.confirm('确定删除该学校吗?', '提示', {
|
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ }).then(async () => {
|
|
|
|
|
+ const res = await deleteManager({ ids: [row.id] })
|
|
|
|
|
+ if(res.code == 200) {
|
|
|
|
|
+ ElMessage.success(res.msg)
|
|
|
|
|
+ GetUserList()
|
|
|
|
|
+ }else {
|
|
|
|
|
+ ElMessage.error(res.msg)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+const EditPassword = (row) => {
|
|
|
|
|
+ console.log(row)
|
|
|
|
|
+ passwordDialog.dialogShow = true
|
|
|
|
|
+ passwordDialog.id = row.id
|
|
|
|
|
+ passwordDialog.name = row.nickname
|
|
|
|
|
+ passwordDialog.label = '用户姓名'
|
|
|
|
|
+ passwordDialog.remark = '用户账号'
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|