|
@@ -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) {
|