瀏覽代碼

支部会议管理 - 关联用户

Wang Zi Wen 2 年之前
父節點
當前提交
528d091923
共有 1 個文件被更改,包括 170 次插入16 次删除
  1. 170 16
      ruoyi-ui/src/views/branch/meeting/index.vue

+ 170 - 16
ruoyi-ui/src/views/branch/meeting/index.vue

@@ -47,7 +47,6 @@
           plain
           icon="el-icon-upload2"
           size="mini"
-          @click="handleImport"
           v-hasPermi="['branch:meeting:edit']"
         >导入</el-button>
       </el-col>
@@ -73,11 +72,11 @@
         </template>
       </el-table-column>
       <el-table-column label="地点" align="center" prop="meetingVenue"/>
-      <el-table-column label="主持人" align="center" prop="host"/>
-      <el-table-column label="记录人" align="center" prop="recorder"/>
-      <el-table-column label="参加人员" align="center" prop="participants" width="120"/>
-      <el-table-column label="缺席人员" align="center" prop="absentees"/>
-      <el-table-column label="列席人员" align="center" prop="attendees"/>
+      <el-table-column label="主持人" align="center" prop="hostString" width="120"/>
+      <el-table-column label="记录人" align="center" prop="recorderString" width="120"/>
+      <el-table-column label="参加人员" align="center" prop="participantsString" width="120"/>
+      <el-table-column label="缺席人员" align="center" prop="absenteesString" width="120"/>
+      <el-table-column label="列席人员" align="center" prop="attendeesString" width="120"/>
       <el-table-column label="主要议题" align="left" prop="mainTopics" width="350"/>
       <el-table-column label="形成决议" align="left" prop="resolutionsFormed" width="350"/>
       <el-table-column label="备注" align="center" prop="remarks"/>
@@ -113,7 +112,7 @@
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="会议类型" prop="meetingType">
-          <el-select v-model="form.meetingType" placeholder="请输入会议类型">
+          <el-select v-model="form.meetingType" placeholder="请选择会议类型">
             <el-option
               v-for="dict in meetingTypeOptions"
               :key="dict.dictValue"
@@ -134,19 +133,54 @@
           <el-input v-model="form.meetingVenue" placeholder="请输入地点" />
         </el-form-item>
         <el-form-item label="主持人" prop="host">
-          <el-input v-model="form.host" placeholder="请输入主持人" />
+          <el-select v-model="form.host" multiple placeholder="请选择主持人">
+            <el-option
+              v-for="dict in userList"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="记录人" prop="recorder">
-          <el-input v-model="form.recorder" placeholder="请输入记录人" />
+          <el-select v-model="form.recorder" multiple placeholder="请选择记录人">
+            <el-option
+              v-for="dict in userList"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="参加人员" prop="participants">
-          <el-input v-model="form.participants" placeholder="请输入参加人员" />
+          <el-select v-model="form.participants" multiple placeholder="请选择参加人员">
+            <el-option
+              v-for="dict in userList"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="缺席人员" prop="absentees">
-          <el-input v-model="form.absentees" placeholder="请输入缺席人员" />
+          <el-select v-model="form.absentees" multiple placeholder="请选择缺席人员">
+            <el-option
+              v-for="dict in userList"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="列席人员" prop="attendees">
-          <el-input v-model="form.attendees" placeholder="请输入列席人员" />
+          <el-select v-model="form.attendees" multiple placeholder="请选择列席人员">
+            <el-option
+              v-for="dict in userList"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="主要议题" prop="mainTopics">
           <el-input v-model="form.mainTopics" placeholder="请输入主要议题" type="textarea" rows="4"/>
