稳定版1.0
This commit is contained in:
parent
de7599fe63
commit
bfc5d04794
|
@ -15,6 +15,7 @@
|
|||
"vue": "^2.6.12",
|
||||
"vue-clipboard2": "^0.3.1",
|
||||
"vue-cookie": "^1.1.4",
|
||||
"vue-json-excel": "^0.3.0",
|
||||
"vue-router": "^3.4.9",
|
||||
"vuex": "^3.6.0"
|
||||
},
|
||||
|
@ -4914,6 +4915,11 @@
|
|||
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/downloadjs": {
|
||||
"version": "1.4.7",
|
||||
"resolved": "https://registry.npmmirror.com/downloadjs/-/downloadjs-1.4.7.tgz",
|
||||
"integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q=="
|
||||
},
|
||||
"node_modules/duplexer": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
|
||||
|
@ -9670,6 +9676,14 @@
|
|||
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/vue-json-excel": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/vue-json-excel/-/vue-json-excel-0.3.0.tgz",
|
||||
"integrity": "sha512-FrSh0tVUpw4K+ilLO8g0Qp52eFJw/hkk3rZPTEKo9qVkJgVfQtZwzj3UWc5ACYxA3jLk9HtjK+f9xKHCN4Kgag==",
|
||||
"dependencies": {
|
||||
"downloadjs": "^1.4.7"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-loader": {
|
||||
"version": "17.1.0",
|
||||
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.1.0.tgz",
|
||||
|
@ -14130,6 +14144,11 @@
|
|||
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
|
||||
"dev": true
|
||||
},
|
||||
"downloadjs": {
|
||||
"version": "1.4.7",
|
||||
"resolved": "https://registry.npmmirror.com/downloadjs/-/downloadjs-1.4.7.tgz",
|
||||
"integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q=="
|
||||
},
|
||||
"duplexer": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
|
||||
|
@ -17670,6 +17689,14 @@
|
|||
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
|
||||
"dev": true
|
||||
},
|
||||
"vue-json-excel": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/vue-json-excel/-/vue-json-excel-0.3.0.tgz",
|
||||
"integrity": "sha512-FrSh0tVUpw4K+ilLO8g0Qp52eFJw/hkk3rZPTEKo9qVkJgVfQtZwzj3UWc5ACYxA3jLk9HtjK+f9xKHCN4Kgag==",
|
||||
"requires": {
|
||||
"downloadjs": "^1.4.7"
|
||||
}
|
||||
},
|
||||
"vue-loader": {
|
||||
"version": "17.1.0",
|
||||
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.1.0.tgz",
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
"vue": "^2.6.12",
|
||||
"vue-clipboard2": "^0.3.1",
|
||||
"vue-cookie": "^1.1.4",
|
||||
"vue-json-excel": "^0.3.0",
|
||||
"vue-router": "^3.4.9",
|
||||
"vuex": "^3.6.0"
|
||||
},
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 195 KiB |
|
@ -5,7 +5,7 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="referrer" content="never">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<title>微信后台管理系统</title>
|
||||
<title>评阅人员管理系统</title>
|
||||
<!-- tinymce编辑器 -->
|
||||
<script src="https://cdn.bootcdn.net/ajax/libs/tinymce/5.10.4/tinymce.min.js"></script>
|
||||
</head>
|
||||
|
|
|
@ -17,7 +17,8 @@ Vue.use(ElementUI);
|
|||
Vue.use(VueClipboard)
|
||||
Vue.use(VueCookie)
|
||||
Vue.config.productionTip = false
|
||||
|
||||
import JsonExcel from 'vue-json-excel';
|
||||
Vue.component('downloadExcel', JsonExcel)
|
||||
// 挂载全局
|
||||
Vue.prototype.$http = httpRequest // ajax请求方法
|
||||
Vue.prototype.isAuth = isAuth // 权限方法
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class="mod-home">
|
||||
<h3>欢迎使用微信管理系统</h3>
|
||||
<h3>欢迎使用评阅人员管理系统</h3>
|
||||
</div>
|
||||
</template>
|
||||
<style>
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
<div class="site-content__wrapper">
|
||||
<div class="site-content">
|
||||
<div class="brand-info">
|
||||
<h2 class="brand-info__text">微信后台管理系统</h2>
|
||||
<p class="brand-info__intro">微信公众号后台管理系统。</p>
|
||||
<h2>评阅人员管理系统</h2>
|
||||
<p class="brand-info__intro">评阅人员管理系统。</p>
|
||||
</div>
|
||||
<div class="login-main">
|
||||
<h3 class="login-title">管理员登录</h3>
|
||||
|
@ -15,17 +15,17 @@
|
|||
<el-form-item prop="password">
|
||||
<el-input v-model="dataForm.password" type="password" placeholder="密码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="captcha">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="14">
|
||||
<el-input v-model="dataForm.captcha" placeholder="验证码">
|
||||
</el-input>
|
||||
</el-col>
|
||||
<el-col :span="10" class="login-captcha">
|
||||
<img :src="captchaPath" @click="getCaptcha()" alt="">
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item prop="captcha">-->
|
||||
<!-- <el-row :gutter="20">-->
|
||||
<!-- <el-col :span="14">-->
|
||||
<!-- <el-input v-model="dataForm.captcha" placeholder="验证码">-->
|
||||
<!-- </el-input>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="10" class="login-captcha">-->
|
||||
<!-- <img :src="captchaPath" @click="getCaptcha()" alt="">-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item>
|
||||
<el-button class="login-btn-submit" type="primary" @click="dataFormSubmit()">登录</el-button>
|
||||
</el-form-item>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<nav class="site-navbar" :class="'site-navbar--' + navbarLayoutType">
|
||||
<div class="site-navbar__header">
|
||||
<h1 class="site-navbar__brand" @click="$router.push({ name: 'home' })">
|
||||
<a class="site-navbar__brand-lg" href="javascript:;">微信管理系统</a>
|
||||
<a class="site-navbar__brand-lg" href="javascript:;">评阅人员管理系统</a>
|
||||
<a class="site-navbar__brand-mini" href="javascript:;">W</a>
|
||||
</h1>
|
||||
</div>
|
||||
|
|
|
@ -5,19 +5,29 @@
|
|||
<!-- <el-form-item v-if="!dataForm.id ? true : false" label="身份码" prop="userId">-->
|
||||
<!-- <el-input v-model="dataForm.userId" placeholder="登录帐号"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="用户名" >
|
||||
<el-form-item label="用户名" prop="userName">
|
||||
<el-input v-model="dataForm.userName" placeholder="用户名"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="工号" >
|
||||
<el-form-item label="工号" prop="workNumber">
|
||||
<el-input v-model="dataForm.workNumber" placeholder="工号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="职务" >
|
||||
<el-form-item label="往年组别" >
|
||||
<el-input v-model="dataForm.beforeGroupLevel" placeholder="往年组别"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="组别" prop="groupLevel">
|
||||
<el-input v-model="dataForm.groupLevel" placeholder="组别"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="往年职务" >
|
||||
<el-input v-model="dataForm.beforeDuty" placeholder="往年职务"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="职务" prop="duty">
|
||||
<el-input v-model="dataForm.duty" placeholder="职务"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门" >
|
||||
|
||||
<el-form-item label="部门" prop="department">
|
||||
<el-input v-model="dataForm.department" placeholder="部门"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="岗位" >
|
||||
<el-form-item label="岗位" prop="job">
|
||||
<el-input v-model="dataForm.job" placeholder="岗位"></el-input>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item v-if="!dataForm.id ? true : false" label="身份">-->
|
||||
|
@ -25,11 +35,11 @@
|
|||
<!-- <el-option v-for="(name,key) in identityes" :key="key+1" :value="key+1" :label="name"></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="所属组">
|
||||
<el-select v-model="dataForm.groupId" placeholder="所属组">
|
||||
<el-option v-for="item in groupIdes" :key="item.id" :value="item.id" :label="item.name">{{item.name}}</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="所属组">-->
|
||||
<!-- <el-select v-model="dataForm.groupId" placeholder="所属组">-->
|
||||
<!-- <el-option v-for="item in groupIdes" :key="item.id" :value="item.id" :label="item.name">{{item.name}}</el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="状态" size="mini" prop="status">-->
|
||||
<!-- <el-radio-group v-model="dataForm.status">-->
|
||||
<!-- <el-radio :label="1">禁用</el-radio>-->
|
||||
|
@ -72,11 +82,14 @@ export default {
|
|||
id: 0,
|
||||
userName: '',
|
||||
groupId: '',
|
||||
beforeGroupLevel: '',
|
||||
userId: '',
|
||||
workNumber:'',
|
||||
// major_id,
|
||||
duty:'',
|
||||
beforeDuty:'',
|
||||
department:'',
|
||||
groupLevel:'',
|
||||
job:''
|
||||
},
|
||||
identityes: ['管理员', '研究生', '本校老师', '外校老师'],
|
||||
|
@ -85,6 +98,21 @@ export default {
|
|||
userName: [
|
||||
{required: true, message: '用户名不能为空', trigger: 'blur'}
|
||||
],
|
||||
workNumber: [
|
||||
{required: true, message: '工号不能为空', trigger: 'blur'}
|
||||
],
|
||||
groupLevel: [
|
||||
{required: true, message: '组别不能为空', trigger: 'blur'}
|
||||
],
|
||||
duty: [
|
||||
{required: true, message: '职务不能为空', trigger: 'blur'}
|
||||
],
|
||||
department: [
|
||||
{required: true, message: ' 部门不能为空', trigger: 'blur'}
|
||||
],
|
||||
job: [
|
||||
{required: true, message: ' 岗位不能为空', trigger: 'blur'}
|
||||
],
|
||||
password: [
|
||||
{validator: validatePassword, trigger: 'blur'}
|
||||
],
|
||||
|
@ -106,7 +134,10 @@ export default {
|
|||
this.dataForm.groupId = ''
|
||||
this.dataForm.workNumber = ''
|
||||
this.dataForm.duty = ''
|
||||
this.dataForm.beforeDuty = ''
|
||||
this.dataForm.department = ''
|
||||
this.dataForm.groupLevel = ''
|
||||
this.dataForm.beforeGroupLevel = ''
|
||||
this.dataForm.job = ''
|
||||
}
|
||||
this.dataForm.id = id || 0
|
||||
|
@ -136,7 +167,10 @@ export default {
|
|||
this.dataForm.userId = data.user.userId
|
||||
this.dataForm.workNumber = data.user.workNumber
|
||||
this.dataForm.duty = data.user.duty
|
||||
this.dataForm.beforeDuty = data.user.beforeDuty
|
||||
this.dataForm.groupLevel = data.user.groupLevel
|
||||
this.dataForm.department = data.user.department
|
||||
this.dataForm.beforeGroupLevel = data.user.beforeGroupLevel
|
||||
this.dataForm.job = data.user.job
|
||||
}
|
||||
})
|
||||
|
@ -157,6 +191,9 @@ export default {
|
|||
'userId': this.dataForm.userId,
|
||||
'workNumber': this.dataForm.workNumber,
|
||||
'duty': this.dataForm.duty,
|
||||
'beforeDuty': this.dataForm.beforeDuty,
|
||||
'beforeGroupLevel': this.dataForm.beforeGroupLevel,
|
||||
'groupLevel': this.dataForm.groupLevel,
|
||||
'department': this.dataForm.department,
|
||||
'job': this.dataForm.job,
|
||||
|
||||
|
|
|
@ -2,14 +2,46 @@
|
|||
<div class="mod-user">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.userName" placeholder="用户身份码" clearable></el-input>
|
||||
<el-input v-model="dataForm.userName" placeholder="姓名" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
<!-- <el-button v-if="isAuth('adm:user:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>-->
|
||||
<el-button v-if="isAuth('adm:user:delete')" type="danger" @click="deleteHandle()"
|
||||
:disabled="dataListSelections.length <= 0">批量删除
|
||||
</el-button>
|
||||
<download-excel :stringifyLongNum="true" :fetch="getExportExcel" :fields="json_fields" style="display: inline-block;margin: 0 10px" :name='`管理员信息.xls`'>
|
||||
<el-button type='primary'>导出</el-button>
|
||||
</download-excel>
|
||||
|
||||
<el-button type="primary" @click="addOrUpdateHandle()">新增</el-button>
|
||||
<a href="/gzcy.xlsx" download="工作组成员数据模板">
|
||||
<el-button type="primary" style="margin: 0 10px">下载Excel模板</el-button>
|
||||
</a>
|
||||
<el-upload
|
||||
v-if="isAuth('sys:user:list')"
|
||||
style="float: right;margin-left: 5px"
|
||||
class="upload-demo"
|
||||
ref="upload"
|
||||
action="/admin/upload"
|
||||
:on-preview="handlePreview"
|
||||
:on-success="uploadSuccess"
|
||||
:on-error="uploadError"
|
||||
:before-upload="beforeUpload"
|
||||
:on-remove="handleRemove"
|
||||
:file-list="fileList"
|
||||
accept=".xls,.xlsx"
|
||||
:auto-upload="false"
|
||||
:limit="1"
|
||||
>
|
||||
|
||||
<el-button slot="trigger" type="primary">选取</el-button>
|
||||
<el-button style="margin-left: 10px;" type="success" @click="submitUpload">
|
||||
上传到服务器
|
||||
</el-button>
|
||||
<div slot="tip" class="el-upload__tip">只能上传excel文件</div>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
|
||||
|
@ -21,12 +53,20 @@
|
|||
{{ (pageIndex - 1) * pageSize + scope.$index + 1 }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="userId" header-align="center" align="center" width="100" label="用户身份码">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="userId" header-align="center" align="center" width="100" label="用户身份码">-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column prop="userName" header-align="center" align="center" label="用户名">
|
||||
</el-table-column>
|
||||
<el-table-column prop="workNumber" header-align="center" align="center" label="工号">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="userId" header-align="center" align="center" label="身份码">-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column prop="beforeGroupLevel" header-align="center" align="center" label="往年组别">
|
||||
</el-table-column>
|
||||
<el-table-column prop="groupLevel" header-align="center" align="center" label="组别">
|
||||
</el-table-column>
|
||||
<el-table-column prop="beforeDuty" header-align="center" align="center" label="往年职务">
|
||||
</el-table-column>
|
||||
<el-table-column prop="duty" header-align="center" align="center" label="职务">
|
||||
</el-table-column>
|
||||
<el-table-column prop="department" header-align="center" align="center" label="部门">
|
||||
|
@ -41,18 +81,18 @@
|
|||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
|
||||
<el-table-column
|
||||
header-align="center"
|
||||
align="center"
|
||||
prop="groupId"
|
||||
label="所属分组"
|
||||
:filters="groupIdes"
|
||||
:filter-method="filterTag"
|
||||
filter-placement="bottom-end">
|
||||
<template slot-scope="scope">
|
||||
{{ getgroups(scope.row.groupId) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column-->
|
||||
<!-- header-align="center"-->
|
||||
<!-- align="center"-->
|
||||
<!-- prop="groupId"-->
|
||||
<!-- label="所属分组"-->
|
||||
<!-- :filters="groupIdes"-->
|
||||
<!-- :filter-method="filterTag"-->
|
||||
<!-- filter-placement="bottom-end">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- {{ getgroups(scope.row.groupId) }}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column prop="status" header-align="center" align="center" label="状态">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-tag v-if="scope.row.status === 1" size="small" type="danger">禁用</el-tag>-->
|
||||
|
@ -98,6 +138,20 @@ export default {
|
|||
dataListSelections: [],
|
||||
addOrUpdateVisible: false,
|
||||
groupIdes: [],
|
||||
fileList:[],
|
||||
json_fields: {
|
||||
"序号": "index",
|
||||
// "身份码": "userId",
|
||||
"工号": "workNumber",
|
||||
"姓名": "userName",
|
||||
"往年组别": "beforeGroupLevel",
|
||||
"组别":"groupLevel",
|
||||
"往年职位":"beforeDuty",
|
||||
"职位": "duty",
|
||||
"部门": "department",
|
||||
"岗位": "job",
|
||||
},
|
||||
groupIdMap:{},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
@ -111,6 +165,28 @@ export default {
|
|||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
// Excel导出
|
||||
async getExportExcel(){
|
||||
// console.log(this.groupIdMap)
|
||||
let excelData=[]
|
||||
await this.$http({
|
||||
url: this.$http.adornUrl('/admin/export'),
|
||||
method: 'get',
|
||||
}).then(({data}) => {
|
||||
excelData = data.map((item, index) => {
|
||||
return { ...item, index: index + 1 }; // 添加序号字段
|
||||
});
|
||||
// excelData=data
|
||||
// if (data && data.code === 200) {
|
||||
// console.log(data.list)
|
||||
// }
|
||||
})
|
||||
return excelData
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
// 分组过滤
|
||||
filterTag(value, row) {
|
||||
return row.groupId === value;
|
||||
|
@ -146,7 +222,7 @@ export default {
|
|||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'userId': this.dataForm.userName
|
||||
'userName': this.dataForm.userName
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
|
@ -184,7 +260,7 @@ export default {
|
|||
// 删除
|
||||
deleteHandle(userid) {
|
||||
var userIds = userid ? [userid] : this.dataListSelections.map(item => item.id)
|
||||
this.$confirm(`确定对[userid=${userIds.join(',')}]进行[${userid ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
this.$confirm(`确定操作?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
|
@ -207,6 +283,56 @@ export default {
|
|||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
// 文件上传
|
||||
//文件上传相关的
|
||||
submitUpload() {
|
||||
if (this.$refs.upload.uploadFiles.length==0){
|
||||
this.$message({
|
||||
message: '请选择Excel文件',
|
||||
type: 'error',
|
||||
duration: 1500,
|
||||
onClose: () => this.getDataList()
|
||||
})
|
||||
return;
|
||||
}
|
||||
this.$refs.upload.submit();
|
||||
this.loading= this.$loading({
|
||||
lock: true,
|
||||
text: '文件上传中请耐心等待。。。',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
},
|
||||
handleRemove(file, fileList) {
|
||||
console.log(file, fileList);
|
||||
},
|
||||
handlePreview(file) {
|
||||
console.log(file);
|
||||
},
|
||||
uploadSuccess(){
|
||||
this.loading.close();
|
||||
this.$refs.upload.clearFiles()
|
||||
this.$message({
|
||||
message: '上传成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => this.getDataList()
|
||||
})
|
||||
|
||||
},
|
||||
uploadError(){
|
||||
this.$refs.upload.clearFiles()
|
||||
this.$message({
|
||||
message: '上传失败',
|
||||
type: 'error',
|
||||
duration: 1500,
|
||||
onClose: () => this.getDataList()
|
||||
})
|
||||
},
|
||||
beforeUpload(file){
|
||||
// console.log(file)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,136 @@
|
|||
<!--<template>-->
|
||||
<!-- <el-dialog :title="!dataForm.id ? '新增' : '修改'" :close-on-click-modal="false" :visible.sync="visible">-->
|
||||
<!-- <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"-->
|
||||
<!-- label-width="80px">-->
|
||||
<!-- <p style="text-align: center; margin: 50px 0 20px">使用 scoped-slot 自定义数据项</p>-->
|
||||
<!-- <div style="text-align: center">-->
|
||||
<!-- <el-transfer-->
|
||||
<!-- style="text-align: left; display: inline-block"-->
|
||||
<!-- v-model="value4"-->
|
||||
<!-- filterable-->
|
||||
<!-- :left-default-checked="[2, 3]"-->
|
||||
<!-- :right-default-checked="[1]"-->
|
||||
<!-- :titles="['Source', 'Target']"-->
|
||||
<!-- :button-texts="['到左边', '到右边']"-->
|
||||
<!-- :format="{-->
|
||||
<!-- noChecked: '${total}',-->
|
||||
<!-- hasChecked: '${checked}/${total}'-->
|
||||
<!-- }"-->
|
||||
<!-- @change="handleChange"-->
|
||||
<!-- :data="data">-->
|
||||
<!-- <span slot-scope="{ option }">{{ option.key }} - {{ option.label }}</span>-->
|
||||
<!-- <el-button class="transfer-footer" slot="left-footer" size="small">操作</el-button>-->
|
||||
<!-- <el-button class="transfer-footer" slot="right-footer" size="small">操作</el-button>-->
|
||||
<!-- </el-transfer>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<!-- </el-form>-->
|
||||
<!-- <span slot="footer" class="dialog-footer">-->
|
||||
<!-- <el-button @click="visible = false">取消</el-button>-->
|
||||
<!-- <el-button type="primary" @click="dataFormSubmit()">确定</el-button>-->
|
||||
<!-- </span>-->
|
||||
<!-- </el-dialog>-->
|
||||
<!--</template>-->
|
||||
|
||||
<!--<script>-->
|
||||
<!--import {is8Number,isMobile} from '@/utils/validate'-->
|
||||
<!--import myRequest from "@/views/modules/h5/myRequest";-->
|
||||
|
||||
<!--export default {-->
|
||||
<!-- data() {-->
|
||||
|
||||
|
||||
<!-- return {-->
|
||||
<!-- visible: false,-->
|
||||
<!-- roleList: [],-->
|
||||
<!-- dataForm: {-->
|
||||
<!-- id: 0,-->
|
||||
<!-- dormitory:'',-->
|
||||
<!-- dormitoryNum:'',-->
|
||||
<!-- dormitoryType:0,-->
|
||||
<!-- dormitoryStatus:0,-->
|
||||
<!-- },-->
|
||||
|
||||
<!-- }-->
|
||||
<!-- },-->
|
||||
<!-- methods: {-->
|
||||
<!-- init(id) {-->
|
||||
<!-- this.visible = true-->
|
||||
<!-- // myRequest.getGroupList2(this).then(res => {-->
|
||||
<!-- // this.groupIdes = res.data.list-->
|
||||
<!-- // })-->
|
||||
<!-- // this.dataForm.id = id || 0-->
|
||||
<!-- // this.$http({-->
|
||||
<!-- // url: this.$http.adornUrl('/sys/role/select'),-->
|
||||
<!-- // method: 'get',-->
|
||||
<!-- // params: this.$http.adornParams()-->
|
||||
<!-- // }).then(({data}) => {-->
|
||||
<!-- // this.roleList = data && data.code === 200 ? data.list : []-->
|
||||
<!-- // }).then(() => {-->
|
||||
<!-- // this.visible = true-->
|
||||
<!-- // this.$nextTick(() => {-->
|
||||
<!-- // this.$refs['dataForm'].resetFields()-->
|
||||
<!-- // })-->
|
||||
<!-- // }).then(() => {-->
|
||||
<!-- // if (this.dataForm.id) {-->
|
||||
<!-- // console.log('this.dataForm.id', this.dataForm.id)-->
|
||||
<!-- // this.$http({-->
|
||||
<!-- // url: this.$http.adornUrl(`/excel/info/${this.dataForm.id}`),-->
|
||||
<!-- // method: 'get',-->
|
||||
<!-- // params: this.$http.adornParams()-->
|
||||
<!-- // }).then(({data}) => {-->
|
||||
<!-- // console.log(data)-->
|
||||
<!-- // if (data && data.code === 200) {-->
|
||||
<!-- // this.dataForm.dormitoryType = parseInt(data.user.dormitoryType);-->
|
||||
<!-- // this.dataForm.dormitory = data.user.dormitory-->
|
||||
<!-- // this.dataForm.dormitoryNum = data.user.dormitoryNum-->
|
||||
<!-- // this.dataForm.dormitoryStatus = parseInt(data.user.dormitoryStatus);-->
|
||||
<!-- // }-->
|
||||
<!-- // })-->
|
||||
<!-- // }-->
|
||||
<!-- // })-->
|
||||
<!-- },-->
|
||||
<!-- // 表单提交-->
|
||||
<!-- dataFormSubmit() {-->
|
||||
<!-- // this.$refs['dataForm'].validate((valid) => {-->
|
||||
<!-- // if (valid) {-->
|
||||
<!-- // this.$http({-->
|
||||
<!-- // url: this.$http.adornUrl(`/excel/${!this.dataForm.id ? 'backsave' : 'update'}`),-->
|
||||
<!-- // method: 'post',-->
|
||||
<!-- // data: this.$http.adornData({-->
|
||||
<!-- // 'id':this.dataForm.id,-->
|
||||
<!-- // 'dormitory': this.dataForm.dormitory,-->
|
||||
<!-- // 'dormitoryType': this.dataForm.dormitoryType,-->
|
||||
<!-- // 'dormitoryNum': this.dataForm.dormitoryNum,-->
|
||||
<!-- // 'dormitoryStatus': this.dataForm.dormitoryStatus,-->
|
||||
<!-- //-->
|
||||
<!-- // })-->
|
||||
<!-- // }).then(({data}) => {-->
|
||||
<!-- // console.log(data)-->
|
||||
<!-- // if (data && data.code === 200) {-->
|
||||
<!-- // this.$message({-->
|
||||
<!-- // message: '操作成功',-->
|
||||
<!-- // type: 'success',-->
|
||||
<!-- // duration: 1500,-->
|
||||
<!-- // onClose: () => {-->
|
||||
<!-- // this.visible = false-->
|
||||
<!-- // this.$emit('refreshDataList')-->
|
||||
<!-- // }-->
|
||||
<!-- // })-->
|
||||
<!-- // } else {-->
|
||||
<!-- // this.$message.error(data.msg)-->
|
||||
<!-- // }-->
|
||||
<!-- // })-->
|
||||
<!-- // }-->
|
||||
<!-- // })-->
|
||||
<!-- }-->
|
||||
<!-- }-->
|
||||
<!--}-->
|
||||
<!--</script>-->
|
||||
|
||||
<!--<style>-->
|
||||
<!--.transfer-footer {-->
|
||||
<!-- margin-left: 20px;-->
|
||||
<!-- padding: 6px 5px;-->
|
||||
<!--}-->
|
||||
<!--</style>-->
|
|
@ -0,0 +1,441 @@
|
|||
<template>
|
||||
<div class="mod-user">
|
||||
<el-button type="primary" @click="groupDialog">新增组</el-button>
|
||||
<el-table :data="dataList" border @selection-change="selectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50">
|
||||
</el-table-column>
|
||||
<el-table-column prop="userId" header-align="center" align="center" width="80" label="ID">
|
||||
<template slot-scope="scope">
|
||||
{{ (pageIndex - 1) * pageSize + scope.$index + 1 }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" header-align="center" width="100" align="center" label="组名">
|
||||
</el-table-column>
|
||||
<el-table-column header-align="center" align="center" width="150" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button v-if="isAuth('h5:user:update')" type="text" size="small"-->
|
||||
<el-button type="text" size="small"
|
||||
@click="addOrUpdateHandle(scope.row)">分组
|
||||
</el-button>
|
||||
<!-- <el-button v-if="isAuth('h5:user:delete')" type="text" size="small"-->
|
||||
<!-- @click="deleteHandle(scope.row.id)">删除-->
|
||||
<!-- </el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column header-align="center" align="center" label="组员信息">
|
||||
<template slot-scope="scope">
|
||||
<!-- 获取当前组的人信息-->
|
||||
{{ getRowUser(scope.row.id, rowUserData) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column header-align="center" align="center" width="150" label="删除">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small"
|
||||
@click="deleteHandle(scope.row.id)">删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
|
||||
</el-table>
|
||||
<el-pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle" :current-page="pageIndex"
|
||||
:page-sizes="[5,10, 20, 50, 100]" :page-size="pageSize" :total="totalCount"
|
||||
layout="total, sizes, prev, pager, next, jumper">
|
||||
</el-pagination>
|
||||
|
||||
<!-- 分组对话框-->
|
||||
<el-dialog width="1000px" :title="groupDialogTitle" :close-on-click-modal="false" :visible.sync="visible">
|
||||
<!-- <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"-->
|
||||
<!-- label-width="80px">-->
|
||||
<!-- <p style="text-align: center; margin: 50px 0 20px">分组</p>-->
|
||||
<div class="edit_dev" style="text-align: center" v-if="groupStatus">
|
||||
<el-transfer
|
||||
style="text-align: left; display: inline-block"
|
||||
v-model="value4"
|
||||
filterable
|
||||
:left-default-checked="leftData"
|
||||
:right-default-checked="rightData"
|
||||
:titles="['所有用户',groupTitle]"
|
||||
:button-texts="['移除组员', '分组']"
|
||||
:format="{
|
||||
noChecked: '${total}',
|
||||
hasChecked: '${checked}/${total}'
|
||||
}"
|
||||
@change="handleChange"
|
||||
:data="data">
|
||||
<span slot-scope="{ option }">{{ option.label }} <span style="margin-left: 5px">,</span>年龄:{{ option.age }}</span>
|
||||
<!-- <el-button class="transfer-footer" slot="left-footer" size="small">操作</el-button>-->
|
||||
<!-- <el-button class="transfer-footer" slot="right-footer" size="small">操作</el-button>-->
|
||||
</el-transfer>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<!-- 新增组的一个输入框-->
|
||||
<!-- <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">-->
|
||||
<el-form v-if="!groupStatus" label-width="80px">
|
||||
<el-form-item label="组名">
|
||||
<el-input v-model="groupData.name" placeholder="请输入组名,如:语文第二组"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item v-model="groupData.majorId" label="学科" v-if="isAuth('h5:user:save')">
|
||||
<el-select v-model="groupData.majorId" placeholder="请选择学院">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- </el-form>-->
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="groupClos">关闭</el-button>
|
||||
<el-button v-if="!groupStatus" type="primary" @click="saveGroup">确定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import option from "element-ui/packages/option";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
// const generateData = _ => {
|
||||
// const data = [];
|
||||
// for (let i = 1; i <= 10; i++) {
|
||||
// data.push({
|
||||
// key: i,
|
||||
// label: `备选项 ${i}`,
|
||||
// name: `名字 ${i}`,
|
||||
// disabled: i % 4 === 0
|
||||
// });
|
||||
// }
|
||||
// return data;
|
||||
// };
|
||||
return {
|
||||
options: [
|
||||
{
|
||||
value: 1,
|
||||
label: '语文'
|
||||
},
|
||||
{
|
||||
value: 4,
|
||||
label: '地理'
|
||||
},
|
||||
{
|
||||
value: 7,
|
||||
label: '历史'
|
||||
},
|
||||
{
|
||||
value: 8,
|
||||
label: '政治'
|
||||
},
|
||||
],
|
||||
|
||||
groupData: {
|
||||
name: '',
|
||||
majorId: 1
|
||||
},
|
||||
groupDialogTitle: '',
|
||||
groupStatus: false,
|
||||
dataForm: {
|
||||
userName: ''
|
||||
},
|
||||
groupId: 0,
|
||||
dataList: [],
|
||||
pageIndex: 1,
|
||||
pageSize: 5,
|
||||
totalCount: 0,
|
||||
visible: false,
|
||||
// data: generateData(),
|
||||
rowUserData: [],
|
||||
data: [],
|
||||
rightData: [],
|
||||
leftData: [],
|
||||
groupList: [{}],
|
||||
value: [],
|
||||
value4: [],
|
||||
renderFunc(h, option) {
|
||||
return <span>{option.key} - {option.label}</span>;
|
||||
},
|
||||
groupTitle: ''
|
||||
}
|
||||
},
|
||||
components: {
|
||||
// AddOrUpdate
|
||||
},
|
||||
activated() {
|
||||
this.getDataList()
|
||||
|
||||
},
|
||||
computed: {
|
||||
option() {
|
||||
return option
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getRowUserFun()
|
||||
},
|
||||
methods: {
|
||||
// 保存组名
|
||||
saveGroup(){
|
||||
if (this.groupData.name.length<1){
|
||||
this.$message({
|
||||
message: '组名不能为空',
|
||||
type: 'error',
|
||||
duration: 1500,
|
||||
})
|
||||
return
|
||||
}
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/group/save'),
|
||||
method: 'post',
|
||||
data: this.$http.adornParams({
|
||||
'name': this.groupData.name,
|
||||
'majorId': this.groupData.majorId
|
||||
})
|
||||
}).then(({data}) => {
|
||||
this.groupData.name = ''
|
||||
if (data && data.code === 200) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
})
|
||||
this.getDataList()
|
||||
this.visible=false
|
||||
}
|
||||
})
|
||||
},
|
||||
groupDialog() {
|
||||
this.groupDialogTitle = '新增组名'
|
||||
this.visible = true
|
||||
this.groupStatus = false
|
||||
},
|
||||
// 关闭分组对话框
|
||||
groupClos() {
|
||||
this.visible = false
|
||||
this.getDataList()
|
||||
this.getRowUserFun()
|
||||
},
|
||||
getRowUser(groupId, userList) {
|
||||
let arr = []
|
||||
// 给出的组id和用户列表进行筛选,属于当前组的的用户列表然后返回用户
|
||||
let filterUser = userList.filter(item => item.groupId === groupId);
|
||||
filterUser.forEach((item) => {
|
||||
arr.push(item.userName)
|
||||
})
|
||||
return arr
|
||||
},
|
||||
handleChange(value, direction, movedKeys) {
|
||||
// console.log(value);
|
||||
// console.log(direction);
|
||||
// console.log(movedKeys);
|
||||
// 如果移到右边说明分组到当前组了
|
||||
if (direction === 'right') {
|
||||
console.log(movedKeys)
|
||||
console.log(this.groupId)
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/group/add'),
|
||||
method: 'post',
|
||||
data: this.$http.adornParams({
|
||||
'groupId': this.groupId,
|
||||
'ids': movedKeys
|
||||
})
|
||||
// params: this.$http.adornParams({
|
||||
// 'groupId': this.groupId,
|
||||
// 'ids': movedKeys
|
||||
// })
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
// 如果移到左边说明从当前组移除合并到没有分组用户中
|
||||
if (direction === 'left') {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/group/remove'),
|
||||
method: 'post',
|
||||
data: this.$http.adornParams({
|
||||
'groupId': this.groupId,
|
||||
'ids': movedKeys,
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 获取数据列表
|
||||
getDataList() {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/group/pagelist'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'userId': this.dataForm.userName
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
this.dataList = data.page.list
|
||||
this.totalCount = data.page.totalCount
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.totalCount = 0
|
||||
}
|
||||
|
||||
})
|
||||
},
|
||||
// 每页数
|
||||
sizeChangeHandle(val) {
|
||||
this.pageSize = val
|
||||
this.pageIndex = 1
|
||||
this.getDataList()
|
||||
},
|
||||
// 当前页
|
||||
currentChangeHandle(val) {
|
||||
this.pageIndex = val
|
||||
this.getDataList()
|
||||
},
|
||||
// 多选
|
||||
selectionChangeHandle(val) {
|
||||
this.dataListSelections = val
|
||||
},
|
||||
getRowUserFun() {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/h5/user/grp'),
|
||||
method: 'get',
|
||||
}).then(({data}) => {
|
||||
// console.log(data)
|
||||
if (data && data.code === 200) {
|
||||
// console.log(data)
|
||||
this.data = []
|
||||
this.value4 = []
|
||||
this.rowUserData = data.user
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.totalCount = 0
|
||||
}
|
||||
})
|
||||
},
|
||||
//分组
|
||||
addOrUpdateHandle(obj) {
|
||||
this.groupDialogTitle = '分组'
|
||||
this.groupStatus = true
|
||||
this.groupTitle = obj.name
|
||||
this.groupId = obj.id
|
||||
// this.visible = true
|
||||
// return;
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/h5/user/grp'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'groupId': obj.id,
|
||||
})
|
||||
}).then(({data}) => {
|
||||
// console.log(data)
|
||||
if (data && data.code === 200) {
|
||||
console.log(data)
|
||||
this.data = []
|
||||
this.value4 = []
|
||||
this.rowUserData = data.user
|
||||
data.user.forEach((item, index) => {
|
||||
// console.log(item)
|
||||
if (item.groupId === obj.id) {
|
||||
this.data.push({
|
||||
key: item.id,
|
||||
age: item.age,
|
||||
sex: item.sex,
|
||||
label: item.userName,
|
||||
disabled: false
|
||||
});
|
||||
this.value4.push(item.id)
|
||||
} else {
|
||||
this.data.push({
|
||||
key: item.id,
|
||||
age: item.age,
|
||||
sex: item.sex,
|
||||
label: item.userName,
|
||||
disabled: item.groupId !== 0
|
||||
});
|
||||
}
|
||||
|
||||
})
|
||||
this.data.forEach((item, index) => {
|
||||
if (item.groupId === obj.id) {
|
||||
this.data.push({
|
||||
key: item.id,
|
||||
age: item.age,
|
||||
sex: item.sex,
|
||||
label: item.userName,
|
||||
disabled: false
|
||||
});
|
||||
}
|
||||
})
|
||||
this.visible = true
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.totalCount = 0
|
||||
}
|
||||
})
|
||||
},
|
||||
// 删除
|
||||
deleteHandle(userid) {
|
||||
|
||||
var userIds = userid ? [userid] : this.dataListSelections.map(item => item.id)
|
||||
this.$confirm(`确定操作?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
console.log(userIds)
|
||||
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/group/delete'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(userIds, false)
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
this.$message({
|
||||
message: data.msg,
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => this.getDataList()
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.edit_dev >>> .el-transfer-panel {
|
||||
width:250px;
|
||||
}
|
||||
</style>
|
|
@ -12,7 +12,7 @@
|
|||
<el-button v-if="isAuth('h5:user:delete')" type="danger" @click="deleteHandle()"
|
||||
:disabled="dataListSelections.length <= 0">批量删除
|
||||
</el-button>
|
||||
<a href="/static/web/a.xlsx" download="宿舍信息模板">
|
||||
<a href="/a.xlsx" download="宿舍信息模板">
|
||||
<el-button type="primary" style="margin: 0 10px">下载Excel模板</el-button>
|
||||
</a>
|
||||
<el-upload
|
||||
|
@ -63,7 +63,7 @@
|
|||
<el-table-column prop="dormitoryStatus" header-align="center" align="center" label="状态">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.dormitoryStatus === '1'" size="small" type="danger">已满</el-tag>
|
||||
<el-tag v-else size="small">没满</el-tag>
|
||||
<el-tag v-else size="small">可分配</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
|
||||
|
@ -193,7 +193,7 @@ export default {
|
|||
// 删除
|
||||
deleteHandle(userid) {
|
||||
var userIds = userid ? [userid] : this.dataListSelections.map(item => item.id)
|
||||
this.$confirm(`确定对[userid=${userIds.join(',')}]进行[${userid ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
this.$confirm(`确定操作?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
|
|
|
@ -0,0 +1,390 @@
|
|||
<template>
|
||||
<div class="mod-user">
|
||||
<el-form style="display: inline-block" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item style="width: 130px">
|
||||
<el-input v-model="dataForm.userMajorId" placeholder="用户专业ID" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
<!-- <el-button v-if="isAuth('h5:user:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>-->
|
||||
<!-- <el-button v-if="isAuth('h5:user:delete')" type="danger" @click="deleteHandle()"-->
|
||||
<!-- :disabled="dataListSelections.length <= 0">批量删除-->
|
||||
<!-- </el-button>-->
|
||||
</el-form-item>
|
||||
|
||||
<download-excel :stringifyLongNum="true" style="display: inline-block;" :fetch="getExportExcel" :fields="json_fields" :name='`邀请函信息.xls`'>
|
||||
<el-button type='primary'>导出</el-button>
|
||||
</download-excel>
|
||||
</el-form>
|
||||
|
||||
<el-dialog
|
||||
title="邀请函接收单位"
|
||||
:visible.sync="dialogVisible"
|
||||
width="30%"
|
||||
:before-close="handleClose">
|
||||
|
||||
<el-form :model="dataForm" ref="dataForm"
|
||||
label-width="120px">
|
||||
<el-form-item label="邀请函接收单位">
|
||||
<el-input v-model="dataForm.workNameQr" placeholder="邀请函接收单位"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="submitBut">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
|
||||
<el-table :data="dataList" border
|
||||
@sort-change="sortChange"
|
||||
@cell-click="handleCellClick"
|
||||
v-loading="dataListLoading" @selection-change="selectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
<!-- <el-table-column type="selection" header-align="center" align="center" width="50">-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column prop="userId" header-align="center" align="center" width="80" label="序号">
|
||||
<template slot-scope="scope">
|
||||
{{ (pageIndex - 1) * pageSize + scope.$index + 1 }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="userName" width="150" header-align="center" align="center" label="用户名">-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column sortable="custom" prop="userMajorId" header-align="center" align="center" width="150" label="用户专业ID">
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<!-- <el-table-column prop="mobile" header-align="center" align="center" label="手机号">-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column prop="identity" header-align="center" align="center" label="身份">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- {{ isIdentity(scope.row.identity) }}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column sortable="custom" prop="majorId" width="150" header-align="center" align="center" label="发函学院">
|
||||
<template slot-scope="scope">
|
||||
{{ isMajor(scope.row.majorId) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column sortable="custom" prop="workNameQr" header-align="center" align="center" >
|
||||
<template slot="header" slot-scope="scope">
|
||||
<div class="custom-header">邀请函接收单位 <span>(点击单元格可编辑)</span></div>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.seen">{{ scope.row.workNameQr }}</span>
|
||||
<el-input v-else v-model="scope.row.workNameQr" @blur="saveEdit(scope.row)"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column sortable="custom" prop="workName" header-align="center" align="center"
|
||||
label="受邀教师填写的工作单位">
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column-->
|
||||
<!-- prop="workName"-->
|
||||
<!-- label="Name">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <span v-if="scope.row.seen">{{ scope.row.workName }}</span>-->
|
||||
<!-- <el-input v-else v-model="scope.row.workName" @blur="saveEdit(scope.row)"></el-input>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
|
||||
<!-- <el-table-column prop="status" header-align="center" align="center" label="状态">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-tag v-if="scope.row.status === 0" size="small" type="danger">工作单位异常</el-tag>-->
|
||||
<!-- <el-tag v-else size="small">正常</el-tag>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column prop="userMajorId" header-align="center" align="center" label="用户专业ID">-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column-->
|
||||
<!-- header-align="center"-->
|
||||
<!-- align="center"-->
|
||||
<!-- prop="groupId"-->
|
||||
<!-- label="所属分组"-->
|
||||
<!-- :filters="groupIdes"-->
|
||||
<!-- :filter-method="filterTag"-->
|
||||
<!-- filter-placement="bottom-end">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- {{ getgroups(scope.row.groupId) }}-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column prop="status" header-align="center" align="center" label="状态">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-tag v-if="scope.row.status === 0" size="small" type="danger">禁用</el-tag>-->
|
||||
<!-- <el-tag v-else size="small">正常</el-tag>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <!– <el-button v-if="isAuth('h5:user:update')" type="text" size="small"–>-->
|
||||
<!-- <el-button type="text" size="small"-->
|
||||
<!-- @click="addOrUpdateHandle(scope.row)">修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button v-if="isAuth('h5:user:delete')" type="text" size="small"-->
|
||||
<!-- @click="deleteHandle(scope.row.id)">删除-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
</el-table>
|
||||
<el-pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle" :current-page="pageIndex"
|
||||
:page-sizes="[5,10, 20, 50, 100]" :page-size="pageSize" :total="totalCount"
|
||||
layout="total, sizes, prev, pager, next, jumper">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import myRequest from "@/views/modules/h5/myRequest";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
json_fields: {
|
||||
"姓名": "userName",
|
||||
"用户专业ID": "userMajorId",
|
||||
"身份码": "userId",
|
||||
"分组": "groupId",
|
||||
"邀请函接收单位": "workNameQr",
|
||||
"受邀请教师单位": "workName",
|
||||
},
|
||||
dialogVisible: false,
|
||||
// 自动生成账号
|
||||
autoGenerateForm: {
|
||||
// group:,
|
||||
// num: 1
|
||||
},
|
||||
autoGeneratButStatus: false,
|
||||
majors: [
|
||||
{
|
||||
id: 1,
|
||||
name: '语文',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '地理',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: '历史',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: '政治',
|
||||
value: 8,
|
||||
}],
|
||||
dataForm: {
|
||||
workNameQr: ''
|
||||
},
|
||||
temp: 0,
|
||||
dataList: [],
|
||||
pageIndex: 1,
|
||||
pageSize: 5,
|
||||
totalCount: 0,
|
||||
dataListLoading: false,
|
||||
dataListSelections: [],
|
||||
addOrUpdateVisible: false,
|
||||
groupIdes: [],
|
||||
}
|
||||
},
|
||||
components: {},
|
||||
activated() {
|
||||
this.getDataList()
|
||||
this.groupIdes = []
|
||||
// 获取分组
|
||||
myRequest.getGroupList(this)
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
/**
|
||||
* 自定义排序
|
||||
*/
|
||||
sortChange(colum){
|
||||
if (colum.order === 'ascending'){
|
||||
this.getDataList(colum.prop,colum.order)
|
||||
}else {
|
||||
this.getDataList(colum.prop,colum.order)
|
||||
}
|
||||
|
||||
},
|
||||
// Excel导出
|
||||
async getExportExcel(){
|
||||
let excelData=[]
|
||||
await this.$http({
|
||||
url: this.$http.adornUrl('/inv/export'),
|
||||
method: 'get',
|
||||
}).then(({data}) => {
|
||||
excelData=data
|
||||
// if (data && data.code === 200) {
|
||||
// console.log(data.list)
|
||||
// }
|
||||
})
|
||||
return excelData
|
||||
},
|
||||
handleCellClick(row, column, cell, event) {
|
||||
// 在这里处理右键点击单元格的逻辑
|
||||
if (column.property === 'workNameQr') {
|
||||
row.seen = false;
|
||||
// this.$set(row, 'seen', false);
|
||||
this.$nextTick(() => {
|
||||
const input = cell.querySelector('.el-input__inner');
|
||||
if (input) {
|
||||
input.focus();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
saveEdit(row) {
|
||||
row.seen = true;
|
||||
// 保存编辑后的数据
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/inv/update'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'id': row.id,
|
||||
'workNameQr': row.workNameQr,
|
||||
})
|
||||
}).then(({data}) => {
|
||||
this.dialogVisible = false
|
||||
if (data && data.code === 200) {
|
||||
this.getDataList()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 对话框关闭
|
||||
handleClose(done) {
|
||||
this.dataForm = {
|
||||
workNameQr: ''
|
||||
}
|
||||
this.$confirm('确认关闭?')
|
||||
.then(_ => {
|
||||
done();
|
||||
})
|
||||
.catch(_ => {
|
||||
});
|
||||
},
|
||||
// 更新
|
||||
submitBut() {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/inv/update'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'id': this.dataForm.id,
|
||||
'workNameQr': this.dataForm.workNameQr,
|
||||
})
|
||||
}).then(({data}) => {
|
||||
this.dialogVisible = false
|
||||
if (data && data.code === 200) {
|
||||
this.getDataList()
|
||||
}
|
||||
})
|
||||
},
|
||||
isMajor(majorId) {
|
||||
switch (majorId) {
|
||||
case 1:
|
||||
return '语文'
|
||||
case 4:
|
||||
return '地理'
|
||||
case 7:
|
||||
return '历史'
|
||||
case 8:
|
||||
return '政治'
|
||||
}
|
||||
},
|
||||
// 获取数据列表
|
||||
getDataList(prop='',sort='') {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/inv/list'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'userMajorId': this.dataForm.userMajorId,
|
||||
'prop': prop,
|
||||
'sort': sort
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
// this.dataList = data.page.list
|
||||
this.dataList=[]
|
||||
data.page.list.forEach((item) => {
|
||||
|
||||
this.dataList.push({...{seen: true},...item})
|
||||
})
|
||||
// console.log(this.dataList)
|
||||
|
||||
this.totalCount = data.page.totalCount
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.totalCount = 0
|
||||
}
|
||||
this.dataListLoading = false
|
||||
})
|
||||
},
|
||||
// 每页数
|
||||
sizeChangeHandle(val) {
|
||||
this.pageSize = val
|
||||
this.pageIndex = 1
|
||||
this.getDataList()
|
||||
},
|
||||
// 当前页
|
||||
currentChangeHandle(val) {
|
||||
this.pageIndex = val
|
||||
this.getDataList()
|
||||
},
|
||||
// 多选
|
||||
selectionChangeHandle(val) {
|
||||
this.dataListSelections = val
|
||||
},
|
||||
// 新增 / 修改
|
||||
addOrUpdateHandle(row) {
|
||||
this.dataForm = row
|
||||
this.dialogVisible = true
|
||||
},
|
||||
// 删除
|
||||
deleteHandle(userid) {
|
||||
var userIds = userid ? [userid] : this.dataListSelections.map(item => item.id)
|
||||
this.$confirm(`确定操作?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/h5/user/delete'),
|
||||
method: 'post',
|
||||
data: this.$http.adornData(userIds, false)
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => this.getDataList()
|
||||
})
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.custom-header span{
|
||||
color: red;
|
||||
}
|
||||
|
||||
</style>
|
|
@ -116,7 +116,7 @@ export default {
|
|||
console.log(data)
|
||||
if (data && data.code === 200) {
|
||||
this.dataForm.userName = data.user.userName
|
||||
this.dataForm.groupId = data.user.groupId
|
||||
this.dataForm.groupId = data.user.groupId== 0 ? '' : data.user.groupId
|
||||
this.dataForm.teacherId = data.user.teacherId
|
||||
this.dataForm.userId = data.user.userId
|
||||
this.dataForm.status = data.user.status
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div class="mod-user">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.userName" placeholder="用户身份码" clearable></el-input>
|
||||
<el-input v-model="dataForm.userName" placeholder="姓名" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
|
@ -11,8 +11,13 @@
|
|||
:disabled="dataListSelections.length <= 0">批量删除
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<download-excel :stringifyLongNum="true" style=" display: inline-block;" :fetch="getExportExcel" :fields="json_fields" :name='`本校老师信息.xls`'>
|
||||
<el-button type='primary'>导出</el-button>
|
||||
</download-excel>
|
||||
|
||||
</el-form>
|
||||
<el-table :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
|
||||
|
||||
<el-table @sort-change="sortChange" :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50">
|
||||
</el-table-column>
|
||||
|
@ -21,13 +26,13 @@
|
|||
{{ (pageIndex - 1) * pageSize + scope.$index + 1 }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="userId" header-align="center" align="center" width="100" label="用户身份码">
|
||||
<!-- <el-table-column prop="userId" header-align="center" align="center" width="100" label="用户身份码">-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column sortable="custom" prop="userName" header-align="center" align="center" label="姓名">
|
||||
</el-table-column>
|
||||
<el-table-column prop="userName" header-align="center" align="center" label="姓名">
|
||||
<el-table-column sortable="custom" prop="teacherId" header-align="center" align="center" label="工号">
|
||||
</el-table-column>
|
||||
<el-table-column prop="teacherId" header-align="center" align="center" label="工号">
|
||||
</el-table-column>
|
||||
<el-table-column prop="phone" header-align="center" align="center" label="手机号">
|
||||
<el-table-column sortable="custom" prop="phone" header-align="center" align="center" label="手机号">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="mobile" header-align="center" align="center" label="手机号">-->
|
||||
<!-- </el-table-column>-->
|
||||
|
@ -38,6 +43,7 @@
|
|||
<!-- </el-table-column>-->
|
||||
|
||||
<el-table-column
|
||||
|
||||
header-align="center"
|
||||
align="center"
|
||||
prop="groupId"
|
||||
|
@ -49,7 +55,7 @@
|
|||
{{ getgroups(scope.row.groupId) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" header-align="center" align="center" label="是否第一次阅卷">
|
||||
<el-table-column prop="status" header-align="center" align="center" label="是否第一次阅卷">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 1" size="small" type="danger">是</el-tag>
|
||||
<el-tag v-else size="small">否</el-tag>
|
||||
|
@ -94,6 +100,48 @@ export default {
|
|||
dataListSelections: [],
|
||||
addOrUpdateVisible: false,
|
||||
groupIdes: [],
|
||||
json_fields: {
|
||||
"序号": "index",
|
||||
"姓名": "userName",
|
||||
"身份码": "userId",
|
||||
"用户专业码": "userMajorId",
|
||||
"工号": "teacherId",
|
||||
"学科": {
|
||||
field: "majorId",
|
||||
callback: (value) => {
|
||||
// 定义major_id到对应文本的映射
|
||||
const majorMap = {
|
||||
1: "语文",
|
||||
4: "地理",
|
||||
7: "历史",
|
||||
8: "政治",
|
||||
};
|
||||
return majorMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
},
|
||||
"手机号": "phone",
|
||||
"分组": {
|
||||
field: "groupId",
|
||||
callback: (value) => {
|
||||
if (value=='0'){
|
||||
return ""
|
||||
}
|
||||
return this.groupIdMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
},
|
||||
"是否第一次阅卷": {
|
||||
field: "status",
|
||||
callback: (value) => {
|
||||
// 定义major_id到对应文本的映射
|
||||
const majorMap = {
|
||||
0: "否",
|
||||
1: "是",
|
||||
};
|
||||
return majorMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
}
|
||||
},
|
||||
groupIdMap:{},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
@ -103,27 +151,65 @@ export default {
|
|||
this.getDataList()
|
||||
this.groupIdes=[]
|
||||
// 获取分组
|
||||
myRequest.getGroupList(this)
|
||||
let groupList = myRequest.getGroupList(this);
|
||||
setTimeout(() => {
|
||||
groupList.forEach(item => {
|
||||
this.groupIdMap[item.id] = item.text;
|
||||
})
|
||||
},500)
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
/**
|
||||
* 自定义排序
|
||||
*/
|
||||
sortChange(colum){
|
||||
if (colum.order === 'ascending'){
|
||||
this.getDataList(colum.prop,colum.order)
|
||||
}else {
|
||||
this.getDataList(colum.prop,colum.order)
|
||||
}
|
||||
|
||||
},
|
||||
// Excel导出
|
||||
async getExportExcel(){
|
||||
let excelData=[]
|
||||
await this.$http({
|
||||
url: this.$http.adornUrl('/teach/export'),
|
||||
method: 'get',
|
||||
}).then(({data}) => {
|
||||
excelData = data.map((item, index) => {
|
||||
return { ...item, index: index + 1 }; // 添加序号字段
|
||||
});
|
||||
// if (data && data.code === 200) {
|
||||
// console.log(data.list)
|
||||
// }
|
||||
})
|
||||
return excelData
|
||||
},
|
||||
// isAuth,
|
||||
// 分组过滤
|
||||
filterTag(value, row) {
|
||||
return row.groupId === value;
|
||||
},
|
||||
getgroups(id) {
|
||||
try {
|
||||
let groupIdes = this.groupIdes
|
||||
return groupIdes[id - 1].text
|
||||
}catch (e) {
|
||||
// console.log(e)
|
||||
return "未分组"
|
||||
}
|
||||
|
||||
let groupName=''
|
||||
// console.log(this.groupIdesShow[id])
|
||||
this.groupIdesShow.forEach(item => {
|
||||
if (item.id === id){
|
||||
groupName= item.name
|
||||
}
|
||||
})
|
||||
return groupName
|
||||
// try {
|
||||
//
|
||||
// } catch (e) {
|
||||
// console.log(e)
|
||||
// return "未分组"
|
||||
// }
|
||||
},
|
||||
// 获取数据列表
|
||||
getDataList() {
|
||||
getDataList(prop='',sort='') {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/teach/list'),
|
||||
|
@ -131,7 +217,9 @@ export default {
|
|||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'userId': this.dataForm.userName
|
||||
'userName': this.dataForm.userName,
|
||||
'prop': prop,
|
||||
'sort': sort
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
|
@ -169,7 +257,8 @@ export default {
|
|||
// 删除
|
||||
deleteHandle(userid) {
|
||||
var userIds = userid ? [userid] : this.dataListSelections.map(item => item.id)
|
||||
this.$confirm(`确定对[userid=${userIds.join(',')}]进行[${userid ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
// this.$confirm(`确定对[userid=${userIds.join(',')}]进行[${userid ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
this.$confirm(`确定操作?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
|
|
|
@ -5,6 +5,7 @@ export default {
|
|||
method: 'get',
|
||||
params: _this.$http.adornParams()
|
||||
}).then(res => {
|
||||
_this.groupIdesShow =res.data.list
|
||||
res.data.list.forEach(item => {
|
||||
_this.groupIdes.push({
|
||||
text: item.name,
|
||||
|
@ -13,6 +14,7 @@ export default {
|
|||
})
|
||||
})
|
||||
})
|
||||
return _this.groupIdes
|
||||
},
|
||||
getGroupList2(_this) {
|
||||
return(
|
||||
|
|
|
@ -116,7 +116,7 @@ export default {
|
|||
console.log(data)
|
||||
if (data && data.code === 200) {
|
||||
this.dataForm.userName = data.user.userName
|
||||
this.dataForm.groupId = data.user.groupId
|
||||
this.dataForm.groupId = data.user.groupId== 0 ? '' : data.user.groupId
|
||||
this.dataForm.studentId = data.user.studentId
|
||||
this.dataForm.userId = data.user.userId
|
||||
this.dataForm.status = data.user.status
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div class="mod-user">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.userName" placeholder="用户身份码" clearable></el-input>
|
||||
<el-input v-model="dataForm.userName" placeholder="姓名" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
|
@ -11,8 +11,11 @@
|
|||
:disabled="dataListSelections.length <= 0">批量删除
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<download-excel :stringifyLongNum="true" style=" display: inline-block;" :fetch="getExportExcel" :fields="json_fields" :name='`研究生信息导出.xls`'>
|
||||
<el-button type='primary'>导出</el-button>
|
||||
</download-excel>
|
||||
</el-form>
|
||||
<el-table :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
|
||||
<el-table @sort-change="sortChange" :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50">
|
||||
</el-table-column>
|
||||
|
@ -21,13 +24,13 @@
|
|||
{{ (pageIndex - 1) * pageSize + scope.$index + 1 }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="userId" header-align="center" align="center" width="100" label="用户身份码">
|
||||
<!-- <el-table-column prop="userId" header-align="center" align="center" width="100" label="用户身份码">-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column sortable="custom" prop="userName" header-align="center" align="center" label="学生名">
|
||||
</el-table-column>
|
||||
<el-table-column prop="userName" header-align="center" align="center" label="学生名">
|
||||
<el-table-column sortable="custom" prop="studentId" header-align="center" align="center" label="学号">
|
||||
</el-table-column>
|
||||
<el-table-column prop="studentId" header-align="center" align="center" label="学号">
|
||||
</el-table-column>
|
||||
<el-table-column prop="phone" header-align="center" align="center" label="手机号">
|
||||
<el-table-column sortable="custom" prop="phone" header-align="center" align="center" label="手机号">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="mobile" header-align="center" align="center" label="手机号">-->
|
||||
<!-- </el-table-column>-->
|
||||
|
@ -51,7 +54,7 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="status" header-align="center" align="center" label="是否第一次阅卷">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 1" size="small" >是</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" size="small" >是</el-tag>
|
||||
<el-tag v-else size="small" type="danger">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -95,6 +98,48 @@ export default {
|
|||
dataListSelections: [],
|
||||
addOrUpdateVisible: false,
|
||||
groupIdes: [],
|
||||
json_fields: {
|
||||
"序号":"index",
|
||||
"姓名": "userName",
|
||||
"身份码": "userId",
|
||||
"用户专业码": "userMajorId",
|
||||
"学号": "studentId",
|
||||
"学科": {
|
||||
field: "majorId",
|
||||
callback: (value) => {
|
||||
// 定义major_id到对应文本的映射
|
||||
const majorMap = {
|
||||
1: "语文",
|
||||
4: "地理",
|
||||
7: "历史",
|
||||
8: "政治",
|
||||
};
|
||||
return majorMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
},
|
||||
"手机号": "phone",
|
||||
"分组": {
|
||||
field: "groupId",
|
||||
callback: (value) => {
|
||||
if (value=='0'){
|
||||
return ""
|
||||
}
|
||||
return this.groupIdMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
},
|
||||
"是否第一次阅卷": {
|
||||
field: "status",
|
||||
callback: (value) => {
|
||||
// 定义major_id到对应文本的映射
|
||||
const majorMap = {
|
||||
0: "否",
|
||||
1: "是",
|
||||
};
|
||||
return majorMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
}
|
||||
},
|
||||
groupIdMap:{},
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
@ -104,27 +149,62 @@ export default {
|
|||
this.getDataList()
|
||||
this.groupIdes=[]
|
||||
// 获取分组
|
||||
myRequest.getGroupList(this)
|
||||
let groupList = myRequest.getGroupList(this);
|
||||
setTimeout(() => {
|
||||
groupList.forEach(item => {
|
||||
this.groupIdMap[item.id] = item.text;
|
||||
})
|
||||
},500)
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
/**
|
||||
* 自定义排序
|
||||
*/
|
||||
sortChange(colum){
|
||||
if (colum.order === 'ascending'){
|
||||
this.getDataList(colum.prop,colum.order)
|
||||
}else {
|
||||
this.getDataList(colum.prop,colum.order)
|
||||
}
|
||||
|
||||
},
|
||||
// Excel导出
|
||||
async getExportExcel(){
|
||||
let excelData=[]
|
||||
await this.$http({
|
||||
url: this.$http.adornUrl('/stu/export'),
|
||||
method: 'get',
|
||||
}).then(({data}) => {
|
||||
excelData = data.map((item, index) => {
|
||||
return { ...item, index: index + 1 }; // 添加序号字段
|
||||
});
|
||||
})
|
||||
return excelData
|
||||
},
|
||||
// isAuth,
|
||||
// 分组过滤
|
||||
filterTag(value, row) {
|
||||
return row.groupId === value;
|
||||
},
|
||||
getgroups(id) {
|
||||
try {
|
||||
let groupIdes = this.groupIdes
|
||||
return groupIdes[id - 1].text
|
||||
}catch (e) {
|
||||
// console.log(e)
|
||||
return "未分组"
|
||||
}
|
||||
|
||||
let groupName=''
|
||||
// console.log(this.groupIdesShow[id])
|
||||
this.groupIdesShow.forEach(item => {
|
||||
if (item.id === id){
|
||||
groupName= item.name
|
||||
}
|
||||
})
|
||||
return groupName
|
||||
// try {
|
||||
//
|
||||
// } catch (e) {
|
||||
// console.log(e)
|
||||
// return "未分组"
|
||||
// }
|
||||
},
|
||||
// 获取数据列表
|
||||
getDataList() {
|
||||
getDataList(prop='',sort='') {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/stu/list'),
|
||||
|
@ -132,7 +212,9 @@ export default {
|
|||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'userId': this.dataForm.userName
|
||||
'userName': this.dataForm.userName,
|
||||
'prop': prop,
|
||||
'sort': sort
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
|
@ -170,7 +252,8 @@ export default {
|
|||
// 删除
|
||||
deleteHandle(userid) {
|
||||
var userIds = userid ? [userid] : this.dataListSelections.map(item => item.id)
|
||||
this.$confirm(`确定对[userid=${userIds.join(',')}]进行[${userid ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
// this.$confirm(`确定对[userid=${userIds.join(',')}]进行[${userid ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
this.$confirm(`确定操作?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
|
|
|
@ -5,17 +5,24 @@
|
|||
<el-form-item v-if="!dataForm.id ? true : false" label="身份码" prop="userId">
|
||||
<el-input v-model="dataForm.userId" placeholder="登录帐号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户名" >
|
||||
<el-form-item label="用户名">
|
||||
<el-input v-model="dataForm.userName" placeholder="用户名"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="!dataForm.id ? true : false" label="身份">
|
||||
<el-select v-model="dataForm.identity" placeholder="身份">
|
||||
<el-option v-for="(name,key) in identityes" :key="key+1" :value="key+1" :label="name"></el-option>
|
||||
<el-option v-for="item in identityes" :key="item.id" :value="item.value" :label="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="!dataForm.id ? true : false" label="学科">
|
||||
<el-select v-model="dataForm.userMajorId" placeholder="学科">
|
||||
<el-option v-for="item in majors" :key="item.id" :value="item.value" :label="item.name"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属组">
|
||||
<el-select v-model="dataForm.groupId" placeholder="所属组">
|
||||
<el-option v-for="item in groupIdes" :key="item.id" :value="item.id" :label="item.name">{{item.name}}</el-option>
|
||||
<el-option v-for="item in groupIdes" :key="item.id" :value="item.id" :label="item.name">
|
||||
{{ item.name }}
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" size="mini" prop="status">
|
||||
|
@ -60,11 +67,52 @@ export default {
|
|||
id: 0,
|
||||
userName: '',
|
||||
groupId: '',
|
||||
identity: '',
|
||||
identity: 3,
|
||||
userId: '',
|
||||
userMajorId: 1,
|
||||
status: 0
|
||||
},
|
||||
identityes: ['管理员', '研究生', '本校老师', '外校老师'],
|
||||
majors: [
|
||||
{
|
||||
id: 1,
|
||||
name: '语文',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '地理',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: '历史',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: '政治',
|
||||
value: 8,
|
||||
}],
|
||||
identityes: [
|
||||
// {
|
||||
// id: 1,
|
||||
// name: '管理员',
|
||||
// value: 2,
|
||||
// },
|
||||
{
|
||||
id: 2,
|
||||
name: '研究生',
|
||||
value: 3,
|
||||
}, {
|
||||
id: 3,
|
||||
name: '本校老师',
|
||||
value: 6,
|
||||
}, {
|
||||
id: 4,
|
||||
name: '外校老师',
|
||||
value: 9,
|
||||
}
|
||||
],
|
||||
groupIdes: [],
|
||||
dataRule: {
|
||||
userName: [
|
||||
|
@ -85,7 +133,7 @@ export default {
|
|||
myRequest.getGroupList2(this).then(res => {
|
||||
this.groupIdes = res.data.list
|
||||
})
|
||||
if (id==undefined){
|
||||
if (id == undefined) {
|
||||
this.dataForm.userId = ''
|
||||
this.dataForm.userName = ''
|
||||
this.dataForm.groupId = ''
|
||||
|
@ -115,7 +163,7 @@ export default {
|
|||
console.log(data)
|
||||
if (data && data.code === 200) {
|
||||
this.dataForm.userName = data.user.userName
|
||||
this.dataForm.groupId = data.user.groupId
|
||||
this.dataForm.groupId = data.user.groupId == 0 ? '' : data.user.groupId
|
||||
this.dataForm.identity = data.user.identity
|
||||
this.dataForm.userId = data.user.userId
|
||||
this.dataForm.status = data.user.status
|
||||
|
@ -132,11 +180,12 @@ export default {
|
|||
url: this.$http.adornUrl(`/h5/user/${!this.dataForm.id ? 'save' : 'update'}`),
|
||||
method: 'post',
|
||||
data: this.$http.adornData({
|
||||
'id':this.dataForm.id,
|
||||
'id': this.dataForm.id,
|
||||
'userName': this.dataForm.userName,
|
||||
'groupId': this.dataForm.groupId,
|
||||
'identity': this.dataForm.identity,
|
||||
'userId': this.dataForm.userId,
|
||||
'userMajorId': this.dataForm.userMajorId,
|
||||
'status': this.dataForm.status,
|
||||
})
|
||||
}).then(({data}) => {
|
||||
|
|
|
@ -1,8 +1,16 @@
|
|||
<template>
|
||||
<div class="mod-user">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.userName" placeholder="用户身份码" clearable></el-input>
|
||||
<el-form style="display: inline-block" :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<!-- <el-select style="width: 100px" v-model="searchValue" placeholder="请选择">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in searchOptions"-->
|
||||
<!-- :key="item.value"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<el-form-item style="width: 130px">
|
||||
<el-input v-model="dataForm.userName" placeholder="姓名" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
|
@ -11,8 +19,76 @@
|
|||
:disabled="dataListSelections.length <= 0">批量删除
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<download-excel :stringifyLongNum="true" :fetch="getExportExcel" :fields="json_fields"
|
||||
style="float: right;margin-right: 2px;margin-left: -3px" :name='`人员基本数据.xls`'>
|
||||
<el-button type='primary'>导出</el-button>
|
||||
</download-excel>
|
||||
</el-form>
|
||||
<el-table :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
|
||||
<el-switch
|
||||
v-if="isAuth('sys:user:list')"
|
||||
v-show="!isShowAutho"
|
||||
v-model="isShowAutho"
|
||||
active-text="账号生成">
|
||||
</el-switch>
|
||||
<!-- 自动生成账号功能-->
|
||||
<el-form v-if="isShowAutho" label-width="100px" style="display: inline-block" :inline="true"
|
||||
:model="autoGenerateForm"
|
||||
@keyup.enter.native="beginAutoGenerate">
|
||||
|
||||
<el-form-item style="width: 130px" v-if="isAuth('sys:user:list')">
|
||||
<el-select v-model="autoGenerateForm.group" placeholder="账号类型">
|
||||
<el-option v-for="item in autoGeneratType" :key="item.id" :value="item.value" :label="item.name">
|
||||
{{ item.name }}
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 130px" v-if="isAuth('sys:user:list')">
|
||||
<el-select v-model="autoGenerateForm.majorId" placeholder="专业">
|
||||
<el-option v-for="item in majors" :key="item.id" :value="item.value" :label="item.name">
|
||||
{{ item.name }}
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 130px" v-if="isAuth('sys:user:list')">
|
||||
<el-input v-model="autoGenerateForm.num" type="number" placeholder="账号数量"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="isAuth('sys:user:list')">
|
||||
<el-button :disabled="autoGeneratButStatus" type="primary" @click="beginAutoGenerate">开始生成
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
||||
<el-upload
|
||||
v-if="isAuth('sys:user:list')"
|
||||
style="float: right;margin-left: 5px"
|
||||
class="upload-demo"
|
||||
ref="upload"
|
||||
action="/h5/user/upload"
|
||||
:on-preview="handlePreview"
|
||||
:on-success="uploadSuccess"
|
||||
:on-error="uploadError"
|
||||
:before-upload="beforeUpload"
|
||||
:on-remove="handleRemove"
|
||||
:file-list="fileList"
|
||||
accept=".xls,.xlsx"
|
||||
:auto-upload="false"
|
||||
:limit="1"
|
||||
>
|
||||
|
||||
<el-button slot="trigger" type="primary">选取</el-button>
|
||||
<el-button style="margin-left: 10px;" type="success" @click="submitUpload">
|
||||
上传到服务器
|
||||
</el-button>
|
||||
<div slot="tip" class="el-upload__tip">只能上传excel文件</div>
|
||||
</el-upload>
|
||||
|
||||
|
||||
<el-table :data="dataList"
|
||||
@sort-change="sortChange"
|
||||
@cell-click="handleCellClick"
|
||||
border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50">
|
||||
</el-table-column>
|
||||
|
@ -21,19 +97,28 @@
|
|||
{{ (pageIndex - 1) * pageSize + scope.$index + 1 }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="userId" header-align="center" align="center" width="100" label="用户身份码">
|
||||
<el-table-column v-if="isAuth('sys:user:list')" prop="userId" header-align="center" align="center"
|
||||
width="100" label="用户身份码">
|
||||
</el-table-column>
|
||||
<el-table-column prop="userName" header-align="center" align="center" label="用户名">
|
||||
<el-table-column sortable="custom" prop="userName" header-align="center" align="center" label="用户名">
|
||||
</el-table-column>
|
||||
<el-table-column sortable="custom" prop="userMajorId" header-align="center" align="center"
|
||||
label="用户专业ID">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="mobile" header-align="center" align="center" label="手机号">-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column prop="identity" header-align="center" align="center" label="身份">
|
||||
<el-table-column sortable="custom" prop="identity" header-align="center" align="center" label="身份">
|
||||
<template slot-scope="scope">
|
||||
{{ isIdentity(scope.row.identity) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column sortable="custom" prop="majorId" header-align="center" align="center" label="学科">
|
||||
<template slot-scope="scope">
|
||||
{{ isMajor(scope.row.majorId) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
prop="groupId"
|
||||
|
@ -45,12 +130,23 @@
|
|||
{{ getgroups(scope.row.groupId) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" header-align="center" align="center" label="状态">
|
||||
|
||||
<el-table-column sortable="custom" prop="workload" header-align="center" align="center">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<div class="custom-header">工作量<span>(点击单元格可编辑)</span></div>
|
||||
</template>
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 0" size="small" type="danger">禁用</el-tag>
|
||||
<el-tag v-else size="small">正常</el-tag>
|
||||
<span v-if="scope.row.seen">{{ scope.row.workload == 0 ? '' : scope.row.workload }}</span>
|
||||
<el-input v-else v-model="scope.row.workload" @blur="saveEdit(scope.row)"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<!-- <el-table-column prop="status" header-align="center" align="center" label="状态">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-tag v-if="scope.row.status === 0" size="small" type="danger">禁用</el-tag>-->
|
||||
<!-- <el-tag v-else size="small">正常</el-tag>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="isAuth('h5:user:update')" type="text" size="small"
|
||||
|
@ -78,10 +174,126 @@ import myRequest from "@/views/modules/h5/myRequest";
|
|||
export default {
|
||||
data() {
|
||||
return {
|
||||
// searchOptions: [{
|
||||
// value: 'userName',
|
||||
// label: '用户名'
|
||||
// },{
|
||||
// value: 'userMajorId',
|
||||
// label: '用户专业ID'
|
||||
// },{
|
||||
// value: 'identity',
|
||||
// label: '身份'
|
||||
// }, {
|
||||
// value: 'majorId',
|
||||
// label: '学科'
|
||||
// },],
|
||||
// searchValue: 'userName',
|
||||
|
||||
isShowAutho: false,
|
||||
json_fields: {
|
||||
"序号": "index",
|
||||
"姓名": "userName",
|
||||
"身份码": "userId",
|
||||
"用户专业码": "userMajorId",
|
||||
"身份": {
|
||||
field: "identity",
|
||||
callback: (value) => {
|
||||
// 定义major_id到对应文本的映射
|
||||
const majorMap = {
|
||||
2: "管理员",
|
||||
3: "研究生",
|
||||
6: "本校老师",
|
||||
9: "外校老师",
|
||||
};
|
||||
return majorMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
},
|
||||
"学科": {
|
||||
field: "majorId",
|
||||
callback: (value) => {
|
||||
// 定义major_id到对应文本的映射
|
||||
const majorMap = {
|
||||
1: "语文",
|
||||
4: "地理",
|
||||
7: "历史",
|
||||
8: "政治",
|
||||
};
|
||||
return majorMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
},
|
||||
"工作量": {
|
||||
field: "workload",
|
||||
callback: (value) => {
|
||||
if (value == '0') {
|
||||
return ""
|
||||
}
|
||||
return value; // 返回对应的文本
|
||||
},
|
||||
},
|
||||
"分组": {
|
||||
field: "groupId",
|
||||
callback: (value) => {
|
||||
if (value == '0') {
|
||||
return ""
|
||||
}
|
||||
return this.groupIdMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
groupIdMap: {},
|
||||
fileList: [],
|
||||
// 自动生成账号
|
||||
autoGenerateForm: {
|
||||
// group:,
|
||||
// num: 1
|
||||
},
|
||||
autoGeneratButStatus: false,
|
||||
autoGeneratType: [
|
||||
// {
|
||||
// id: 1,
|
||||
// name: '管理员',
|
||||
// value: 2,
|
||||
// },
|
||||
{
|
||||
id: 2,
|
||||
name: '研究生',
|
||||
value: 3,
|
||||
}, {
|
||||
id: 3,
|
||||
name: '本校老师',
|
||||
value: 6,
|
||||
}, {
|
||||
id: 4,
|
||||
name: '外校老师',
|
||||
value: 9,
|
||||
}
|
||||
],
|
||||
majors: [
|
||||
{
|
||||
id: 1,
|
||||
name: '语文',
|
||||
value: 1,
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: '地理',
|
||||
value: 4,
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: '历史',
|
||||
value: 7,
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: '政治',
|
||||
value: 8,
|
||||
}],
|
||||
dataForm: {
|
||||
userName: ''
|
||||
},
|
||||
temp:0,
|
||||
temp: 0,
|
||||
dataList: [],
|
||||
pageIndex: 1,
|
||||
pageSize: 5,
|
||||
|
@ -90,47 +302,214 @@ export default {
|
|||
dataListSelections: [],
|
||||
addOrUpdateVisible: false,
|
||||
groupIdes: [],
|
||||
groupIdesShow: [],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
AddOrUpdate
|
||||
},
|
||||
activated() {
|
||||
this.isShowAutho = false
|
||||
this.getDataList()
|
||||
this.groupIdes=[]
|
||||
this.groupIdes = []
|
||||
// 获取分组
|
||||
myRequest.getGroupList(this)
|
||||
let groupList = myRequest.getGroupList(this);
|
||||
setTimeout(() => {
|
||||
groupList.forEach(item => {
|
||||
this.groupIdMap[item.id] = item.text;
|
||||
})
|
||||
|
||||
}, 500)
|
||||
|
||||
//
|
||||
|
||||
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
// 分组过滤
|
||||
filterTag(value, row) {
|
||||
return row.groupId === value;
|
||||
},
|
||||
getgroups(id) {
|
||||
try {
|
||||
let groupIdes = this.groupIdes
|
||||
return groupIdes[id - 1].text
|
||||
}catch (e) {
|
||||
// console.log(e)
|
||||
return "未分组"
|
||||
/**
|
||||
* 自定义排序
|
||||
*/
|
||||
sortChange(colum) {
|
||||
if (colum.order === 'ascending') {
|
||||
this.getDataList(colum.prop, colum.order)
|
||||
} else {
|
||||
this.getDataList(colum.prop, colum.order)
|
||||
}
|
||||
|
||||
},
|
||||
handleCellClick(row, column, cell, event) {
|
||||
// 在这里处理右键点击单元格的逻辑
|
||||
if (column.property === 'workload') {
|
||||
row.seen = false;
|
||||
// this.$set(row, 'seen', false);
|
||||
this.$nextTick(() => {
|
||||
const input = cell.querySelector('.el-input__inner');
|
||||
if (input) {
|
||||
input.focus();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
saveEdit(row) {
|
||||
row.seen = true;
|
||||
if (row.workload == '') {
|
||||
row.workload = 0
|
||||
}
|
||||
// 保存编辑后的数据
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/h5/user/workload'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'id': row.id,
|
||||
'workload': row.workload,
|
||||
})
|
||||
}).then(({data}) => {
|
||||
this.dialogVisible = false
|
||||
if (data && data.code === 200) {
|
||||
this.getDataList()
|
||||
}
|
||||
})
|
||||
},
|
||||
// Excel导出
|
||||
async getExportExcel() {
|
||||
// console.log(this.groupIdMap)
|
||||
let excelData = []
|
||||
await this.$http({
|
||||
url: this.$http.adornUrl('/h5/user/export'),
|
||||
method: 'get',
|
||||
}).then(({data}) => {
|
||||
excelData = data.map((item, index) => {
|
||||
return {...item, index: index + 1}; // 添加序号字段
|
||||
});
|
||||
// excelData=data
|
||||
// if (data && data.code === 200) {
|
||||
// console.log(data.list)
|
||||
// }
|
||||
})
|
||||
return excelData
|
||||
},
|
||||
beginAutoGenerate() {
|
||||
console.log(this.autoGenerateForm)
|
||||
console.log(this.autoGenerateForm.group)
|
||||
console.log(this.autoGenerateForm.num)
|
||||
if (this.autoGenerateForm.group == undefined) {
|
||||
this.$message({
|
||||
message: '请选择身份',
|
||||
type: 'warning',
|
||||
duration: 1500
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.autoGenerateForm.majorId == undefined) {
|
||||
this.$message({
|
||||
message: '请选择专业',
|
||||
type: 'warning',
|
||||
duration: 1500
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.autoGenerateForm.num == undefined) {
|
||||
this.$message({
|
||||
message: '请输入账号数量',
|
||||
type: 'warning',
|
||||
duration: 1500
|
||||
})
|
||||
return
|
||||
}
|
||||
// 账号数量小于500并且大于0
|
||||
if (this.autoGenerateForm.num <= 0) {
|
||||
this.$message({
|
||||
message: '账号数量不能小于0',
|
||||
type: 'warning',
|
||||
duration: 1500
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.autoGenerateForm.num > 500) {
|
||||
this.$message({
|
||||
message: '单次生成账号数量不能大于500',
|
||||
type: 'warning',
|
||||
duration: 1500
|
||||
})
|
||||
return
|
||||
}
|
||||
// 发送Ajax请求生成账号
|
||||
this.autoGeneratButStatus = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/h5/user/autoId'),
|
||||
method: 'get',
|
||||
params: this.$http.adornParams({
|
||||
'groupType': this.autoGenerateForm.group,
|
||||
'num': this.autoGenerateForm.num,
|
||||
'majorId': this.autoGenerateForm.majorId,
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
this.$message({
|
||||
message: '操作成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
// onClose: () => {
|
||||
// this.visible = false
|
||||
// this.$emit('refreshDataList')
|
||||
// }
|
||||
})
|
||||
}
|
||||
this.autoGenerateForm = {}
|
||||
this.autoGeneratButStatus = false
|
||||
console.log(data)
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
// 分组过滤
|
||||
filterTag(value, row) {
|
||||
console.log(value)
|
||||
return row.groupId === value;
|
||||
},
|
||||
getgroups(id) {
|
||||
let groupName = ''
|
||||
// console.log(this.groupIdesShow[id])
|
||||
this.groupIdesShow.forEach(item => {
|
||||
if (item.id === id) {
|
||||
groupName = item.name
|
||||
}
|
||||
})
|
||||
return groupName
|
||||
// try {
|
||||
//
|
||||
// } catch (e) {
|
||||
// console.log(e)
|
||||
// return "未分组"
|
||||
// }
|
||||
},
|
||||
isIdentity(identity) {
|
||||
switch (identity) {
|
||||
case 1:
|
||||
return '管理员'
|
||||
case 2:
|
||||
return '研究生'
|
||||
return '管理员'
|
||||
case 3:
|
||||
return '研究生'
|
||||
case 6:
|
||||
return '本校老师'
|
||||
case 4:
|
||||
case 9:
|
||||
return '外校老师'
|
||||
}
|
||||
},
|
||||
isMajor(majorId) {
|
||||
switch (majorId) {
|
||||
case 1:
|
||||
return '语文'
|
||||
case 4:
|
||||
return '地理'
|
||||
case 7:
|
||||
return '历史'
|
||||
case 8:
|
||||
return '政治'
|
||||
}
|
||||
},
|
||||
// 获取数据列表
|
||||
getDataList() {
|
||||
getDataList(prop = '', sort = '') {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/h5/user/list'),
|
||||
|
@ -138,17 +517,33 @@ export default {
|
|||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'userId': this.dataForm.userName
|
||||
'userId': this.dataForm.userName,
|
||||
'userName': this.dataForm.userName,
|
||||
'prop': prop,
|
||||
'sort': sort
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
this.dataList = data.page.list
|
||||
// this.dataList = data.page.list
|
||||
this.dataList = []
|
||||
data.page.list.forEach((item) => {
|
||||
|
||||
this.dataList.push({...{seen: true}, ...item})
|
||||
})
|
||||
// console.log(this.dataList)
|
||||
this.totalCount = data.page.totalCount
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.totalCount = 0
|
||||
}
|
||||
this.dataListLoading = false
|
||||
// this.dataList = data.page.list
|
||||
// this.totalCount = data.page.totalCount
|
||||
// } else {
|
||||
// this.dataList = []
|
||||
// this.totalCount = 0
|
||||
// }
|
||||
// this.dataListLoading = false
|
||||
})
|
||||
},
|
||||
// 每页数
|
||||
|
@ -176,7 +571,8 @@ export default {
|
|||
// 删除
|
||||
deleteHandle(userid) {
|
||||
var userIds = userid ? [userid] : this.dataListSelections.map(item => item.id)
|
||||
this.$confirm(`确定对[userid=${userIds.join(',')}]进行[${userid ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
// this.$confirm(`确定对[userid=${userIds.join(',')}]进行[${userid ? '删除' : '批量删除'}]操作?`, '提示', {
|
||||
this.$confirm(`确定删除操作?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
|
@ -199,7 +595,63 @@ export default {
|
|||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
|
||||
// 文件上传
|
||||
//文件上传相关的
|
||||
submitUpload() {
|
||||
if (this.$refs.upload.uploadFiles.length == 0) {
|
||||
this.$message({
|
||||
message: '请选择Excel文件',
|
||||
type: 'error',
|
||||
duration: 1500,
|
||||
onClose: () => this.getDataList()
|
||||
})
|
||||
return;
|
||||
}
|
||||
this.$refs.upload.submit();
|
||||
this.loading = this.$loading({
|
||||
lock: true,
|
||||
text: '文件上传中请耐心等待。。。',
|
||||
spinner: 'el-icon-loading',
|
||||
background: 'rgba(0, 0, 0, 0.7)'
|
||||
});
|
||||
},
|
||||
handleRemove(file, fileList) {
|
||||
console.log(file, fileList);
|
||||
},
|
||||
handlePreview(file) {
|
||||
console.log(file);
|
||||
},
|
||||
uploadSuccess() {
|
||||
this.loading.close();
|
||||
this.$refs.upload.clearFiles()
|
||||
this.$message({
|
||||
message: '上传成功',
|
||||
type: 'success',
|
||||
duration: 1500,
|
||||
onClose: () => this.getDataList()
|
||||
})
|
||||
|
||||
},
|
||||
uploadError() {
|
||||
this.$refs.upload.clearFiles()
|
||||
this.$message({
|
||||
message: '上传失败',
|
||||
type: 'error',
|
||||
duration: 1500,
|
||||
onClose: () => this.getDataList()
|
||||
})
|
||||
},
|
||||
beforeUpload(file) {
|
||||
// console.log(file)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.custom-header span {
|
||||
color: red;
|
||||
}
|
||||
</style>
|
|
@ -11,6 +11,12 @@
|
|||
<el-form-item label="身份证号">
|
||||
<el-input v-model="dataForm.identityId" placeholder="身份证号码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="年龄">
|
||||
<el-input v-model="dataForm.age" placeholder="年龄"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="性别">
|
||||
<el-input v-model="dataForm.sex" placeholder="性别"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号">
|
||||
<el-input v-model="dataForm.phone" placeholder="手机号"></el-input>
|
||||
</el-form-item>
|
||||
|
@ -40,16 +46,20 @@
|
|||
<el-form-item label="车牌号">
|
||||
<el-input v-model="dataForm.carNumber" placeholder="请输入车牌号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="宿舍信息">
|
||||
<el-input v-model="dataForm.dormitory" placeholder="请输入宿舍信息"></el-input>
|
||||
<el-form-item label="饭卡号">
|
||||
<el-input v-model="dataForm.mealCard" placeholder="饭卡号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属组">
|
||||
<!-- <el-form-item label="宿舍信息">-->
|
||||
<!-- <el-input v-model="dataForm.dormitory" placeholder="请输入宿舍信息"></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="所属组" v-model="dataForm.groupId" >
|
||||
<el-select v-model="dataForm.groupId" placeholder="所属组">
|
||||
<el-option v-for="item in groupIdes" :key="item.id" :value="item.id" :label="item.name">
|
||||
{{ item.name }}
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label-width="100" label="是否住宿" size="mini" prop="dormitoryStatus">
|
||||
<el-radio-group v-model="dataForm.dormitoryStatus">
|
||||
<el-radio :label="1">是</el-radio>
|
||||
|
@ -81,6 +91,8 @@ import {is8Number, isMobile} from '@/utils/validate'
|
|||
import myRequest from "@/views/modules/h5/myRequest";
|
||||
|
||||
export default {
|
||||
|
||||
|
||||
data() {
|
||||
var validateuserId = (rule, value, callback) => {
|
||||
if (!is8Number(value)) {
|
||||
|
@ -97,7 +109,6 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
visible: false,
|
||||
roleList: [],
|
||||
|
@ -112,11 +123,14 @@ export default {
|
|||
identityId: '',
|
||||
jobTitle: '',
|
||||
office: '',
|
||||
age: '',
|
||||
sex: '',
|
||||
workName: '',
|
||||
workPhone: '',
|
||||
pyCard: '',
|
||||
carNumber: '',
|
||||
carStatus: 0,
|
||||
mealCard: '',
|
||||
dormitory: '',
|
||||
dormitoryStatus: 0,
|
||||
bankAddress: '',
|
||||
|
@ -124,11 +138,10 @@ export default {
|
|||
},
|
||||
identityes: ['管理员', '研究生', '本校老师', '外校老师'],
|
||||
columns: [
|
||||
{text: '教师1', value: '教师1'},
|
||||
{text: '教师2', value: '教师2'},
|
||||
{text: '教师2', value: '教师2'},
|
||||
{text: '教师3', value: '教师3'},
|
||||
{text: '教师4', value: '教师4'},
|
||||
{text: '正高级教师', value: '正高级教师'},
|
||||
{text: '高级教师', value: '高级教师'},
|
||||
{text: '一级教师', value: '一级教师'},
|
||||
{text: '二级教师', value: '二级教师'},
|
||||
],
|
||||
groupIdes: [],
|
||||
dataRule: {
|
||||
|
@ -178,7 +191,7 @@ export default {
|
|||
console.log(data)
|
||||
if (data && data.code === 200) {
|
||||
this.dataForm.userName = data.user.userName
|
||||
this.dataForm.groupId = data.user.groupId
|
||||
this.dataForm.groupId = data.user.groupId==0?'':data.user.groupId
|
||||
this.dataForm.userId = data.user.userId
|
||||
this.dataForm.phone = data.user.phone
|
||||
this.dataForm.jobTitle = data.user.jobTitle
|
||||
|
@ -194,6 +207,9 @@ export default {
|
|||
this.dataForm.bankName = data.user.bankName
|
||||
this.dataForm.identityId = data.user.identityId
|
||||
this.dataForm.status = data.user.status
|
||||
this.dataForm.age = data.user.age
|
||||
this.dataForm.mealCard = data.user.mealCard
|
||||
this.dataForm.sex = data.user.sex
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -224,7 +240,10 @@ export default {
|
|||
'bankAddress': this.dataForm.bankAddress,
|
||||
'bankName': this.dataForm.bankName,
|
||||
'identityId': this.dataForm.identityId,
|
||||
'status': this.dataForm.status
|
||||
'status': this.dataForm.status,
|
||||
'mealCard': this.dataForm.mealCard,
|
||||
'age': this.dataForm.age,
|
||||
'sex': this.dataForm.sex
|
||||
})
|
||||
}).then(({data}) => {
|
||||
console.log(data)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div class="mod-user">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.userName" placeholder="用户身份码" clearable></el-input>
|
||||
<el-input v-model="dataForm.userName" placeholder="姓名" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">查询</el-button>
|
||||
|
@ -12,14 +12,17 @@
|
|||
</el-button>
|
||||
<el-button type="success" v-if="isAuth('wai:user:start')" plain @click="randomAssigned()">随机分配宿舍</el-button>
|
||||
</el-form-item>
|
||||
<download-excel :stringifyLongNum="true" style=" display: inline-block;" :fetch="getExportExcel" :fields="json_fields" :name='`外校老师信息.xls`'>
|
||||
<el-button type='primary'>导出</el-button>
|
||||
</download-excel>
|
||||
</el-form>
|
||||
|
||||
<el-table :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
|
||||
<el-table @sort-change="sortChange" :data="dataList" border v-loading="dataListLoading" @selection-change="selectionChangeHandle"
|
||||
style="width: 100%;">
|
||||
|
||||
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50">
|
||||
</el-table-column>
|
||||
<!--下来展开-->
|
||||
<el-table-column type="expand" label="详细">
|
||||
<el-table-column type="expand" label="详细信息" width="50px">
|
||||
<template slot-scope="props">
|
||||
<el-form label-position="left" inline class="demo-table-expand">
|
||||
<el-form-item label="身份证号">
|
||||
|
@ -41,12 +44,15 @@
|
|||
<el-form-item label="开户行">
|
||||
<span>{{ props.row.bankName }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="宿舍信息">
|
||||
<span>{{ props.row.dormitory }}</span>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="宿舍信息">-->
|
||||
<!-- <span>{{ props.row.dormitory }}</span>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="车牌号">
|
||||
<span>{{ props.row.carNumber }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="饭卡号">
|
||||
<span>{{ props.row.mealCard }}</span>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="是否第一次阅卷">-->
|
||||
<!-- <span>{{ props.row.carNumber }}</span>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
@ -55,23 +61,24 @@
|
|||
</el-table-column>
|
||||
|
||||
|
||||
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50">
|
||||
</el-table-column>
|
||||
<el-table-column header-align="center" align="center" width="80" label="ID">
|
||||
<el-table-column header-align="center" align="center" width="80" label="序号">
|
||||
<template slot-scope="scope">
|
||||
{{ (pageIndex - 1) * pageSize + scope.$index + 1 }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="userId" header-align="center" align="center" width="100" label="用户身份码">
|
||||
<!-- <el-table-column prop="userId" header-align="center" align="center" width="100" label="用户身份码">-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column sortable="custom" prop="userName" header-align="center" align="center" label="姓名">
|
||||
</el-table-column>
|
||||
<el-table-column prop="userName" header-align="center" align="center" label="姓名">
|
||||
<el-table-column sortable="custom" prop="age" header-align="center" align="center" label="年龄">
|
||||
</el-table-column>
|
||||
<el-table-column prop="phone" header-align="center" align="center" label="手机号">
|
||||
<el-table-column sortable="custom" prop="sex" header-align="center" align="center" label="性别">
|
||||
</el-table-column>
|
||||
<el-table-column prop="jobTitle" header-align="center" align="center" label="职称">
|
||||
<el-table-column sortable="custom" prop="phone" header-align="center" align="center" label="手机号">
|
||||
</el-table-column>
|
||||
<el-table-column prop="office" header-align="center" align="center" label="职务">
|
||||
<el-table-column sortable="custom" prop="jobTitle" header-align="center" align="center" label="职称">
|
||||
</el-table-column>
|
||||
<el-table-column sortable="custom" prop="office" header-align="center" align="center" label="职务">
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="mobile" header-align="center" align="center" label="手机号">-->
|
||||
<!-- </el-table-column>-->
|
||||
|
@ -82,6 +89,7 @@
|
|||
<!-- </el-table-column>-->
|
||||
|
||||
<el-table-column
|
||||
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="89"
|
||||
|
@ -94,19 +102,35 @@
|
|||
{{ getgroups(scope.row.groupId) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="DormitoryStatus" header-align="center" align="center" label="住宿">
|
||||
<el-table-column prop="dormitory" header-align="center" width="150" align="center" label="住宿信息">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.dormitoryStatus === 1" size="small" >是</el-tag>
|
||||
<el-tag v-else size="small" type="danger">否</el-tag>
|
||||
<!-- 领导说没有宿舍信息就不能选择,先让它写死后续有信息再说-->
|
||||
<!-- <el-select :disabled="scope.row.dormitory!==''" @focus="getDorList(scope.row.sex)" @change="changeDor(scope.row.dormitory, scope.row.id)" v-model="scope.row.dormitory" filterable placeholder="请选择">-->
|
||||
<el-select :disabled="true" @focus="getDorList(scope.row.sex)" @change="changeDor(scope.row.dormitory, scope.row.id)" v-model="scope.row.dormitory" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.id"
|
||||
:label="item.dormitory"
|
||||
:value="item.dormitory">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="carStatus" header-align="center" align="center" label="车入校">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.carStatus === 1" size="small" >是</el-tag>
|
||||
<el-tag v-else size="small" type="danger">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right" header-align="center" align="center" width="150" label="操作">
|
||||
|
||||
|
||||
<!-- <el-table-column prop="DormitoryStatus" header-align="center" align="center" label="住宿">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-tag v-if="scope.row.dormitoryStatus === 1" size="small" >是</el-tag>-->
|
||||
<!-- <el-tag v-else size="small" type="danger">否</el-tag>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column prop="carStatus" header-align="center" align="center" label="车入校">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <el-tag v-if="scope.row.carStatus === 1" size="small" >是</el-tag>-->
|
||||
<!-- <el-tag v-else size="small" type="danger">否</el-tag>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column v-if="isAuth('wai:user:update')" fixed="right" header-align="center" align="center" width="150" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="isAuth('wai:user:update')" type="text" size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)">修改
|
||||
|
@ -116,11 +140,6 @@
|
|||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</el-table>
|
||||
<el-pagination @size-change="sizeChangeHandle" @current-change="currentChangeHandle" :current-page="pageIndex"
|
||||
:page-sizes="[5,10, 20, 50, 100]" :page-size="pageSize" :total="totalCount"
|
||||
|
@ -133,12 +152,13 @@
|
|||
|
||||
<script>
|
||||
import AddOrUpdate from './wai-add-or-update'
|
||||
import {isAuth} from "@/utils";
|
||||
import myRequest from "@/views/modules/h5/myRequest";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
options: [],
|
||||
value: null,
|
||||
dataForm: {
|
||||
userName: ''
|
||||
},
|
||||
|
@ -151,6 +171,61 @@ export default {
|
|||
dataListSelections: [],
|
||||
addOrUpdateVisible: false,
|
||||
groupIdes: [],
|
||||
json_fields: {
|
||||
"序号": "index",
|
||||
"姓名": "userName",
|
||||
"身份码": "userId",
|
||||
"用户专业码": "userMajorId",
|
||||
"手机号": "phone",
|
||||
"分组": {
|
||||
field: "groupId",
|
||||
callback: (value) => {
|
||||
if (value=='0'){
|
||||
return ""
|
||||
}
|
||||
return this.groupIdMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
},
|
||||
"学科": {
|
||||
field: "majorId",
|
||||
callback: (value) => {
|
||||
// 定义major_id到对应文本的映射
|
||||
const majorMap = {
|
||||
1: "语文",
|
||||
4: "地理",
|
||||
7: "历史",
|
||||
8: "政治",
|
||||
};
|
||||
return majorMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
},
|
||||
"职称": "jobTitle",
|
||||
"职务": "office",
|
||||
"年龄": "age",
|
||||
"性别": "sex",
|
||||
"单位": "workName",
|
||||
"单位电话": "workPhone",
|
||||
"身份证号": "identityId",
|
||||
"银行卡号": "pyCard",
|
||||
"开户所在地": "bankAddress",
|
||||
"开户行": "bankName",
|
||||
"车牌号": "carNumber",
|
||||
"饭卡号": "mealCard",
|
||||
"是否住宿": {
|
||||
field: "dormitoryStatus",
|
||||
callback: (value) => {
|
||||
// 定义dormitoryStatus到对应文本的映射
|
||||
const majorMap = {
|
||||
1: "是",
|
||||
0: "否",
|
||||
};
|
||||
return majorMap[value] || value; // 返回对应的文本
|
||||
}
|
||||
},
|
||||
"宿舍号": "dormitory",
|
||||
},
|
||||
groupIdMap:{},
|
||||
groupIdesShow: [],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
@ -160,27 +235,95 @@ export default {
|
|||
this.getDataList()
|
||||
this.groupIdes=[]
|
||||
// 获取分组
|
||||
myRequest.getGroupList(this)
|
||||
// 获取分组
|
||||
let groupList = myRequest.getGroupList(this);
|
||||
setTimeout(() => {
|
||||
groupList.forEach(item => {
|
||||
this.groupIdMap[item.id] = item.text;
|
||||
})
|
||||
|
||||
},500)
|
||||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
/**
|
||||
* 自定义排序
|
||||
*/
|
||||
sortChange(colum){
|
||||
if (colum.order === 'ascending'){
|
||||
this.getDataList(colum.prop,colum.order)
|
||||
}else {
|
||||
this.getDataList(colum.prop,colum.order)
|
||||
}
|
||||
|
||||
},
|
||||
changeDor(val,dor){
|
||||
this.value=val
|
||||
console.log(this.value)
|
||||
console.log(dor)
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/wai/saved'),
|
||||
method: 'get',
|
||||
params: {
|
||||
dorName:val,
|
||||
userId:dor
|
||||
}
|
||||
}).then(({data}) => {
|
||||
this.getDataList()
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
// 获取宿舍信息
|
||||
async getDorList(sex){
|
||||
await this.$http({
|
||||
url: this.$http.adornUrl('/dor/listm?sex='+sex),
|
||||
method: 'get',
|
||||
}).then(({data}) => {
|
||||
console.log(this.options)
|
||||
this.options=data.dorinfo
|
||||
console.log(this.options)
|
||||
})
|
||||
},
|
||||
// Excel导出
|
||||
async getExportExcel(){
|
||||
let excelData=[]
|
||||
await this.$http({
|
||||
url: this.$http.adornUrl('/wai/export'),
|
||||
method: 'get',
|
||||
}).then(({data}) => {
|
||||
excelData = data.map((item, index) => {
|
||||
return { ...item, index: index + 1 }; // 添加序号字段
|
||||
});
|
||||
// if (data && data.code === 200) {
|
||||
// console.log(data.list)
|
||||
// }
|
||||
})
|
||||
return excelData
|
||||
},
|
||||
// isAuth,
|
||||
// 分组过滤
|
||||
filterTag(value, row) {
|
||||
return row.groupId === value;
|
||||
},
|
||||
getgroups(id) {
|
||||
try {
|
||||
let groupIdes = this.groupIdes
|
||||
return groupIdes[id - 1].text
|
||||
} catch (e) {
|
||||
// console.log(e)
|
||||
return "未分组"
|
||||
}
|
||||
|
||||
let groupName=''
|
||||
// console.log(this.groupIdesShow[id])
|
||||
this.groupIdesShow.forEach(item => {
|
||||
if (item.id === id){
|
||||
groupName= item.name
|
||||
}
|
||||
})
|
||||
return groupName
|
||||
// try {
|
||||
//
|
||||
// } catch (e) {
|
||||
// console.log(e)
|
||||
// return "未分组"
|
||||
// }
|
||||
},
|
||||
// 获取数据列表
|
||||
getDataList() {
|
||||
getDataList(prop='',sort='') {
|
||||
this.dataListLoading = true
|
||||
this.$http({
|
||||
url: this.$http.adornUrl('/wai/list'),
|
||||
|
@ -188,7 +331,9 @@ export default {
|
|||
params: this.$http.adornParams({
|
||||
'page': this.pageIndex,
|
||||
'limit': this.pageSize,
|
||||
'userId': this.dataForm.userName
|
||||
'userName': this.dataForm.userName,
|
||||
'prop': prop,
|
||||
'sort': sort
|
||||
})
|
||||
}).then(({data}) => {
|
||||
if (data && data.code === 200) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<el-dialog :title="!dataForm.id ? '新增' : '修改'" :close-on-click-modal="false" :visible.sync="visible">
|
||||
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px">
|
||||
<el-form-item label="用户名" prop="userName">
|
||||
<el-form-item label="帐号" prop="userName">
|
||||
<el-input v-model="dataForm.userName" placeholder="登录帐号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="密码" prop="password" :class="{ 'is-required': !dataForm.id }">
|
||||
|
@ -10,8 +10,8 @@
|
|||
<el-form-item label="确认密码" prop="comfirmPassword" :class="{ 'is-required': !dataForm.id }">
|
||||
<el-input v-model="dataForm.comfirmPassword" type="password" placeholder="确认密码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="邮箱" prop="email">
|
||||
<el-input v-model="dataForm.email" placeholder="邮箱"></el-input>
|
||||
<el-form-item label="用户名" prop="email">
|
||||
<el-input v-model="dataForm.email" placeholder="用户名"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号" prop="mobile">
|
||||
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input>
|
||||
|
@ -55,13 +55,13 @@ export default {
|
|||
callback()
|
||||
}
|
||||
}
|
||||
var validateEmail = (rule, value, callback) => {
|
||||
if (!isEmail(value)) {
|
||||
callback(new Error('邮箱格式错误'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
// var validateEmail = (rule, value, callback) => {
|
||||
// if (!isEmail(value)) {
|
||||
// callback(new Error('邮箱格式错误'))
|
||||
// } else {
|
||||
// callback()
|
||||
// }
|
||||
// }
|
||||
var validateMobile = (rule, value, callback) => {
|
||||
if (!isMobile(value)) {
|
||||
callback(new Error('手机号格式错误'))
|
||||
|
@ -93,10 +93,10 @@ export default {
|
|||
comfirmPassword: [
|
||||
{ validator: validateComfirmPassword, trigger: 'blur' }
|
||||
],
|
||||
email: [
|
||||
{ required: true, message: '邮箱不能为空', trigger: 'blur' },
|
||||
{ validator: validateEmail, trigger: 'blur' }
|
||||
],
|
||||
// email: [
|
||||
// { required: true, message: '邮箱不能为空', trigger: 'blur' },
|
||||
// { validator: validateEmail, trigger: 'blur' }
|
||||
// ],
|
||||
mobile: [
|
||||
{ required: true, message: '手机号不能为空', trigger: 'blur' },
|
||||
{ validator: validateMobile, trigger: 'blur' }
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
</el-table-column>
|
||||
<el-table-column prop="userId" header-align="center" align="center" width="80" label="ID">
|
||||
</el-table-column>
|
||||
<el-table-column prop="username" header-align="center" align="center" label="用户名">
|
||||
<el-table-column prop="username" header-align="center" align="center" label="账号">
|
||||
</el-table-column>
|
||||
<el-table-column prop="email" header-align="center" align="center" label="邮箱">
|
||||
<el-table-column prop="email" header-align="center" align="center" label="用户名">
|
||||
</el-table-column>
|
||||
<el-table-column prop="mobile" header-align="center" align="center" label="手机号">
|
||||
</el-table-column>
|
||||
|
|
|
@ -3,8 +3,10 @@ module.exports = {
|
|||
devServer: {
|
||||
// 后端请求转发,此配置仅开发环境有效,生产环境请参考生产环境部署文档配置nginx转发
|
||||
proxy: {
|
||||
'/wx': {
|
||||
target: 'http://localhost:8080/'
|
||||
// '/wx': {
|
||||
'/': {
|
||||
target: 'http://localhost:80/'
|
||||
// target: 'http://localhost:8080/'
|
||||
// target: 'http://154.8.196.128:8080/'
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue