From 68b8ed3b4b7ddbb5fe113c1d7df3aa909dc66fb6 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期三, 03 七月 2024 18:37:29 +0800 Subject: [PATCH] feat:新增随机时间题目配置 --- src/views/user/student/list.vue | 84 +++++++++++++++++++++++------------------ 1 files changed, 47 insertions(+), 37 deletions(-) diff --git a/src/views/user/student/list.vue b/src/views/user/student/list.vue index fb67075..880a8ac 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> @@ -102,8 +101,7 @@ </el-option> </el-select> <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> @@ -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,6 +197,10 @@ }) }, 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(',') @@ -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