From c19bb5ac1b4013aa700c0a658f20375be9703ea3 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期一, 08 七月 2024 18:45:47 +0800
Subject: [PATCH] feat:选择学生增加全选按钮
---
src/views/user/student/list.vue | 102 ++++++++++++++++++++++++++++-----------------------
1 files changed, 56 insertions(+), 46 deletions(-)
diff --git a/src/views/user/student/list.vue b/src/views/user/student/list.vue
index fb67075..c6b3a81 100644
--- a/src/views/user/student/list.vue
+++ b/src/views/user/student/list.vue
@@ -20,7 +20,6 @@
:file-list="fileList"
:before-upload="beforeAvatarUpload">
<el-button type="primary">瀵煎叆</el-button>
- <!-- <div slot="tip" class="el-upload__tip">鍙兘涓婁紶Excel鏂囦欢</div>-->
</el-upload>
</div>
</el-form-item>
@@ -40,8 +39,7 @@
<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="sex" label="鎬у埆" width="60px;" :formatter="sexFormatter" align="center"/>
<el-table-column prop="phone" label="鎵嬫満鍙�" width="120"/>
<el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="160px"/>
<el-table-column label="鐘舵��" prop="status" width="70px">
@@ -51,9 +49,9 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column width="400px" label="鎿嶄綔" fixed="right" align="center">
+ <el-table-column :width="deptAdmin() ? '310px' : '400px'" label="鎿嶄綔" fixed="right" align="center">
<template slot-scope="{row}">
- <el-button size="mini" @click="changeStatus(row)" class="link-left">
+ <el-button size="mini" v-if="!deptAdmin()" @click="changeStatus(row)" class="link-left">
{{ statusBtnFormatter(row.status) }}
</el-button>
<router-link :to="{path:'/user/student/edit', query:{id:row.id}}" class="link-left">
@@ -62,10 +60,10 @@
<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="status(row)" class="link-left">鐘舵��</el-button>
<el-button type="primary" size="mini" @click="transposition(row)" class="link-left">璋冨姩</el-button>
<el-popconfirm title="纭鍒犻櫎鍚�" @confirm="deleteUser(row)">
- <el-button slot="reference" size="mini" type="danger" class="link-left">鍒犻櫎</el-button>
+ <el-button v-if="!deptAdmin()" slot="reference" size="mini" type="danger" class="link-left">鍒犻櫎</el-button>
</el-popconfirm>
</template>
</el-table-column>
@@ -75,13 +73,14 @@
<!-- 鐘舵�佸脊绐� -->
<el-dialog :visible.sync="statusVisible" append-to-body :show-close="false" center width="400px">
- <el-radio-group v-model="user.condition">
+ <el-radio-group v-model="conditionExamine.targetCondition">
<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>
+ <el-input type="textarea" maxlength="100" show-word-limit :autosize="{ minRows: 4}" :rows="2" v-model="conditionExamine.reason" placeholder="璇疯緭鍏ヨ缁嗘儏鍐�" style="margin-top: 30px;"></el-input>
+ <upload :fileUrl="conditionExamine.contentUrl" :fileSizeLimitM="1024" :uploadNum="1" @getUploadUrl="getConditionUploadAttachmentUrl" @removeFile="removeConditionAttachmentFile" style="margin-top: 30px;"/>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="statusConfirm">纭� 瀹�</el-button>
<el-button @click="statusVisible = false">鍙� 娑�</el-button>
@@ -93,17 +92,15 @@
: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>
+ <el-cascader
+ clearable
+ :disabled="this.$route.query.id"
+ v-model="examine.departmentId"
+ :options="deptList"
+ :props="{ emitPath: false, multiple: true, value: 'id', label: 'name', checkStrictly: true }"
+ ></el-cascader>
<el-input type="textarea" maxlength="100" show-word-limit :autosize="{ minRows: 4}" :rows="2" v-model="examine.reason" placeholder="璇疯緭鍏ユ儏鍐佃鏄�" style="margin-top: 30px;"></el-input>
- <upload v-show="form.contentType" ref="upload" :fileUrl="form.contentUrl" :fileType="form.contentType"
- :fileSizeLimitM="1024" :uploadNum="1" @getUploadUrl="getUploadUrl" @removeFile="removeFile" style="margin-top: 30px;"/>
+ <upload :fileUrl="examine.contentUrl" :fileSizeLimitM="1024" :uploadNum="1" @getUploadUrl="getUploadAttachmentUrl" @removeFile="removeAttachmentFile" style="margin-top: 30px;"/>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">鍙� 娑�</el-button>
<el-button type="primary" @click="submitExamine">纭� 瀹�</el-button>
@@ -117,6 +114,7 @@
import Pagination from '@/components/Pagination'
import userApi from '@/api/user'
import departmentExamineApi from '@/api/departmentExamine'
+import department from '@/api/department'
import Upload from '@/components/UploadC'
export default {
@@ -128,15 +126,6 @@
},
data () {
return {
-
- form: {
- contentType: 'file',
- subject: '',
- belongType: 2,
- contentUrl: [],
- attachment: [],
- temp: []
- },
user:{},
statusVisible: false,
upLoadUrl:'/api/admin/user/import',
@@ -155,6 +144,16 @@
departmentId: [],
departmentIds: '',
nowDepartmentIds: '',
+ contentUrl: [],
+ attachment: ''
+ },
+ conditionExamine: {
+ userId: '',
+ targetCondition: '',
+ sourceCondition: '',
+ reason: '',
+ result: 0,
+ contentUrl: [],
attachment: ''
},
title: '閮ㄩ棬璋冨姩',
@@ -166,11 +165,24 @@
this.search()
},
methods: {
- removeFile() {
- this.examine.attachment = [];
+ deptAdmin() {
+ return sessionStorage.getItem('deptAdmin') === '1'
},
- getUploadUrl(uploadData) {
+ removeAttachmentFile(fileList, fileName) {
+ this.examine.attachment = JSON.stringify(fileList.filter(item => item.name !== fileName));
+ this.examine.contentUrl = fileList.filter(item => item.name !== fileName);
+ },
+ getUploadAttachmentUrl(uploadData) {
this.examine.attachment = JSON.stringify(uploadData);
+ this.examine.contentUrl = uploadData;
+ },
+ removeConditionAttachmentFile(fileList, fileName) {
+ this.conditionExamine.attachment = JSON.stringify(fileList.filter(item => item.name !== fileName));
+ this.conditionExamine.contentUrl = fileList.filter(item => item.name !== fileName);
+ },
+ getConditionUploadAttachmentUrl(uploadData) {
+ this.conditionExamine.attachment = JSON.stringify(uploadData);
+ this.conditionExamine.contentUrl = uploadData;
},
submitExamine() {
this.examine.departmentIds = this.examine.departmentId.join(',')
@@ -185,10 +197,14 @@
})
},
transposition(item) {
+ if (item.departmentExamineResult) {
+ this.$message.warning("璇ョ敤鎴疯皟鍔ㄥ緟瀹℃牳");
+ return
+ }
this.examine.userId = item.id
this.examine.departmentId = item.deptIdList
this.examine.nowDepartmentIds = item.deptIdList.join(',')
- departmentExamineApi.getDeptList().then(res => {
+ department.getDeptAdmins().then(res => {
if (res.code === 1) {
this.deptList = res.response
this.dialogVisible = true
@@ -198,15 +214,20 @@
})
},
status(user) {
+ if (user.conditionExamineResult) {
+ this.$message.warning("璇ョ敤鎴风姸鎬佸緟瀹℃牳");
+ return
+ }
this.statusVisible = true;
- this.user = { ...user };
+ this.conditionExamine.sourceCondition = user.condition ? user.condition : '0';
+ this.conditionExamine.userId = user.id
},
statusConfirm() {
- if (this.user.condition === null) {
+ if (this.conditionExamine.targetCondition === null) {
this.$message.error("璇烽�夋嫨鐘舵��")
return
}
- userApi.setStatus(this.user).then(res => {
+ userApi.setStatus(this.conditionExamine).then(res => {
if (res.code === 1) {
this.$message.success("鎿嶄綔鎴愬姛")
this.statusVisible = false;
@@ -235,17 +256,6 @@
this.$message.warning('鏂囦欢鏍煎紡涓嶅锛屼粎闄恱ls鍜寈lsx')
return false
}
- // console.log(file)
- // const isJPG = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
- // // const isLt2M = file.size / 1024 / 1024 < 2;
- //
- // if (!isJPG) {
- // this.$message.error('涓婁紶鏂囦欢鍙兘鏄疎xcel!');
- // }
- // // if (!isLt2M) {
- // // this.$message.error('涓婁紶澶村儚鍥剧墖澶у皬涓嶈兘瓒呰繃 2MB!');
- // // }
- // return isJPG ;
},
search () {
this.listLoading = true
--
Gitblit v1.8.0