@@ -175,6 +209,7 @@ import { treeselect } from "@/api/system/dept";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import { listUser} from "@/api/system/user";
 
 export default {
   name: "Meeting",
@@ -229,6 +264,8 @@ export default {
       meetingTypeOptions: [],
       // 部门树选项
       deptOptions: undefined,
+      // 用户列表
+      userList: [],
     };
   },
   watch: {
@@ -249,6 +286,20 @@ export default {
     });
   },
   methods: {
+    /** 查询用户列表 */
+    getUserList() {
+      listUser().then(response => {
+        let rows = response.rows;
+        let userList = [];
+        for(let i = 0; i < rows.length; i++) {
+          if (rows[i].userName != "admin") {
+            let user = { "dictValue" : rows[i].userId, "dictLabel" : rows[i].nickName};
+            userList.push(user);
+          }
+        }
+        this.userList = userList;
+      });
+    },
     /** 查询部门下拉树结构 */
     getTreeselect() {
       treeselect().then(response => {
@@ -262,10 +313,83 @@ export default {
     /** 查询支部会议管理列表 */
     getList() {
       this.loading = true;
-      listMeeting(this.queryParams).then(response => {
-        this.mgrList = response.rows;
-        this.total = response.total;
-        this.loading = false;
+      listUser().then(response => {
+        let rows = response.rows;
+        let userList = [];
+        for(let i = 0; i < rows.length; i++) {
+          if (rows[i].userName != "admin") {
+            let user = { "dictValue" : rows[i].userId, "dictLabel" : rows[i].nickName};
+            userList.push(user);
+          }
+        }
+        this.userList = userList;
+        listMeeting(this.queryParams).then(response => {
+          this.mgrList = response.rows;
+          for (let i = 0; i < this.mgrList.length; i++) {
+            if (this.mgrList[i].host != null) {
+              let host = this.mgrList[i].host.split(",");
+              let hostString = "";
+              for (let j = 0; j < host.length; j++) {
+                if (j > 0) {
+                  hostString += "、" + this.selectDictLabel(this.userList, host[j]);
+                } else {
+                  hostString += this.selectDictLabel(this.userList, host[j]);
+                }
+              }
+              this.mgrList[i].hostString = hostString;
+            }
+            if (this.mgrList[i].recorder != null) {
+              let recorder = this.mgrList[i].recorder.split(",");
+              let recorderString = "";
+              for (let j = 0; j < recorder.length; j++) {
+                if (j > 0) {
+                  recorderString += "、" + this.selectDictLabel(this.userList, recorder[j]);
+                } else {
+                  recorderString += this.selectDictLabel(this.userList, recorder[i]);
+                }
+              }
+              this.mgrList[i].recorderString = recorderString;
+            }
+            if (this.mgrList[i].participants != null) {
+              let participants = this.mgrList[i].participants.split(",");
+              let participantsString = "";
+              for (let j = 0; j < participants.length; j++) {
+                if (j > 0) {
+                  participantsString += "、" + this.selectDictLabel(this.userList, participants[j]);
+                } else {
+                  participantsString += this.selectDictLabel(this.userList, participants[j]);
+                }
+              }
+              this.mgrList[i].participantsString = participantsString;
+            }
+            if (this.mgrList[i].absentees != null) {
+              let absentees = this.mgrList[i].absentees.split(",");
+              let absenteesString = "";
+              for (let j = 0; j < absentees.length; j++) {
+                if (j > 0) {
+                  absenteesString += "、" + this.selectDictLabel(this.userList, absentees[j]);
+                } else {
+                  absenteesString += this.selectDictLabel(this.userList, absentees[j]);
+                }
+              }
+              this.mgrList[i].absenteesString = absenteesString;
+            }
+            if (this.mgrList[i].attendees != null) {
+              let attendees = this.mgrList[i].attendees.split(",");
+              let attendeesString = "";
+              for (let j = 0; j < attendees.length; j++) {
+                if (j > 0) {
+                  attendeesString += "、" + this.selectDictLabel(this.userList, attendees[j]);
+                } else {
+                  attendeesString += this.selectDictLabel(this.userList, attendees[j]);
+                }
+              }
+              this.mgrList[i].attendeesString = attendeesString;
+            }
+          }
+          this.total = response.total;
+          this.loading = false;
+        });
       });
     },
     // 取消按钮
@@ -324,12 +448,42 @@ export default {
       const meetingId = row.meetingId || this.ids
       getMeeting(meetingId).then(response => {
         this.form = response.data;
+        if (this.form.host != null) {
+          this.form.host = this.form.host.split(",").map(Number);
+        }
+        if (this.form.recorder != null) {
+          this.form.recorder = this.form.recorder.split(",").map(Number);
+        }
+        if (this.form.participants != null) {
+          this.form.participants = this.form.participants.split(",").map(Number);
+        }
+        if (this.form.absentees != null) {
+          this.form.absentees = this.form.absentees.split(",").map(Number);
+        }
+        if (this.form.attendees != null) {
+          this.form.attendees = this.form.attendees.split(",").map(Number);
+        }
         this.open = true;
         this.title = "修改支部会议";
       });
     },
     /** 提交按钮 */
     submitForm() {
+      if (this.form.host != null) {
+        this.form.host = this.form.host.join();
+      }
+      if (this.form.recorder != null) {
+        this.form.recorder = this.form.recorder.join();
+      }
+      if (this.form.participants != null) {
+        this.form.participants = this.form.participants.join();
+      }
+      if (this.form.absentees != null) {
+        this.form.absentees = this.form.absentees.join();
+      }
+      if (this.form.attendees != null) {
+        this.form.attendees = this.form.attendees.join();
+      }
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.meetingId != null) {