Commit f070a93d by fengzhaoyu

Merge branch 'release/2.0.0' of http://gitlab.roboming.com/fengzhaoyu/schedule into release/2.0.0

# Conflicts:
#	pages/meetingDetail/meetingDetail.js
parents 0057ce20 ab0de148
......@@ -149,7 +149,7 @@ export function getMeetingRoomRepeatAffairs(groupId, page) {
export function getMeetingRoomAffairs(id) {
return $http({
method: "get",
url: `/meet/meeting-log/detail/${id}`
url: `/meet/comment/listByMeetingId?meetingId=${id}&platform=dingTalk`
});
}
//会议室创建新任务
......@@ -168,6 +168,21 @@ export function updateMeetingTask(data) {
url: `/meet/comment/handler`
});
}
// 修改动态
export function updateMoment(data) {
return $http({
method: 'post',
data: JSON.stringify(data),
url: '/meet/comment/modify'
})
}
// 删除动态
export function deleteMoment(id) {
return $http({
method: 'get',
url: `/meet/comment/remove?commentId=${id}`
})
}
//删除任务
export function deleteMeetingTask(id) {
return $http({
......
......@@ -24,4 +24,33 @@ view {
.gray {
background: rgba(10, 10, 10, 0.2)!important;
}
/* 底部长条的红色按钮 */
.save {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 32rpx;
background: #fff;
position: fixed;
}
.button {
width: 100%;
height: 72rpx;
background: #EA0C28;
border-radius: 48rpx;
font-size: 32rpx;
color: #FFFFFF;
text-align: center;
line-height: 72rpx;
}
.tabBarBottom {
height: 68rpx;
width: 100%;
background: #fff;
}
\ No newline at end of file
......@@ -11,7 +11,8 @@
"pages/uploadFile/uploadFile",
"pages/participantsDetail/participantsDetail",
"pages/applicationDetails/applicationDetails",
"pages/attendeeList/attendeeList"
"pages/attendeeList/attendeeList",
"pages/createTask/createTask"
],
"window": {
"allowsBounceVertical": "YES"
......
@import "../../template/avater/index.acss";
.avater {
width: 48rpx;
height: 48rpx;
margin-right: 16rpx;
}
.notes-edit {
min-height: 400rpx;
padding: 32rpx;
margin-bottom: 16rpx;
}
.comment {
background: rgba(246, 248, 249, 0.63);
border-radius: 4px;
padding: 16rpx;
}
.comment-text {
flex: 1;
font-size: 24rpx;
line-height: 40rpx;
}
.comment-text>view:first-child {
color: #0A0A0A;
}
.comment-text>view:last-child {
color: rgba(25, 31, 37, 0.4);
}
.comment>view {
position: relative;
display: flex;
}
.delete-btn {
position: absolute;
right: 16rpx;
bottom: 16rpx;
}
\ No newline at end of file
<view a:if="{{isEdit}}">
<form onSubmit="complete">
<textarea class="notes-edit" name="textarea" auto-height placeholder="输入评论内容"></textarea>
<button form-type="submit" class="picker-complete">完成</button>
</form>
</view>
<view a:else class="comment" a:for="{{replyCommentList}}">
<view>
<import src="../../template/avater/index.axml"/>
<template is="avater" data="{{item: item.creator }}"/>
<view class="comment-text">
<view>{{item.creator.name}}: {{item.remark}}</view>
<view>{{item.updateTime}}</view>
</view>
<view class="delete-btn" onTap="deleteComment" data-commentId="{{item.commentId}}">
删除
</view>
</view>
</view>
\ No newline at end of file
Component({
mixins: [],
data: {},
props: {},
didMount() { },
didUpdate() { },
didUnmount() { },
methods: {
complete: function (e) {
const value = e.detail.value.textarea;
if (!value) {
return dd.showToast({ content: '请输入评论内容' })
}
this.props.onGetComment(e.detail.value.textarea)
},
deleteComment: function (e) {
this.props.onDeleteComment(e.currentTarget.dataset.commentId)
}
},
});
{
"component": true
}
\ No newline at end of file
......@@ -3,4 +3,10 @@
border-radius: 16rpx;
padding: 16rpx;
margin-top: 16rpx;
}
.notes-edit {
min-height: 400rpx;
padding: 32rpx;
margin-bottom: 16rpx;
}
\ No newline at end of file
<view class="notes">
{{notes}}
<view a:if="{{isEdit}}">
<form onSubmit="complete">
<textarea value="{{notes ? notes.meetingNotes : ''}}" class="notes-edit" name="textarea" auto-height placeholder="输入笔记内容"></textarea>
<button form-type="submit" class="picker-complete">完成</button>
</form>
</view>
<view a:else class="notes">
{{meetingNotes}}
</view>
\ No newline at end of file
Component({
import create from 'dd-store';
import pageStore from '../../pages/meetingDetail/store';
create.Component({
store: pageStore,
mixins: [],
data: {},
data: {
notes: null //store
},
props: {},
didMount() {},
didUpdate() {},
didUnmount() {},
methods: {},
didMount() { },
didUpdate() { },
didUnmount() { },
methods: {
complete: function (e) {
const value = e.detail.value.textarea;
if (!value) {
return dd.showToast({ content: '请输入笔记内容' })
}
this.props.onGetNotes(e.detail.value.textarea)
},
},
});
......@@ -86,6 +86,9 @@
position: absolute;
color: rgb(10, 10, 10);
font-size: 32rpx;
line-height: 40rpx;
right: 32rpx;
top: 32rpx;
border: 0;
background-color: transparent!important;
}
\ No newline at end of file
......@@ -7,7 +7,7 @@ Component({
position: 'bottom',
mask: true,
animation: true,
zIndex: 1000
zIndex: 999
},
methods: {
onMaskTap: function onMaskTap() {
......
<import src="../../template/avater/index.axml"/>
<block a:for="{{$data.participatorList}}">
<view class="column" data-item="{{item}}" onTap="radioChange">
<template is="radio" data="{{status: item.userId == currentTask.acceptorId, item: item}}"/>
<template is="avater" data="{{item}}"/>
<template is="radio" data="{{status: item.userId == currentTask.excutorId, item: item}}"/>
<template is="avater" data="{{item: {...item, name: item.username}}}"/>
<view class="name">{{item.username}}</view>
</view>
</block>
......
......@@ -14,8 +14,13 @@ create.Page({
},
radioChange(e) {
const item = e.target.dataset.item;
this.store.data.currentTask.acceptorInfo = item;
this.store.data.currentTask.acceptorId = item.userId;
this.store.data.currentTask.excutor = {
...item,
name: item.username,
id: item.userId,
avatar: item.headUrl
};
this.store.data.currentTask.excutorId = item.userId;
this.update();
dd.navigateBack();
}
......
......@@ -209,29 +209,6 @@ input {
color: #BBBEC5;
}
.save {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 32rpx;
background: #fff;
position: fixed;
bottom: 0;
}
.button {
font-family: PingFangSC-Regular;
width: 686rpx;
height: 72rpx;
background: #EA0C28;
border-radius: 48rpx;
font-size: 32rpx;
color: #FFFFFF;
text-align: center;
line-height: 72rpx;
}
.noValueIcon {
color: rgba(216, 216, 216, 1)!important;
}
......@@ -262,12 +239,6 @@ input {
color: rgba(10, 10, 10, 0.4)
}
.tabBarBottom {
height: 68rpx;
width: 100%;
background: #fff;
}
.iconicon_description1 {
color: rgba(10, 10, 10, 0.4)!important;
}
......
@import "../../template/avater/index.acss";
page {
background: #fff;
overflow: hidden;
}
.task-column {
box-sizing: border-box;
padding: 0 42rpx 0 32rpx;
width: 100%;
display: flex;
align-items: center;
}
.edit-column {
color: rgba(27, 38, 61, 1);
margin: 46rpx 0;
height: 84rpx;
}
.task-time {
margin-top: 46rpx;
}
.edit-column input {
flex: 1;
margin-left: 8rpx;
font-size: 40rpx;
caret-color: #3070F2;
padding: 0;
height: 84rpx;
}
.participator-top {
height: 62rpx;
line-height: 62rpx;
}
.icon {
color: #1B263D;
font-size: 34rpx;
}
.participator-title {
color: rgba(25, 31, 37, 1);
font-size: 34rpx;
flex: 1;
margin-left: 26rpx;
}
.participator-bottom {
padding: 14rpx 42rpx 14rpx 96rpx;
}
.people {
text-align: center;
width: 80rpx;
margin-right: 16rpx;
}
.people>.avater, .fake-avater {
width: 80rpx;
height: 80rpx;
line-height: 80rpx;
position: relative;
}
.fake-name {
height: 48rpx;
}
.name {
font-size: 24rpx;
line-height: 40rpx;
color: rgba(25, 31, 37, 0.56);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
height: 40rpx;
}
.error {
color: red;
font-size: 24rpx;
flex: 1;
}
.edit-column>.checkbox {
width: 32rpx!important;
height: 32rpx!important;
line-height: 32rpx!important;
}
.btn-disabled {
opacity: 0.4;
}
\ No newline at end of file
<import src="../../template/avater/index.axml"/>
<view class="task-column edit-column">
<input onInput="inputChange" value="{{currentTask.title}}" placeholder="请输入任务标题"/>
</view>
<view>
<view class="task-column participator-top" data-excutorId="{{currentTask.excutorId}}" onTap="handleExcutorChange">
<text class="iconicon_attender iconfont icon"></text>
<text class="participator-title">{{currentTask.excutorId ? '执行人' : '设置执行人'}}</text>
<text class="iconright iconfont icon"></text>
</view>
<view class="participator-bottom" a:if="{{currentTask.excutorId}}">
<view class="people" data-excutorId="{{currentTask.excutorId}}" onTap="handleExcutorChange">
<template is="avater" data="{{item: currentTask.excutor}}"/>
<view class="name">{{currentTask.excutor.name}}</view>
</view>
</view>
</view>
<view class="task-column participator-top task-time" data-excutorId="{{currentTask.endTime}}" onTap="handleOpenTime">
<text class="iconicon_conflict iconfont icon"></text>
<text class="participator-title">{{currentTask.endTime ? `${currentTask.endTime} 截止`: '设置截止时间'}}</text>
</view>
<view class="save" onTap="addTask">
<view class="button {{limitClick ? 'gray' : ''}}">
立即创建
</view>
<view class="tabBarBottom" a:if="{{isIPX}}">
</view>
</view>
<popup a:if="{{show}}" title="设置截止时间" show="{{show}}" mask="true" onClose="closePopup">
<meeting-time-picker onComplete="onComplete" startTime="{{currentTask.startTime}}" endTime="{{currentTask.endTime}}" isIPX="{{isIPX}}"/>
</popup>
\ No newline at end of file
import create from 'dd-store';
import pageStore from '../meetingDetail/store';
import { debounce } from '../../utils/utils';
import { checkFullScren } from "../../utils/checkFullScren";
import { updateMeetingTask } from '../../api/request';
create.Page({
store: pageStore,
data: {
currentTask: {},
show: false,
isIPX: false,
limitClick: false
},
onLoad(query) {
this.setData({
meetingId: query.meetingId,
isIPX: checkFullScren()
})
},
inputChange: debounce(function (e) {
const value = e.detail.value;
this.store.data.currentTask.title = value;
this.update();
}, 100),
handleExcutorChange(e) {
//执行人页面删除执行人
if (e.target.dataset.excutorId) {
dd.navigateTo({ url: `/pages/excutorList/excutorList` })
}
//参会人列表页面选择参会人
else {
dd.navigateTo({ url: `/pages/attendeeList/attendeeList` })
}
},
handleOpenTime() {
this.setData({
show: true
})
},
closePopup() {
this.setData({
show: false
})
},
onComplete(event) {
this.store.data.currentTask.startTime = `${event.startTime}:00`;
this.store.data.currentTask.endTime = `${event.endTime}:00`;
this.update();
this.closePopup();
},
addTask() {
if (this.data.limitClick) {
return
}
this.setData({ limitClick: true });
updateMeetingTask({
meetingId: this.data.meetingId,
platform: 'dingTalk',
taskCreateModel: {
endTime: this.store.data.currentTask.endTime.replace(/\//g, '-'),
title: this.store.data.currentTask.title,
innerTaskExecutorList: [this.store.data.currentTask.excutor]
}
}).then(res => {
if (res.data.code == 0) {
//重置
this.store.data.currentTask = {};
this.update();
// 修改动态列表
dd.navigateBack();
}
this.setData({ limitClick: false });
})
}
});
{
"defaultTitle": "创建任务",
"usingComponents": {
"popup": "../../components/popup/index",
"meeting-time-picker": "../../components/meetingTimePicker/meetingTimePicker"
}
}
\ No newline at end of file
<import src="../../template/avater/index.axml"/>
<view class="column" a:if="{{currentTask.acceptorId}}">
<template is="avater" data="{{item: currentTask.acceptorInfo}}"/>
<view class="name">{{currentTask.acceptorInfo.username}}
<view class="column" a:if="{{currentTask.excutorId}}">
<template is="avater" data="{{item: currentTask.excutor}}"/>
<view class="name">{{currentTask.excutor.name}}
<text class="iconfont iconicon_close" onTap="deleteExcutor"></text>
</view>
</view>
\ No newline at end of file
......@@ -15,8 +15,8 @@ create.Page({
cancelButtonText: '取消',
success: (res) => {
if (res.confirm) {
this.store.data.currentTask.acceptorInfo = null;
this.store.data.currentTask.acceptorId = '';
this.store.data.currentTask.excutor = null;
this.store.data.currentTask.excutorId = '';
this.update();
dd.navigateBack();
}
......
......@@ -25,7 +25,7 @@
</view>
<file-list a:if="{{dynamicItem.fileDetailList}}" fileView="{{dynamicItem}}" isCanEdit="{{false}}"/>
<task-list a:if="{{dynamicItem.meetingTaskSimpleViewModel}}" onChangeTaskStatusOnList="onChangeTaskStatusOnList" taskView="{{dynamicItem.meetingTaskSimpleViewModel}}" commentId="{{dynamicItem.commentId}}" meetingId="{{item.meetingId}}" isCanEdit="{{false}}"/>
<notes a:if="{{dynamicItem.notes}}" notes="{{dynamicItem.notes}}"/>
<notes a:if="{{dynamicItem.notes}}" meetingNotes="{{dynamicItem.notes}}"/>
</view>
</block>
</view>
......
......@@ -5,6 +5,12 @@
/* height: calc(100vh - 200rpx); */
}
.meeting-title {
font-size: 32rpx;
color: rgba(10, 10, 10, 0.56);
margin-top: 8px;
}
page {
background: #fff;
}
......@@ -26,10 +32,19 @@ page {
.compose-column {
position: relative;
padding-left: 104rpx;
margin-bottom: 48rpx;
margin-bottom: 24rpx;
padding-top: 16rpx;
}
.compose-column-operation {
display: flex;
justify-content: flex-end;
}
.compose-column-operation>text {
margin-right: 32rpx;
}
.compose-column>.avater {
width: 80rpx;
height: 80rpx;
......@@ -486,9 +501,9 @@ input {
font-size: 36rpx;
}
.footerBottom>view:last-child {
/* .footerBottom>view:last-child {
margin: 0 24rpx 0 0;
}
} */
.devider {
background: rgba(227, 228, 228, 1);
......
......@@ -159,7 +159,7 @@
</view>
</view>
<view class="footerBottom">
<view onTap="showCreateTask" data-pop="{{title: '创建任务', type: 'createTask'}}">
<view onTap="goCreateTask">
<text class="iconfont iconicon_task1"></text>任务
</view>
<!--<view onTap="addMeetingFile"><text class="iconfont iconicon_data"></text>文件</view> -->
......@@ -169,10 +169,10 @@
文件
</view>
</view>
<text class="devider"></text>
<view onTap="onShareAppMessage">
<text class="iconfont iconicon_share1"></text>
<view onTap="openNoteModal">
<text class="iconfont iconicon_task1"></text>笔记
</view>
<!--<text class="devider"></text><view onTap="onShareAppMessage"><text class="iconfont iconicon_share1"></text></view> -->
</view>
<view class="tabBarBottom" a:if="{{isIPX}}">
</view>
......@@ -189,26 +189,27 @@
<view class="affair-list {{isExpand? '' : 'affair-list-margin-top'}} {{!isExpand&&$data.participatorList.length>1 ? 'addPadding' : ''}}" onTap="hideFileOperate">
<view a:if="{{!isExpand}}" class="affair-list-title">会议动态</view>
<block a:if="{{!affairLoading}}">
<block a:if="{{affairList && affairList.length > 0}}" a:for="{{affairList}}" key="{{item.id}}">
<view a:if="{{item.category == '3' && item.taskViewList && item.taskViewList.length > 0}}" class='compose-column'>
<view class="avater task-avater">
<text class="iconfont iconicon_task1"></text>
</view>
<block a:if="{{affairList && affairList.length > 0}}" a:for="{{affairList}}" key="{{item.commentId}}">
<view class='compose-column'>
<template is="avater" data="{{item: item.creator }}"/>
<view class="title">
会议任务
<text>{{item.createTime}}</text>
{{item.creator.name}}
<text>{{item.updateTime}}</text>
</view>
<task-list onShowPop="showPop" onSetCurrentTask="setCurrentTask" taskList="{{item.taskViewList}}" onChangeTaskStatusOnList="changeTaskStatusOnList"/>
<task-list a:if="{{item.meetingTaskSimpleViewModel}}" onChangeTaskStatusOnList="onChangeTaskStatusOnList" taskView="{{item.meetingTaskSimpleViewModel}}" commentId="{{item.commentId}}" meetingId="{{meetingId}}" isCanEdit="{{false}}"/>
<file-list a:if="{{item.fileDetailList}}" fileView="{{item}}"/>
<notes a:if="{{item.notes}}" meetingNotes="{{item.notes}}"/>
<view class="meeting-title" a:if="{{item.commentType === 'meeting'}}">创建了会议</view>
</view>
<view a:if="{{item.category == '2' && item.fileView && item.fileView.fileInfos && item.fileView.fileInfos.length > 0 }}" class='compose-column'>
<template is="avater" data="{{item: item.fileView.creatorInfo}}"/>
<view class="title">
{{item.fileView.creatorInfo.username}}
<text>{{item.createTime}}</text>
</view>
<file-list fileView="{{item.fileView}}" organizer="{{organizer}}" currentPeople="{{currentPeople}}" onDeleteMeetingFile="deleteMeetingFile"/>
<view class="compose-column-operation">
<text a:if="{{item.fileDetailList}}" onTap="editRemark">描述</text>
<text a:if="{{item.notes}}" onTap="editNotes" data-meetingNotes="{{item.notes}}" data-commentId="{{item.commentId}}">编辑</text>
<text onTap="handleDeleteMoment" data-commentId="{{item.commentId}}">删除</text>
<text data-commentId="{{item.commentId}}" onTap="openComentModal">评论</text>
</view>
<view class="compose-column">
<comment a:if="{{item.replyCommentList}}" replyCommentList="{{item.replyCommentList}}" onDeleteComment="deleteComment"/>
</view>
<view a:if="{{item.content && ((item.category == 1 || item.taskViewList && item.taskViewList.length > 0) || ( item.fileView && item.fileView.fileInfos && item.fileView.fileInfos.length > 0 ))}}" class='simple-column'>{{item.content}} {{item.createTime}}</view>
</block>
<view class="affair-placeholder" a:if="{{!affairList || affairList.length == 0}}">
<template is="affair-placeholder" data="{{title: '添加文件', tip: '我们不开无准备的会,快来上传会议文件吧。'}}"/>
......@@ -216,22 +217,21 @@
<view class="loading-more" onTap="loadAffairMore" a:if="{{current < pages}}">点击加载更多动态...</view>
</block>
<view a:else></view>
<popup a:if="{{popupShow}}" title="{{popupTitle}}" show="{{popupShow}}" mask="true" onClose="closePopup">
<popup a:show="{{popupShow}}" title="{{popupTitle}}" show="{{popupShow}}" mask="true" onClose="closePopup">
<meeting-time-picker a:if="{{'time' === comType}}" onComplete="onComplete" startTime="{{$data.startTime}}" endTime="{{$data.endTime}}" isIPX="{{isIPX}}"></meeting-time-picker>
<hlist a:if="{{'participator' === comType}}" dataComList="{{comHListData.contactData}}" onSelectComHList="selectComHList"></hlist>
<list multiple="{{comListData.multiple}}" onCompelete="selectAheadtimes" comSelectList="{{comListData.aheadTimesListId}}" complete="{{comType=='aheadTime' ? true : false}}"a:if="{{comType=='repeat' || comType=='aheadTime'}}" dataComList="{{comType=='repeat' ? comListData.repeatList : comListData.aheadTimesList}}" onComSelectList="selectComList" comSelectListId="{{comType=='repeat' ? comListData.comSelectListId : comListData.aheadTimesListId}}" iconType="{{comListData.iconType}}"></list>
<list multiple="{{comListData.multiple}}" onCompelete="selectAheadtimes" comSelectList="{{comListData.aheadTimesListId}}" complete="{{comType=='aheadTime' ? true : false}}" a:if="{{comType=='repeat' || comType=='aheadTime'}}" dataComList="{{comType=='repeat' ? comListData.repeatList : comListData.aheadTimesList}}" onComSelectList="selectComList" comSelectListId="{{comType=='repeat' ? comListData.comSelectListId : comListData.aheadTimesListId}}" iconType="{{comListData.iconType}}"></list>
<list a:if="{{comType == 'meetingWayModel'}}" dataComList="{{relatedAppPlatform.includes('zoom') ? comListData.meetingWayList: [comListData.meetingWayList[0]] }}" onComSelectList="selectComList" comSelectListId="{{comListData.meetingWayModelId}}" iconType="{{comListData.iconType}}"></list>
<notes a:if="{{comType == 'notesModal'}}" isEdit="{{true}}" onGetNotes="getNotes"/>
<comment a:if="{{comType == 'commentModal'}}" isEdit="{{true}}" onGetComment="getComment"/>
</popup>
<!-- 分享的弹窗 -->
<popup a:if="{{comShareData.isShow}}" show="{{comShareData.isShow}}" title="{{comShareData.shareTitle}}" mask="{{true}}" onClose="closeShare">
<sharelist dataComList="{{comShareData.shareDataList}}" onSelectComHList="closeShare"></sharelist>
</popup>
<popup a:if="{{show}}" show="{{show}}" onClose="closePop" title="{{pop.title}}">
<!-- 任务创建弹出框 -->
<task-panel a:if="{{pop.type === 'createTask'}}" onComplete="complete" action='create'/>
<!-- 任务修改弹出框 -->
<task-panel a:if="{{pop.type === 'updateTask'}}" action='update' onDeleteTask="deleteTask"/>
</popup>
<!--<popup a:if="{{comShareData.isShow}}" show="{{comShareData.isShow}}" title="{{comShareData.shareTitle}}" mask="{{true}}" onClose="closeShare"><sharelist dataComList="{{comShareData.shareDataList}}" onSelectComHList="closeShare"></sharelist></popup> -->
<!--<popup show="{{show}}" onClose="closePop" title="{{pop.title}}">
<!-- 任务创建弹出框 -->
<!--<task-panel a:if="{{pop.type === 'createTask'}}" onComplete="complete" action='create'/> -->
<!-- 任务修改弹出框 -->
<!--<task-panel a:if="{{pop.type === 'updateTask'}}" action='update' onDeleteTask="deleteTask"/></popup> -->
</view>
</view>
</block>
......
......@@ -2,7 +2,7 @@ import create from 'dd-store';
import { checkFullScren } from "../../utils/checkFullScren";
import pageStore from './store';
import { saveFileInfo, getMeetingRoomAffairs, createMeetingTask, deleteMeetingTask, updateMeetingTask, uploadPermissions } from '../../api/request';
import { getuploadResource, isParticipate, deleteSchedule, getScheduleDetail, getUserScheduleInTime, modifySchedule, getMeetingRoomRepeatAffairs } from '../../api/request.js'
import { getOssPermission, getuploadResource, isParticipate, deleteSchedule, getScheduleDetail, getUserScheduleInTime, modifySchedule, getMeetingRoomRepeatAffairs, updateMoment, deleteMoment } from '../../api/request.js'
import { throttle, getCreateShowTime } from './../../utils/utils.js'
import { observer } from '/utils/observer.js'
import { resolve } from 'path';
......@@ -1550,31 +1550,13 @@ create.Page({
dealAffairData(affairList) {
return affairList.map(it => {
if (it.createTime) {
it.createTime = getCreateShowTime(it.createTime);
it.updateTime = getCreateShowTime(it.updateTime);
}
if (it.category == '2' && it.fileView) {
if (it.fileView.creatorInfo) {
it.fileView.creatorInfo = JSON.parse(it.fileView.creatorInfo);
}
if (it.fileView.fileInfos) {
it.fileView.fileInfos = JSON.parse(it.fileView.fileInfos)
}
return it
}
else if (it.category === '3' && it.taskViewList) {
it.taskViewList.map(o => {
if (o.acceptorInfo) {
o.acceptorInfo = JSON.parse(o.acceptorInfo)
}
if (o.creatorInfo) {
o.creatorInfo = JSON.parse(o.creatorInfo)
}
if (o.taskInfos) {
o.taskInfos = JSON.parse(o.taskInfos)
}
return o
if (it.replyCommentList) {
it.replyCommentList.map(item => {
item.updateTime = getCreateShowTime(item.updateTime);
return item
})
return it
}
return it
})
......@@ -1880,6 +1862,108 @@ create.Page({
}
})
}
},
// 创建任务
goCreateTask(e) {
dd.navigateTo({ url: '/pages/createTask/createTask?meetingId=' + this.store.data.scheduleId })
},
// 创建会议笔记
openNoteModal() {
this.setData({
popupShow: true,
popupTitle: '创建会议笔记',
comType: 'notesModal'
})
},
// 编辑笔记
editNotes(e) {
this.store.data.notes = {
meetingNotes: e.currentTarget.dataset.meetingNotes,
commentId: e.currentTarget.dataset.commentId,
notice: true,
meetingId: this.store.data.scheduleId
}
this.update();
this.setData({
popupShow: true,
popupTitle: '编辑会议笔记',
comType: 'notesModal'
})
},
getNotes(notes) {
//编辑
if (this.store.data.notes) {
updateMoment({
...this.store.data.notes,
platform: 'dingTalk',
meetingNotes: notes
}).then(res => {
if (res.data.code == 0) {
this.closePopup();
// clear
this.store.data.notes = null;
this.update();
}
})
return
}
//创建
updateMeetingTask({
platform: 'dingTalk',
meetingId: this.store.data.scheduleId,
notesModel: {
meetingNotes: notes
}
}).then(res => {
if (res.data.code == 0) {
this.closePopup();
}
})
},
//添加评论
openComentModal(e) {
this.store.data.parentCommentId = e.currentTarget.dataset.commentId,
this.update();
this.setData({
popupShow: true,
popupTitle: '添加评论',
comType: 'commentModal'
})
},
getComment(comment) {
updateMeetingTask({
parentCommentId: this.store.data.parentCommentId,
platform: 'dingTalk',
remark: comment,
notice: false,
meetingId: this.store.data.scheduleId,
}).then(res => {
if (res.data.code == 0) {
this.closePopup();
}
})
},
// 删除动态
handleDeleteMoment(e) {
this.deleteComment(e.currentTarget.dataset.commentId)
},
// 删除评论,删除动态
deleteComment(commnetId) {
dd.confirm({
title: '删除',
content: '确认要删除吗?',
confirmButtonText: '确定',
cancelButtonText: '取消',
success: (res) => {
if (res.confirm) {
deleteMoment(commnetId).then(res => {
if (res.code === 0) {
}
})
}
}
})
}
});
......@@ -3,6 +3,8 @@
"usingComponents": {
"popup": "../../components/popup/index",
"task-list": "../../components/taskList/taskList",
"notes": "../../components/notes/notes",
"comment": "../../components/comment/comment",
"file-list": "../../components/fileList/fileList",
"task-panel": "../../components/taskPanel/taskPanel",
"list": "../../components/list/list",
......
......@@ -2,12 +2,13 @@ class Store {
data = {
affairList: [],
currentTask: {
id: '',
acceptorInfo: null,
acceptorId: '',
taskStatus: '',
taskInfos: null
endTime: '',
excutor: null,
title: '',
excutorId: ''
},
notes: null,
parentCommentId: '',
fileInfos: null,
description: '',
oldFileInfos: '',
......
......@@ -3,7 +3,6 @@
<view class="avater">
<image a:if="{{item.avatar}}" mode="scaleToFill" src="{{item.avatar}}" />
<text a:else>{{item.name.slice(0, split || 2)}}
{{item.name}}
</text>
</view>
</template>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment