From 88dac9c2f9b83c627fa94d6b035b332a2f0e3d15 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 08 七月 2024 18:22:09 +0800
Subject: [PATCH] 标签增加部门、子管理员也有标签管理

---
 src/views/user/student/list.vue |   72 +++++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 29 deletions(-)

diff --git a/src/views/user/student/list.vue b/src/views/user/student/list.vue
index 35740e3..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">
@@ -62,7 +60,7 @@
           <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 v-if="!deptAdmin()" slot="reference" size="mini" type="danger" class="link-left">鍒犻櫎</el-button>
@@ -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,14 +92,13 @@
       :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 :fileUrl="examine.contentUrl" :fileSizeLimitM="1024" :uploadNum="1" @getUploadUrl="getUploadAttachmentUrl" @removeFile="removeAttachmentFile" style="margin-top: 30px;"/>
       <span slot="footer" class="dialog-footer">
@@ -116,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 {
@@ -148,6 +147,15 @@
         contentUrl: [],
         attachment: ''
       },
+      conditionExamine: {
+        userId: '',
+        targetCondition: '',
+        sourceCondition: '',
+        reason: '',
+        result: 0,
+        contentUrl: [],
+        attachment: ''
+      },
       title: '閮ㄩ棬璋冨姩',
       dialogVisible: false,
       deptList: []
@@ -168,6 +176,14 @@
       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(',')
       departmentExamineApi.save(this.examine).then(res => {
@@ -181,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
@@ -194,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;
@@ -231,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