Przeglądaj źródła

app端三会一课

pengjing 9 miesięcy temu
rodzic
commit
21eaaff5e7

+ 16 - 5
parth5/parth5/src/app/api/partylife/shyk/index.ts

@@ -52,15 +52,26 @@ export class SHYKApi {
     return this.configService.HttpGetRomote('/appApi/shyk/getHistoryAddressList', {userId: userId});
   }
 
-  save(data: any, topicList: any, userList: any, userId: string, userName: string, isnotify: any, shykstatus: any): Observable<RequsetData> {
+  save(data: any, userList: any, typeList: any, democracyReviewList: any, userId: string, userName: string): Observable<RequsetData> {
     return this.configService.HttpPostRomote('/appApi/shyk/saveMeeting', {
       dataModel: data,
-      topicList: JSON.stringify(topicList),
       userList: JSON.stringify(userList),
+      typeList: JSON.stringify(typeList),
+      democracyReviewList: JSON.stringify(democracyReviewList),
       userId: userId,
-      userName: userName,
-      isnotify: isnotify,
-      shykstatus: shykstatus
+      userName: userName
+    });
+  }
+
+  getMeetingDemocracyReviewList(meetingId: string): Observable<RequsetData> {
+    return this.configService.HttpGetRomote('/appApi/shyk/getMeetingDemocracyReviewList', {
+      meetingId: meetingId
+    });
+  }
+
+  getMeetingTypeList(meetingId: string): Observable<RequsetData> {
+    return this.configService.HttpGetRomote('/appApi/shyk/getMeetingTypeList', {
+      meetingId: meetingId
     });
   }
 

+ 90 - 60
parth5/parth5/src/app/views/pages/partylife/shyk/edit/edit.component.html

@@ -14,42 +14,25 @@
       </ion-label>
       <ion-select #v_meetingtype_select="ngModel" name="v_meetingtype_select"
                   id="v_meetingtype_select"
-                  [(ngModel)]="dataModel.shyktype" okText="确定" cancelText="取消"
-                  interface="action-sheet" (ngModelChange)="changeType()" required>
+                  [(ngModel)]="selectShyktype" okText="确定" cancelText="取消"
+                  interface="action-sheet"
+                  [multiple]="true"
+                  required>
         <ion-select-option *ngFor="let item of typeList"
-                           [value]="item.id">{{item.name}}</ion-select-option>
+                           [value]="item.dickey">{{item.dicvalue}}</ion-select-option>
       </ion-select>
     </ion-item>
     <ion-item mode="md">
-      <ion-label *ngIf="dataModel.shyktype !=4">会议议题
-        <span class="danger">*</span>
-      </ion-label>
-      <ion-label *ngIf="dataModel.shyktype ==4">会议主题
-        <span class="danger">*</span>
-      </ion-label>
+      <ion-label>议题</ion-label>
+      <ion-textarea readonly="false" placeholder="请填写议题" name="topiccontent"
+                    [(ngModel)]="dataModel.topiccontent"></ion-textarea>
     </ion-item>
-    <div class="topics">
-      <div *ngFor="let it of topicList;" [ngClass]="it.ID == ''?'topics-other':''">
-                    <span *ngIf="it.ID != ''" (click)="it.checked=(it.checked==true?false:true)"
-                          ngClass="{{it.checked==true?'topic-select':'topic-select-n'}}">{{it.MBMC}}
-                    </span>
-        <ion-item *ngIf="it.ID == ''" mode="md">
-          <ion-input #v_ytmc="ngModel" name="v_ytmc"
-                     placeholder="{{dataModel.shyktype !=4?'输入其他议题':'输入会议主题'}}"
-                     [(ngModel)]="it.MBMC">
-          </ion-input>
-        </ion-item>
-      </div>
-    </div>
     <ion-item detail mode="md">
-      <ion-label *ngIf="dataModel.shyktype!=3">所属党支部
-        <span class="danger">*</span>
-      </ion-label>
-      <ion-label *ngIf="dataModel.shyktype==3">所属党小组
+      <ion-label>所属党支部
         <span class="danger">*</span>
       </ion-label>
       <app-partyselect [(dzzdm)]="dataModel.partycode" [(dzzmc)]="dataModel.partyname"
-                       (dzzmcChange)="setMeetingname(dataModel.shyktype);defaultUser();"></app-partyselect>
+                       (dzzmcChange)="defaultUser();"></app-partyselect>
     </ion-item>
     <ion-item mode="md">
       <ion-label>会议名称
@@ -95,48 +78,37 @@
                     [(ngModel)]="dataModel.begintime"
                     [pickerOptions]="begintimePickerOptions"
                     max="{{maxDate}}"
-                    (ionChange)="meetingDateChange()"
                     required></ion-datetime>
     </ion-item>
-    <!--<ion-item *ngIf="isUploadFile" style="--inner-border-width: 0px 0px 0px 0px;">
+    <ion-item detail mode="md">
+      <ion-label>是否第一议题</ion-label>
+      <ion-select #v_meetingfirsttopic_select="ngModel" name="v_meetingfirsttopic_select"
+                  id="v_meetingfirsttopic_select"
+                  [(ngModel)]="dataModel.isfirsttopic" okText="确定" cancelText="取消"
+                  interface="action-sheet">
+        <ion-select-option *ngFor="let item of boolList"
+                           [value]="item.dickey">{{item.dicvalue}}</ion-select-option>
+      </ion-select>
+    </ion-item>
+    <ion-item style="--inner-border-width: 0px 0px 0px 0px;">
       <ion-label>会场照片</ion-label>
     </ion-item>
-    <app-imglist *ngIf="isUploadFile" [(imgOption)]="imgOption1"></app-imglist>
-    <ion-item *ngIf="isUploadFile" style="--min-height: 1px;--inner-border-width: 0px 0px 1px 0px;--padding-start: 0px;"></ion-item>-->
-    <ion-item *ngIf="isUploadFile" style="--inner-border-width: 0px 0px 0px 0px;">
-      <ion-label>相关记录</ion-label>
+    <app-imglist [(imgOption)]="imgOption1"></app-imglist>
+    <ion-item style="--min-height: 1px;--inner-border-width: 0px 0px 1px 0px;--padding-start: 0px;"></ion-item>
+    <ion-item style="--inner-border-width: 0px 0px 0px 0px;">
+      <ion-label>台账记录</ion-label>
     </ion-item>
     <app-imglist [(imgOption)]="imgOption2"></app-imglist>
-    <ion-label  style="color: red;">备注:以上可上传会议记录、现场照片,此项为选传项,仅作资料留存,不作为必传项点,也不得作为检查、考核项点。</ion-label>
     <ion-item style="--min-height: 5px;--inner-border-width: 0px 0px 1px 0px;--padding-start: 0px;"></ion-item>
 
     <ion-item mode="md">
-      <ion-label>参会人({{userList.length}}人)
+      <ion-label style="min-width: 150px  !important;">参会人({{userList.length}}人)
         <span class="danger">*</span>
       </ion-label>
-      <ion-button (click)="selectUser()" fill="clear" size="large">
+      <ion-button (click)="selectUser()" fill="clear" size="large" slot="end">
         <ion-icon name="add-circle-outline" size="large" color="danger"></ion-icon>
       </ion-button>
     </ion-item>
-    <!--<div class="users">
-      <div *ngFor="let it of userList;let idx=index">
-        <ion-text>{{it.XM}}</ion-text>
-        <ion-icon name="remove-circle" color="danger" (click)="deleteUser(idx)"></ion-icon>
-      </div>
-    </div>-->
-    <!--<ion-item class="meeting-user">
-      <ion-row class="meeting-user-row" style="margin-left: 10px;margin-bottom: 10px;">
-        <ion-col size="12">
-          <ion-row class="user-item" *ngFor="let us of userList;let idx=index">
-            <ion-col size="6">{{us.XM}}</ion-col>
-            <ion-col size="3" (click)="editUserSignin(us,null)" ><span class="user-edit">{{us.SIGNINSTATUS==2?"参加":"未参加"}}</span>
-            </ion-col>
-            <ion-col size="3" (click)="deleteUser(idx)"><span class="user-edit">删除</span>
-            </ion-col>
-          </ion-row>
-        </ion-col>
-      </ion-row>
-    </ion-item>-->
     <ion-grid>
       <ion-row>
         <ion-col size="4">
@@ -149,7 +121,7 @@
           操作
         </ion-col>
       </ion-row>
-      <ion-row *ngFor="let us of userList;let idx=index">
+      <ion-row *ngFor="let us of userList;let idx=index" [ngClass]="{'border-none':idx===userList.length-1 && isEditDemocracyReview()}">
         <ion-col size="4">
           {{us.XM}}
         </ion-col>
@@ -162,13 +134,71 @@
         </ion-col>
       </ion-row>
     </ion-grid>
-    <ion-toolbar class="toolbar-center">
+    <ion-item *ngIf="isEditDemocracyReview()" style="--min-height: 5px;--inner-border-width: 0px 0px 1px 0px;--padding-start: 0px;"></ion-item>
+    <ion-item *ngIf="isEditDemocracyReview()" mode="md">
+      <ion-label style="min-width: 200px !important;">民主评议党员名单({{democracyReviewList.length}}人)
+        <span class="danger">*</span>
+      </ion-label>
+      <ion-button (click)="selectDemocracyReviewUser()" fill="clear" size="large" slot="end">
+        <ion-icon name="add-circle-outline" size="large" color="danger"></ion-icon>
+      </ion-button>
+    </ion-item>
+    <ion-grid *ngIf="isEditDemocracyReview()">
+      <ion-row>
+        <ion-col size="2">
+          姓名
+        </ion-col>
+        <ion-col size="3">
+          开展评议日期
+        </ion-col>
+        <ion-col size="3">
+          结束评议日期
+        </ion-col>
+        <ion-col size="2">
+          评议结果
+        </ion-col>
+        <ion-col size="2">
+          操作
+        </ion-col>
+      </ion-row>
+      <ion-row *ngFor="let us of democracyReviewList;let idx=index">
+        <ion-col size="2">
+          {{us.userName}}
+        </ion-col>
+        <ion-col size="3">
+          <ion-datetime displayFormat="YYYY-MM-DD" pickerFormat="YYYY MM DD"
+                        name="startdate_{{idx}}"
+                        cancelText="取消" doneText="选择" placeholder="请选择"
+                        [(ngModel)]="us.startdate"
+                        required></ion-datetime>
+        </ion-col>
+        <ion-col size="3">
+          <ion-datetime displayFormat="YYYY-MM-DD" pickerFormat="YYYY MM DD"
+                        name="enddate_{{idx}}"
+                        cancelText="取消" doneText="选择" placeholder="请选择"
+                        [(ngModel)]="us.enddate"
+                        required></ion-datetime>
+        </ion-col>
+        <ion-col size="2">
+          <ion-select name="democracyreviewresulttype_{{idx}}"  placeholder="请选择"
+                      [(ngModel)]="us.democracyreviewresulttype" okText="确定" cancelText="取消"
+                      interface="action-sheet">
+            <ion-select-option *ngFor="let item of democracyReviewResultTypeList"
+                               [value]="item.dickey">{{item.dicvalue}}</ion-select-option>
+          </ion-select>
+        </ion-col>
+        <ion-col size="2" class="grid-btn">
+          <span (click)="editUserSignin(us,null)">修改</span>
+          <span (click)="deleteUser(idx)">删除</span>
+        </ion-col>
+      </ion-row>
+    </ion-grid>
+    <div class="footer-btn">
       <ion-button slot="end" color="danger" mode="ios"
-                  (click)="saveMeeting(1,true)"
-                  [disabled]="!dataForm.form.valid">
+                  (click)="saveMeeting()"  [disabled]="!dataForm.form.valid">
         提交
       </ion-button>
-    </ion-toolbar>
+    </div>
   </form>
 </ion-content>
 

+ 12 - 0
parth5/parth5/src/app/views/pages/partylife/shyk/edit/edit.component.scss

@@ -153,6 +153,7 @@ app-partyselect{
 ion-grid {
   padding: 0px;
   color: #5E4545;
+  font-size: 14px;
 
   ion-row {
     padding: 5px 12px;
@@ -162,6 +163,14 @@ ion-grid {
       display: -webkit-box;
       -webkit-box-orient: horizontal;
       -webkit-box-align: center;
+
+      ion-datetime{
+        --padding-start: 0px;
+      }
+
+      ion-select{
+        --padding-start: 0px;
+      }
     }
 
     ion-col:not(:first-child) {
@@ -187,3 +196,6 @@ ion-grid {
     background-color: white;
   }
 }
+.border-none{
+  border-bottom: none !important;
+}

+ 118 - 145
parth5/parth5/src/app/views/pages/partylife/shyk/edit/edit.component.ts

@@ -10,6 +10,8 @@ import {WorkService} from "../../../../../service/work.service";
 import {EventService} from "../../../../../service/event.service";
 import {SHYKApi} from "../../../../../api/partylife/shyk";
 import OperateEnum from "../../../../../enum/OperateEnum";
+import {DictionaryApi} from "../../../../../api/system/dictionary";
+import {AlertModal} from "../../../../../comm/modal/alert";
 
 @Component({
   selector: 'app-edit',
@@ -23,13 +25,10 @@ export class EditComponent implements OnInit {
   loading: any = null;
   userInfo: any = {};
   selectUserUrl: string = "/appApi/home/getPartyUserList";
+  democracyReviewType: number = 7;
 
   dataModel: any = {meetingid: ''};
-  typeList: any = [{id: 1, name: '党员大会'}, {id: 2, name: '支委会'}, {id: 3, name: '党小组会'}, {
-    id: 4,
-    name: '党课'
-  }];
-  topicList: any = [{TOPICNAME: ''}, {}];
+  typeList: any = [];
   userList: any = [];
   historyAddressList: any = [];
 
@@ -39,7 +38,6 @@ export class EditComponent implements OnInit {
   begintime: string = '';
   endDate: string = '';
   endtime: string = '';
-  isUploadFile: boolean = false;
   maxDate: any = moment(new Date()).add(1, 'M').format("YYYY-MM-DD");
   imgOption1: any = {
     fileRefid: '',
@@ -55,10 +53,15 @@ export class EditComponent implements OnInit {
     isMulti: false,
     readonly: false
   };
+  boolList: any = [{dickey: true, dicvalue: '是'}, {dickey: false, dicvalue: '否'}];
+  democracyReviewList: any = [];
+  meetingTypeList: any = [];
+  democracyReviewResultTypeList: any = [];
+  selectShyktype: any = [];
 
   constructor(private datePipe: DatePipe, private router: Router, private routeInfo: ActivatedRoute, private configService: ConfigService, private userService: UserService, public alertController: AlertController,
-              public modalController: ModalController, public loadingController: LoadingController, public pickercontroller: PickerController, private workService: WorkService, private eventService: EventService
-    , private shykApi: SHYKApi) {
+              public modalController: ModalController, public pickercontroller: PickerController, private workService: WorkService, private eventService: EventService
+    , private shykApi: SHYKApi, private dictionaryApi: DictionaryApi, private alertModal: AlertModal) {
   }
 
   ngOnInit() {
@@ -68,7 +71,7 @@ export class EditComponent implements OnInit {
       this.op = parseInt(params['op']);
       this.imgOption1.fileRefid = this.dataModel.meetingid;
       this.imgOption2.fileRefid = this.dataModel.meetingid;
-
+      this.getDictionList();
       this.loadData();
     });
 
@@ -80,7 +83,7 @@ export class EditComponent implements OnInit {
       }, {
         text: '选择',
         handler: (value) => {
-          this.beginDate = value.year.text + '/' + value.month.text + '/' + value.day.text;
+          this.beginDate = value.year.text + '-' + value.month.text + '-' + value.day.text;
           this.openTimePicker(1);
         }
       }]
@@ -93,48 +96,16 @@ export class EditComponent implements OnInit {
       }, {
         text: '选择',
         handler: (value) => {
-          this.endDate = value.year.text + '/' + value.month.text + '/' + value.day.text;
+          this.endDate = value.year.text + '-' + value.month.text + '-' + value.day.text;
           this.openTimePicker(2);
         }
       }]
     }
   }
 
-  //加载会议信息
-  loadData() {
-    this.shykApi.getData(this.dataModel.meetingid).subscribe((data: RequsetData) => {
-      if (data.success && data.item != null) {
-        this.dataModel = data.item;
-
-        if (this.op === OperateEnum.新增) {
-          this.dataModel.shyktype = 1;
-          this.dataModel.chairuser = this.userInfo.username;
-          this.dataModel.partycode = this.userService.GetUser().dataDzzdm.length <= 9 ? this.userInfo.DZZDM : this.userService.GetUser().dataDzzdm;
-          this.dataModel.partyname = this.userService.GetUser().dataDzzdm.length <= 9 ? this.userInfo.DZZMC : this.userService.GetUser().dataDzzmc;
-
-          this.setMeetingname(this.dataModel.shyktype);
-        }
-
-        this.imgOption1.fileRefid = this.dataModel.meetingid;
-        this.imgOption2.fileRefid = this.dataModel.meetingid;
-
-        this.loadTopicList();
-        this.loadUserList();
-        this.loadHistoryAddressList();
-        this.setUploadFile();
-      }
-    });
-  }
-
   //保存会议
-  saveMeeting(shykstatus, isnotify) {
-    var topics = this.topicList.filter(it => {
-      return (it.checked == true || (it.ID == '' && it.MBMC != ''));
-    }).map(function (val) {
-      return {mbmc: val.MBMC, id: val.ID};
-    });
-
-    var users = this.userList.map(function (val) {
+  saveMeeting() {
+    const users = this.userList.map(function (val) {
       return {
         rybm: val.RYBM,
         xm: val.XM,
@@ -145,115 +116,103 @@ export class EditComponent implements OnInit {
       };
     });
 
-    if (topics.length <= 0) {
-      this.presentAlert(this.dataModel.shyktype == 4 ? "请填写会议主题" : "请选择议题");
-      return false;
-    }
+    const typeList = this.selectShyktype.map(function (val) {
+      return {
+        shyktype: val
+      }
+    });
+
     if (users.length <= 0) {
-      this.presentAlert("请选择参会人");
+      this.alertModal.alert("请选择参会人");
       return false;
     }
 
-    this.dataModel.begintime = new Date(this.datePipe.transform(this.dataModel.begintime, "yyyy/MM/dd HH:mm:ss"));
-    /*this.dataModel.endtime = new Date(this.datePipe.transform(this.dataModel.endtime, "yyyy/MM/dd HH:mm:ss"));
-    if (this.dataModel.begintime >= this.dataModel.endtime) {
-      this.presentAlert('开始时间必须小于结束时间');
-      return false;
-    }*/
-
-    this.presentLoading("提交中...").then(val => {
-      this.shykApi.save(this.dataModel, topics, users, this.userInfo.userid, this.userInfo.username, isnotify, shykstatus).subscribe((fdata: RequsetData) => {
-        this.loading.dismiss();
+    this.alertModal.loading("提交中...").then((loading) => {
+      this.shykApi.save(this.dataModel, users, typeList, this.isEditDemocracyReview() ? this.democracyReviewList : []
+        , this.userInfo.userid, this.userInfo.username).subscribe((fdata: RequsetData) => {
+        loading.dismiss();
         if (fdata.success) {
           if (moment(this.dataModel.begintime) > moment(new Date())) {
-            this.presentAlert("会议已经提交成功!本次提交的会议为计划会议,请在会议结束后上传会议照片、台账记录、以及考勤信息内容。");
+            this.alertModal.alert("提交成功!本次提交的会议为计划会议,请在会议结束后上传会议照片、台账记录、以及考勤信息内容。");
           } else {
-            this.presentAlert(fdata.msg);
+            this.alertModal.alert('提交成功!');
           }
           this.back();
           /*this.eventService.eventEmit.emit('reloadShykList', '刷新页面');
           this.workService.getWorkSettingList();*/
         } else {
-          this.presentAlert(fdata.msg);
+          this.alertModal.alert(fdata.msg);
         }
+      }, () => {
+        loading.dismiss();
       });
     });
   }
 
-  //会议类型变更
-  changeType() {
-    this.setMeetingname(this.dataModel.shyktype);
-    //this.setUserUrl();
-    this.loadTopicList();
-    this.defaultUser();
-  }
-
-  //会议名称
-  setMeetingname(typeId) {
-    //会议名称默认值【类型】部门[日期]
+  isEditDemocracyReview = function () {
+    return this.selectShyktype.filter(e => e === this.democracyReviewType).length > 0;
+  };
 
-    let meetingDate = this.dataModel.begintime || new Date();
+  //删除参会成员
+  deleteUser(idx) {
+    this.userList.splice(idx, 1);
+  }
 
-    this.dataModel.meetingname = "【" + this.typeList.filter(it => it.id == typeId)[0].name + "】" +
-      this.dataModel.partyname + "[" + this.datePipe.transform(meetingDate, 'yyyyMM') + "]";
+  //选择参会成员
+  selectUser() {
+    this.presentModal(1);
   }
 
-  setUploadFile() {
-    this.isUploadFile = this.dataModel.begintime != null && moment(this.dataModel.begintime) <= moment(new Date());
-  };
+  selectDemocracyReviewUser() {
+    this.presentModal(2);
+  }
 
-  meetingDateChange() {
-    this.setMeetingname(this.dataModel.shyktype);
-    this.setUploadFile();
-  };
+  //加载会议信息
+  loadData() {
+    this.shykApi.getData(this.dataModel.meetingid).subscribe((data: RequsetData) => {
+      if (data.success && data.item != null) {
+        this.dataModel = data.item;
 
-  //加载题议
-  loadTopicList() {
-    this.shykApi.getTopicList(this.dataModel.meetingid, this.dataModel.shyktype).subscribe((data: RequsetData) => {
-      if (data.success) {
-        if (data.item != null) {
-          this.topicList = data.item;
-          this.topicList.forEach((it) => {
-            if (it.MEETINGTOPICID != null && it.MEETINGTOPICID != "") {
-              it.checked = true;
-            }
-          });
+        if (this.op === OperateEnum.新增) {
+          this.dataModel.chairuser = this.userInfo.username;
+          this.dataModel.partycode = this.userInfo.DZZDM;
+          this.dataModel.partyname = this.userInfo.DZZMC;
         }
+
+        this.imgOption1.fileRefid = this.dataModel.meetingid;
+        this.imgOption2.fileRefid = this.dataModel.meetingid;
+
+        this.getUserList();
+        this.getHistoryAddressList();
+        this.getMeetingTypeList();
+        this.getMeetingDemocracyReviewList();
       }
     });
   }
 
   //加载人员
-  loadUserList() {
+  getUserList() {
     this.shykApi.getMeetingUserList(this.dataModel.meetingid).subscribe((data: RequsetData) => {
       if (data.success) {
         if (data.item != null) {
           this.userList = data.item.list;
         }
       }
-
       if (this.userList.length <= 0) {
         this.defaultUser();
       }
     });
-
   }
 
   //初始化参会成员
   defaultUser() {
     this.userList = [];
     var dzzdm = this.dataModel.partycode;
-    var szdzbdm = '';
     var getUserUrl = this.selectUserUrl;
-    if (this.dataModel.shyktype == 2) {
-      szdzbdm = this.dataModel.partycode;
-      getUserUrl = "/appApi/home/getLeaderUserList";//支委领导成员
-    }
 
     this.configService.HttpGetRomote(getUserUrl, {
       pageindex: 1,
       pagesize: 10000,
-      szdzbdm: szdzbdm,
       dzzdm: dzzdm
     }).subscribe((data: RequsetData) => {
       if (data.success) {
@@ -267,17 +226,21 @@ export class EditComponent implements OnInit {
     });
   }
 
-  //删除参会成员
-  deleteUser(idx) {
-    this.userList.splice(idx, 1);
-  }
+  getDictionList() {
+    this.dictionaryApi.getDictionaryList('shykType').subscribe((data: RequsetData) => {
+      if (data.success) {
+        this.typeList = data.item;
+      }
+    });
 
-  //选择参会成员
-  selectUser() {
-    this.presentModal();
+    this.dictionaryApi.getDictionaryList('DemocracyReviewResultType').subscribe((data: RequsetData) => {
+      if (data.success) {
+        this.democracyReviewResultTypeList = data.item;
+      }
+    });
   }
 
-  loadHistoryAddressList() {
+  getHistoryAddressList() {
     this.shykApi.getHistoryAddressList(this.userInfo.userid).subscribe((data: RequsetData) => {
       if (data.success) {
         if (data.item != null) {
@@ -290,34 +253,31 @@ export class EditComponent implements OnInit {
     });
   }
 
-  //取消
-  back() {
-    this.router.navigate(['../../shyk'], {relativeTo: this.routeInfo});
-  }
-
-  async presentLoading(msg: string) {
-    this.loading = await this.loadingController.create({
-      message: msg,
-      spinner: 'circles'
+  getMeetingTypeList() {
+    this.shykApi.getMeetingTypeList(this.dataModel.meetingid).subscribe((data: RequsetData) => {
+      if (data.success) {
+        this.meetingTypeList = data.item;
+      }
     });
-    return this.loading.present();
   }
 
-  async presentAlert(msg: string) {
-    const alert = await this.alertController.create({
-      header: '提示',
-      subHeader: '',
-      message: msg,
-      buttons: ['确定']
+  getMeetingDemocracyReviewList() {
+    this.shykApi.getMeetingDemocracyReviewList(this.dataModel.meetingid).subscribe((data: RequsetData) => {
+      if (data.success) {
+        this.democracyReviewList = data.item;
+      }
     });
+  }
 
-    await alert.present();
+  //取消
+  back() {
+    this.router.navigate(['../../shyk'], {relativeTo: this.routeInfo});
   }
 
   //人员选择控件
-  async presentModal() {
-    var removeUsers = this.userList.map(it => it.RYBM).join(',');
-    var szdzbdm = this.dataModel.shyktype == 2 ? this.userInfo.DZZDM : '';
+  async presentModal(type) {
+    /*var removeUsers = this.userList.map(it => it.RYBM).join(',');*/
+    /*var szdzbdm = this.dataModel.shyktype == 2 ? this.userInfo.DZZDM : '';*/
 
     const modal = await this.modalController.create({
       component: UserselectPage,
@@ -325,10 +285,10 @@ export class EditComponent implements OnInit {
         'pageindex': 1,
         'pagesize': 30,
         'dzzdm': this.dataModel.partycode,
-        'removeUsers': removeUsers,
+        /*'removeUsers': removeUsers,*/
         'xm': '',
         'getUserUrl': this.selectUserUrl,
-        'szdzbdm': szdzbdm
+        /*'szdzbdm': szdzbdm*/
       }
     });
 
@@ -338,16 +298,29 @@ export class EditComponent implements OnInit {
     if (data.rtnData != null && data.rtnData.length > 0) {
       var us = data.rtnData;
 
-      for (var i = 0; i < us.length; i++) {
-        if (this.userList.filter(it => {
-          return it.RYBM == us[i].rybm
-        }).length <= 0) {
-          this.userList.push({
-            RYJBXXBS: us[i].ryjbxxbs, RYBM: us[i].rybm, XM: us[i].xm,
-            SZDZBDM: us[i].szdzbdm,
-            DZZMC: us[i].szdzzmc,
-            SIGNINSTATUS: 2
-          });
+      if (type === 1) {
+        for (var i = 0; i < us.length; i++) {
+          if (this.userList.filter(it => {
+            return it.RYBM == us[i].rybm
+          }).length <= 0) {
+            this.userList.push({
+              RYJBXXBS: us[i].ryjbxxbs, RYBM: us[i].rybm, XM: us[i].xm,
+              SZDZBDM: us[i].szdzbdm,
+              DZZMC: us[i].szdzzmc,
+              SIGNINSTATUS: 2
+            });
+          }
+        }
+      } else {
+        for (var i = 0; i < us.length; i++) {
+          if (this.democracyReviewList.filter(it => {
+            return it.usercode == us[i].rybm
+          }).length <= 0) {
+            this.democracyReviewList.push({
+              usercode: us[i].rybm,
+              userName: us[i].xm,
+            });
+          }
         }
       }
 
@@ -426,7 +399,7 @@ export class EditComponent implements OnInit {
         text: '未参加',
         handler: (result) => {
           if (result.userremark == "" || result.userremark == null) {
-            this.presentAlert("请填写未参加原因");
+            this.alertModal.alert("请填写未参加原因");
             return false;
           }
           user.SIGNINSTATUS = 3;

+ 2 - 5
parth5/parth5/src/app/views/pages/partylife/shyk/shyk.component.html

@@ -28,13 +28,10 @@
           </ion-row>
           <ion-row class="item-subtitle">
             <ion-label class="item-subtitle-type">
-              {{item.SHYKTYPENAME}}
-            </ion-label>
-            <ion-label *ngIf="item.PARTYCODE.length>12" style="white-space: normal;">
-              {{item.DWMC}}
+              {{item.shykTypeNames}}
             </ion-label>
             <ion-label>
-              <span class="text-month">   {{item.BEGINTIME | date:'yyyy-MM-dd HH:mm'}}</span>
+              <span class="text-month">{{item.BEGINTIME | date:'yyyy-MM-dd HH:mm'}}</span>
             </ion-label>
           </ion-row>
         </ion-label>

+ 3 - 1
parth5/parth5/src/app/views/pages/partylife/shyk/shyk.component.scss

@@ -36,12 +36,14 @@ ion-label {
 }
 
 .item-subtitle {
+  display: flex;
+  justify-content: space-between;
   .item-subtitle-type {
     border: 1px solid #da2c36;
     color: #da2c36;
     background-color: white;
     border-radius: 3px;
-    padding: 1px 5px 0px 5px;
+    padding: 0px 5px 0px 5px;
   }
 
   .item-subtitle-state {

+ 3 - 1
parth5/parth5/src/app/views/tapp/tab-main/tab-main.module.ts

@@ -16,6 +16,7 @@ import {PhotoSwipeComponent} from "../../../comm/modal/photo-swipe/photo-swipe.c
 import {MyfilterPipe} from "../../../comm/pipes/myfilter.pipe";
 import {SelectuserComponent} from "../../pages/partyuser/party-dues/selectuser/selectuser.component";
 import {BimageComponent} from "../../../comm/modal/bimage/bimage.component";
+import {UserselectPage} from "../../../comm/modal/userselect/userselect.page";
 
 const pubComponents = [
   PartysearchComponent,
@@ -28,7 +29,8 @@ const pubComponents = [
   PhotoSwipeComponent,
   MyfilterPipe,
   SelectuserComponent,
-  BimageComponent
+  BimageComponent,
+  UserselectPage
 ];
 
 /*function getRoutesComponent(routes: Routes) {

+ 3 - 3
src/main/java/com/ghsc/partybuild/controller/app/AppShykController.java

@@ -35,7 +35,7 @@ public class AppShykController {
     @GetMapping("/getMeetingList")
     public RequsetData<PageInfo<HashMap<String, Object>>> GetMeetingList(@RequestParam("pageIndex") int pageIndex,
                                                                          @RequestParam("pageSize") int pageSize, @RequestParam(required = false) String dzzdm, @RequestParam(required = false) String userId,
-                                                                         @RequestParam(required = false) List<String> shykType, @RequestParam(required = false) String title,
+                                                                         @RequestParam(required = false) List<Integer> shykType, @RequestParam(required = false) String title,
                                                                          @RequestParam(required = false) String startDate,
                                                                          @RequestParam(required = false) String endDate) {
 
@@ -44,7 +44,7 @@ public class AppShykController {
 
         RequsetData<PageInfo<HashMap<String, Object>>> result = new RequsetData<>();
 
-        result.setItem(shykService.getMeetingListByApp(pageIndex, pageSize, dzzdm, userId, null, shykType, title, startDate, endDate));
+        result.setItem(shykService.getMeetingList(pageIndex, pageSize, dzzdm, title, null, startDate, endDate, null, shykType, userId, null, null, null));
         HashMap<String, Object> extData = new HashMap<String, Object>();
 
         result.setExtdata(extData);
@@ -84,7 +84,7 @@ public class AppShykController {
             if (model.getShyktype() != null) {
                 shykTypeName = dictionaryService.getDicByKey(model.getShyktype(), dic_shykType).getDicvalue();
             }
-            model.setMeetingname("【" + shykTypeName + "】" + model.getPartyname() + "[" + dateUtils.dateToStrFormat(new Date(), "yyyyMM") + "]");
+            //model.setMeetingname("【" + shykTypeName + "】" + model.getPartyname() + "[" + dateUtils.dateToStrFormat(new Date(), "yyyyMM") + "]");
         }
         //计算会议时间与当前时间差
         /*if (model.getBegintime() != null) {

+ 10 - 73
src/main/resources/mapping/SHYKCQuery.xml

@@ -42,14 +42,18 @@
                    from SHYK_Meeting_Type t
                    inner join cf_dictionary dic on t.shykType = dic.DICKEY and dic.DICTYPEKEY = 'shykType'
                    where 1=1
-                   <if test="shykType != null and shykType.size()>0">
-                       and shykType in
-                       <foreach collection="shykType" item="shyktype" index="index" open="(" close=")" separator=",">
-                           #{shyktype}
-                       </foreach>
-                   </if>
             group by meetingId
         ) st on m.meetingId = st.meetingId
+        <if test="shykType != null and shykType.size()>0">
+            inner join (
+                select meetingId from SHYK_Meeting_Type where 1=1
+                and shykType in
+                <foreach collection="shykType" item="shyktype" index="index" open="(" close=")" separator=",">
+                #{shyktype}
+            </foreach>
+                group by meetingId
+            ) tt on m.meetingId = tt.meetingId
+        </if>
         where 1=1 and m.OPERATESTATE in ('A','M')
         <if test="partyCode != null and partyCode != ''">
             and m.partyCode like concat('',#{partyCode},'%')
@@ -473,73 +477,6 @@
     </update>
 
 
-    <select id="selectMeetingListByApp" resultType="java.util.HashMap">
-        SELECT MEETINGID,
-        MEETINGNAME,
-        SHYKTYPE,
-        z.DZZMC as PARTYNAME ,
-        PARTYCODE,
-        MEETINGADDRESS,
-        CHAIRUSER,
-        RECORDUSER,
-        BEGINTIME,
-        ENDTIME,
-        ISTEMP,
-        SHYKSTATUS,
-        CREATETIME,
-        CREATEUSERID,
-        CREATEUSERNAME,
-        UPDATETIME,
-        UPDATEUSERID,
-        UPDATEUSERNAME,
-        MEETINGAPPROVESTATUS,
-        MEETINGAPPROVEUSERNAME,
-        (case when dw2.ZZLB =100 then  dw2.DZZMC   else  dw.DZZMC  end) DWMC,
-        DECISIONSTATUS,-- 决议填写状态 0保存中,1已提交
-        ISUPLOADIMG, -- 是否上传会议图片 0未上传,1已上传
-        MEETINGRECORDSTATE,-- 会议填写状态 0保存中,1已提交
-        ROUND((ENDTIME - BEGINTIME) * 24,2) as MEETINGTIME, -- 会议时长(小时)
-        (case
-        when BEGINTIME <![CDATA[ > ]]> sysdate() then 1 else 2 end ) as STATUS, -- 1会议未开始,2会议已开始
-        (sysdate()-ENDTIME) as endLongTime -- 会议结束时长
-        FROM SHYK_MEETING m
-        inner join ZZ_ZZQKXX z on m.PARTYCODE=z.DZZDM
-        inner join ZZ_ZZQKXX dw on SUBSTR(m.PARTYCODE,1,12)=dw.DZZDM
-        inner join (
-          select zz2.DZZDM,zz2.DZZMC,fb2.ZZLB from ZZ_ZZQKXX zz2 inner join ZZ_ZZQKXXFB fb2 on zz2.DZZDM=fb2.DZZDM
-        ) dw2 on SUBSTR(m.PARTYCODE,1,15)=dw2.DZZDM
-        where 1=1 and m.OPERATESTATE <![CDATA[ <> ]]> 'D' and m.SHYKSTATUS <![CDATA[ <> ]]> 2
-        <if test="type != null">
-            <if test="type==1">-- 未开始
-                and m.BEGINTIME <![CDATA[ >= ]]> sysdate()
-                and m.SHYKSTATUS not in (2) -- 排除已取消
-            </if>
-            <if test="type==2">-- 已结束
-                and m.ENDTIME <![CDATA[ < ]]> sysdate()
-                and m.SHYKSTATUS not in (2) -- 排除已取消
-            </if>
-        </if>
-        <if test="dzzdm !=null and dzzdm !=''">
-            and m.PARTYCODE like concat('%',#{dzzdm},'%')
-        </if>
-        <if test="shykTypeList != null and shykTypeList.size()>0">
-            and m.SHYKTYPE in
-            <foreach collection="shykTypeList" item="shyktype" index="index" open="(" close=")" separator=",">
-                #{shyktype}
-            </foreach>
-        </if>
-        <if test="title != null and title != ''">
-            and m.MEETINGNAME like concat('%',#{title},'%')
-        </if>
-        <if test="startDate != null and startDate != '' ">
-            and m.BEGINTIME <![CDATA[ >= ]]> date_format(#{startDate},'%Y%m%d')
-        </if>
-        <if test="endDate != null and endDate != '' ">
-            and m.BEGINTIME <![CDATA[ < ]]> date_add(date_format(#{endDate},'%Y%m%d'),interval 1 day)
-        </if>
-        order by BEGINTIME desc
-    </select>
-
     <select id="selectMeetingPlanTotalList" resultType="java.util.HashMap">
         select ztp.SHYKTYPE,
         (case ztp.SHYKTYPE