From 0a9d8e014803308c2eef22ca1e83c50d4086b37d Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期五, 17 五月 2024 10:47:26 +0800 Subject: [PATCH] fix:上传类型限制 --- src/views/user/student/list.vue | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 111 insertions(+), 8 deletions(-) diff --git a/src/views/user/student/list.vue b/src/views/user/student/list.vue index e0bfb22..ba02de0 100644 --- a/src/views/user/student/list.vue +++ b/src/views/user/student/list.vue @@ -1,12 +1,12 @@ <template> <div class="app-container"> <el-form :model="queryParam" ref="queryForm" :inline="true"> - <el-form-item label="鐢ㄦ埛鍚嶏細"> - <el-input v-model="queryParam.userName"></el-input> + <el-form-item label="鐪熷疄濮撳悕锛�"> + <el-input v-model="queryParam.userName" size="small" clearable></el-input> </el-form-item> <el-form-item > <div style="display: flex"> - <el-button type="primary" @click="submitForm">鏌ヨ</el-button> + <el-button type="primary" @click="submitForm" size="small">鏌ヨ</el-button> <router-link :to="{path:'/user/student/edit'}" class="link-left"> <el-button type="primary">娣诲姞</el-button> </router-link> @@ -28,10 +28,21 @@ <el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%"> <el-table-column prop="userName" label="鐢ㄦ埛鍚�"/> - <el-table-column prop="realName" label="鐪熷疄濮撳悕" /> - <el-table-column prop="userLevel" label="閮ㄩ棬" :formatter="levelFormatter"/> + <el-table-column prop="realName" label="鐪熷疄濮撳悕" width="150"/> + <el-table-column prop="deptNames" label="閮ㄩ棬" /> + <el-table-column label="鏍囩" prop="tagNames" width="80px"> + <template slot-scope="{row}"> + <el-tag style="margin: 5px;" v-for="(item,index) in row.tagNames" :key="index">{{ item }}</el-tag> + </template> + </el-table-column> + <el-table-column label="浜哄憳鐘舵��" prop="condition" align="center" width="100px"> + <template slot-scope="{row}"> + <el-tag :type="row.condition == '姝e父' || row.condition == null ? 'success' : 'warning'">{{ row.condition ? row.condition : '姝e父' }}</el-tag> + </template> + </el-table-column> + <el-table-column prop="conditionDetail" label="鍏蜂綋鎯呭喌" show-overflow-tooltip="true"/> <el-table-column prop="sex" label="鎬у埆" width="60px;" :formatter="sexFormatter"/> - <el-table-column prop="phone" label="鎵嬫満鍙�"/> + <el-table-column prop="phone" label="鎵嬫満鍙�" width="120"/> <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="160px"/> <el-table-column label="鐘舵��" prop="status" width="70px"> <template slot-scope="{row}"> @@ -40,7 +51,7 @@ </el-tag> </template> </el-table-column> - <el-table-column width="270px" label="鎿嶄綔" align="center"> + <el-table-column width="400px" label="鎿嶄綔" fixed="right" align="center"> <template slot-scope="{row}"> <el-button size="mini" @click="changeStatus(row)" class="link-left"> {{ statusBtnFormatter(row.status) }} @@ -51,12 +62,48 @@ <router-link :to="{path:'/log/user/list', query:{userId:row.id}}" class="link-left"> <el-button size="mini" >鏃ュ織</el-button> </router-link> + <el-button size="mini" @click="status(row)" class="link-left">鐘舵��</el-button> + <el-button type="primary" size="mini" @click="transposition(row)" class="link-left">璋冨姩</el-button> <el-button size="mini" type="danger" @click="deleteUser(row)" class="link-left">鍒犻櫎</el-button> </template> </el-table-column> </el-table> <pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize" @pagination="search"/> + + <!-- 鐘舵�佸脊绐� --> + <el-dialog :visible.sync="statusVisible" append-to-body :close-on-click-modal="false" :show-close="false" center width="400px"> + <el-radio-group v-model="user.condition"> + <el-radio label="姝e父">姝e父</el-radio> + <el-radio label="鐥呭亣">鐥呭亣</el-radio> + <el-radio label="鍑哄樊">鍑哄樊</el-radio> + <el-radio label="鍏朵粬">鍏朵粬</el-radio> + </el-radio-group> + <el-input type="textarea" maxlength="100" show-word-limit :autosize="{ minRows: 4}" :rows="2" v-model="user.conditionDetail" placeholder="璇疯緭鍏ヨ缁嗘儏鍐�" style="margin-top: 30px;"></el-input> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" @click="statusConfirm">纭� 瀹�</el-button> + <el-button @click="statusVisible = false">鍙� 娑�</el-button> + </span> + </el-dialog> + + <!-- 璋冨姩寮圭獥 --> + <el-dialog + :title="title" + :visible.sync="dialogVisible" + width="400px"> + <el-select v-model="examine.departmentId" multiple filterable placeholder="璇烽�夋嫨閮ㄩ棬"> + <el-option + v-for="item in deptList" + :key="item.id" + :label="item.name" + :value="item.id"> + </el-option> + </el-select> + <span slot="footer" class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="submitExamine">纭� 瀹�</el-button> + </span> + </el-dialog> </div> </template> @@ -64,11 +111,14 @@ import { mapGetters, mapState } from 'vuex' import Pagination from '@/components/Pagination' import userApi from '@/api/user' +import departmentExamineApi from '@/api/departmentExamine' export default { components: { Pagination }, data () { return { + user:{}, + statusVisible: false, upLoadUrl:'/api/admin/user/import', fileList:[], queryParam: { @@ -79,13 +129,66 @@ }, listLoading: true, tableData: [], - total: 0 + total: 0, + examine: { + userId: '', + departmentId: [], + departmentIds: '', + nowDepartmentIds: '', + }, + title: '閮ㄩ棬璋冨姩', + dialogVisible: false, + deptList: [] } }, created () { this.search() }, methods: { + submitExamine() { + this.examine.departmentIds = this.examine.departmentId.join(',') + departmentExamineApi.save(this.examine).then(res => { + if (res.code === 1) { + this.$message.success("鎻愪氦鎴愬姛锛屽鏍稿悗鐢熸晥") + this.dialogVisible = false + this.search() + } else { + this.$message.error("鎿嶄綔澶辫触") + } + }) + }, + transposition(item) { + this.examine.userId = item.id + this.examine.departmentId = item.deptIdList + this.examine.nowDepartmentIds = item.deptIdList.join(',') + departmentExamineApi.getDeptList().then(res => { + if (res.code === 1) { + this.deptList = res.response + this.dialogVisible = true + } else { + this.$message.error(res.message) + } + }) + }, + status(user) { + this.statusVisible = true; + this.user = { ...user }; + }, + statusConfirm() { + if (this.user.condition === null) { + this.$message.error("璇烽�夋嫨鐘舵��") + return + } + userApi.setStatus(this.user).then(res => { + if (res.code === 1) { + this.$message.success("鎿嶄綔鎴愬姛") + this.statusVisible = false; + this.search() + } else { + this.$message.error("鎿嶄綔澶辫触") + } + }) + }, handlePreview(e){ console.log(e) if (e.code==1){ -- Gitblit v1.8.0