humingbo 1 gadu atpakaļ
vecāks
revīzija
7098115b6a
3 mainītis faili ar 199 papildinājumiem un 14 dzēšanām
  1. 1 0
      .env.production
  2. 24 0
      src/api/meeting/meeting.js
  3. 174 14
      src/views/meeting/meeting.vue

+ 1 - 0
.env.production

@@ -4,3 +4,4 @@ ENV = 'production'
 # base api
 VUE_APP_BASE_API = '/api/oa'
 
+VUE_APP_CONTEXT_PATH = '/'

+ 24 - 0
src/api/meeting/meeting.js

@@ -45,5 +45,29 @@ export function list(){
   })
 }
 
+/**
+ * 根据id获取会议明细
+ * @param id
+ * @returns {*}
+ */
+export function getMeetingDetailsById(id){
+  return request({
+    url: '/meeting/getMeetingDetailsById?id='+id,
+    method: 'get'
+  })
+}
+
+/**
+ * 根据id 删除会议内容
+ * @param id
+ * @returns {*}
+ */
+export function deleteMeetingContentById(id){
+  return request({
+    url: '/meeting/deleteMeetingContentById?id='+id,
+    method: 'get'
+  })
+}
+
 
 

+ 174 - 14
src/views/meeting/meeting.vue

@@ -2,7 +2,7 @@
   <div class="app-container">
     <el-form  ref="formInline" v-model="formInline" size="mini" :inline="true">
       <el-form-item label="会议类别:">
-        <el-radio-group v-model="formInline.meetingEternal">
+        <el-radio-group v-model="formInline.meetingEternal" @input="chooseMeeting()">
           <el-radio-button label="0" value="0" >内部会议</el-radio-button>
           <el-radio-button label="1" value="1">外部会议</el-radio-button>
         </el-radio-group>
@@ -12,7 +12,7 @@
       </el-form-item>
       <el-form-item label="会议类型:">
         <el-select v-model="formInline.meetingType" placeholder="会议类型" clearable >
-          <el-option label="周例会" value="1" key="周例会">周例会</el-option>
+          <el-option label="周例会" value="1"  key="周例会">周例会</el-option>
           <el-option label="项目会议" value="2" key="项目会议">项目会议</el-option>
           <el-option label="实施会议" value="3" key="实施会议">实施会议</el-option>
           <el-option label="其他会议" value="4" key="其他会议">其他会议</el-option>
@@ -67,7 +67,12 @@
       </el-table-column>
       <el-table-column prop="address" label="参会人员">
          <template scope="scope">
-           <div>{{scope.row.outAttendees}}{{scope.row.innerAttendees}}</div>
+           <span>{{scope.row.outAttendees}}</span>
+           <span v-if="scope.row.outAttendees!=''">、</span>
+           <span v-for="(item,index) in JSON.parse(scope.row.innerAttendees) ">
+             <template v-if="index > 0">,</template>
+             <span>{{item.name}}</span>
+           </span>
          </template>
       </el-table-column>
       <el-table-column prop="createTime" label="创建时间" width="150">
@@ -75,8 +80,7 @@
       </el-table-column>
       <el-table-column label="操作" prop="op" width="150">
         <template slot-scope="scope">
-          <el-button size="mini" type="primary" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
-
+          <el-button size="mini" type="primary" @click="handleEdit(scope.row)">编辑</el-button>
           <el-button v-if="scope.row.status===0" size="mini" type="danger" @click="deleteMeeting( scope.row)">删除</el-button>
         </template>
       </el-table-column>
@@ -122,13 +126,19 @@
           <el-input size="small" v-model="editForm.outAttendees"></el-input>
         </el-form-item>
         <el-form-item label="内部参会人员:">
-          <el-input size="small" v-model="editForm.innerAttendees"></el-input>
+          <el-input size="small" v-model="editForm.innerAttendUsers" :disabled="true" @keyup.enter.native="openUsers()">
+            <el-button @click="openUsers" icon="el-icon-search" slot="append"></el-button>
+          </el-input>
         </el-form-item>
         <el-form-item label="主持人:">
-          <el-input size="small" v-model="editForm.emcee"></el-input>
+          <el-input size="small" v-model="editForm.emcee" :disabled="true" @keyup.enter.native="openUsers1('emcee')">
+            <el-button @click="openUsers1('emcee')" icon="el-icon-search" slot="append"></el-button>
+          </el-input>
         </el-form-item>
         <el-form-item label="记录人:">
-          <el-input size="small" v-model="editForm.recorder"></el-input>
+          <el-input size="small" v-model="editForm.recorder" :disabled="true" @keyup.enter.native="openUsers1('recorder')">
+            <el-button @click="openUsers1('recorder')" icon="el-icon-search" slot="append"></el-button>
+          </el-input>
         </el-form-item>
         <el-form-item label="会议内容:">
           <el-table
@@ -155,12 +165,46 @@
       </div>
     </el-dialog>
 
+    <el-dialog title="选择人员" :visible.sync="usersVisble" width="30%" @click="closeUserDialog">
+      <el-tree
+        ref="dept"
+        :data="userList"
+        node-key="id"
+        show-checkbox
+        :props="{label:'name'}" default-expand-all="true">
+      </el-tree>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="closeUserDialog">取消</el-button>
+        <el-button size="small" type="primary" class="title" @click="submitUserForm('editForm')">确定</el-button>
+      </div>
+    </el-dialog>
+
+    <el-dialog title="选择人员" :visible.sync="users1Visble" width="30%" @click="closeUser1Dialog">
+      <el-tree
+        ref="dept1"
+        :data="userList"
+        node-key="id"
+        :props="{label:'name'}" default-expand-all="true">
+      </el-tree>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="closeUser1Dialog">取消</el-button>
+        <el-button size="small" type="primary" class="title" @click="submitUser1Form('editForm')">确定</el-button>
+      </div>
+    </el-dialog>
+
   </div>
 </template>
 
 <script>
 import Pagination from '../../components/Page/Pagination'
-import {addMeeting,getMeetingsByPage,deleteMeeting} from '@/api/meeting/meeting'
+import {
+  addMeeting,
+  getMeetingsByPage,
+  deleteMeeting,
+  getMeetingDetailsById,
+  deleteMeetingContentById
+} from '@/api/meeting/meeting'
+import { getDeptUserTree } from '@/api/system/user'
 export default {
   name: 'Meeting',
   data() {
@@ -184,6 +228,7 @@ export default {
       editFormVisible: false,
       title : '创建会议',
       editForm: {
+        id:null,
         meetingName: '',
         external: 0,
         meetingType : '1',
@@ -191,13 +236,18 @@ export default {
         time: null,
         outAttendees : '',
         innerAttendees: '',
+        innerAttendesss: null,
+        innerAttendUsers:'',
         emcee : '',
         recorder: '',
         meetingContents: [
           {content: '会议内容','op':''}
-        ],
-      }
-
+        ]
+      },
+      usersVisble:false,
+      userList:[],
+      users1Visble:false,
+      users1Flag:''
     }
   },
   // 注册组件
@@ -206,8 +256,14 @@ export default {
   },
   mounted() {
     this.getData(this.formInline);
+    this.getDeptUserTrees();
   },
   methods: {
+    getDeptUserTrees(){
+      getDeptUserTree('').then(res => {
+        this.userList = res.data
+      });
+    },
     // 分页插件事件
     callFather(parm) {
       this.formInline.current = parm.current
@@ -235,16 +291,18 @@ export default {
     deleteRow(index,row){
       if(index==0){
         this.$message({
-          message: '不能删除工作内容',
+          message: '不能删除会议内容',
           type: 'warning'
         });
         return;
       }
       this.editForm.meetingContents.splice(index, 1)
+      deleteMeetingContentById(row.id).then(res =>{
+      });
     },
     submitForm(){
       let data=this.editForm;
-      addMeeting(data).then(response => {
+       addMeeting(data).then(response => {
         this.$message({
           message: '操作成功!',
           type: 'success'
@@ -278,6 +336,108 @@ export default {
         });
         this.getData(this.formInline);
       })
+    },
+    openUsers(){
+      this.usersVisble=true
+    },
+    closeUserDialog(){
+      this.usersVisble=false
+    },
+    submitUserForm(){
+      //获取选中的节点
+      let node=this.$refs.dept.getCheckedNodes();
+
+      if(node==undefined || node==null ||node.length===0){
+        this.$message({
+          message: '请选择人员数据!',
+          type: 'warning'
+        });
+        return;
+      }
+      let userList = []
+      let userName=''
+      let saveUsers=[]
+      node.forEach(item=>{
+        if(item.type==='u'){
+          userList.push(item);
+          userName+=item.name+'、';
+          saveUsers.push({
+            id: item.id,
+            name: item.name
+          })
+        }
+      })
+      userName=userName.substring(0,userName.length-1);
+      if(userList.length===0){
+        this.$message({
+          message: '请选择人员!',
+          type: 'warning'
+        });
+        return;
+      }
+      this.closeUserDialog()
+      this.editForm.innerAttendUsers=userName
+      this.editForm.innerAttendesss=saveUsers
+    },
+    closeUser1Dialog(){
+      this.users1Visble=false
+    },
+    openUsers1(data){
+      this.users1Visble=true
+      this.users1Flag=data
+    },
+    submitUser1Form(){
+      let node=this.$refs.dept1.getCurrentNode();
+      if(node==undefined || node==null){
+        this.$message({
+          message: '请选择数据!',
+          type: 'warning'
+        });
+        return;
+      }
+      if(node.type!=='u') {
+        this.$message({
+          message: '请选择人员!',
+          type: 'warning'
+        });
+        return;
+      }
+      let user1Flag=this.users1Flag;
+      if(user1Flag==='emcee'){
+        this.editForm.emcee=node.name
+      }else{
+        this.editForm.recorder=node.name
+      }
+
+      this.closeUser1Dialog()
+    },
+    handleEdit(row){
+      getMeetingDetailsById(row.id).then(res => {
+        let data=res.data
+        this.editForm=data
+        let users=JSON.parse(data.innerAttendees)
+        this.editForm.innerAttendees=''
+        for(var i=0;i<users.length;i++){
+          this.editForm.innerAttendees+=users[i].name+','
+        }
+        this.editForm.innerAttendees=  this.editForm.innerAttendees.substring(0,this.editForm.innerAttendees.length-1)
+        this.editForm.innerAttendesss=users;
+        this.editForm.innerAttendUsers=this.editForm.innerAttendees
+        this.editForm.meetingType=data.meetingType
+        let time=[];
+        time.push(data.beginTime);
+        time.push(data.endTime);
+        this.editForm.time=time;
+        this.title = '修改会议'
+        this.editFormVisible = true
+      });
+    },
+    chooseMeeting(){
+      let val=this.formInline.meetingEternal;
+      let search=this.formInline
+      search.meetingEternal=val;
+      this.getData(search)
+
     }
   }
 }