Commit 89772eb5 by fengzhaoyu

修改冲突

parents 9e3f1238 8b4e46fd
......@@ -253,3 +253,10 @@ export function getuploadResource(data) {
url: `/meet/meeting-log-resource/uploadResource`
});
}
// oss 预览
export function previewOss(data) {
return $http({
method: "get",
url: `/meet/meeting-log-resource/generateIDocViewFileUrl?fileId=${data}`
});
}
\ No newline at end of file
......@@ -31,8 +31,12 @@ export default function xFetch({ url, method, data, type }) {
if (err && err.status == 401) {
login();
}
if (err.errorMsg === 'socket is closed') {
} else {
alertOnce((err && err.errorMsg) || '网络异常,请重试', rejects);
}
}
});
});
}
......
import create from 'dd-store';
import pageStore from '../../pages/meetingDetail/store';
import { previewPermissions } from '../../api/request.js'
import { previewPermissions, previewOss } from '../../api/request.js'
import openLink from "dingtalk-jsapi/api/biz/util/openLink";
create.Component({
store: pageStore,
......@@ -11,7 +12,8 @@ create.Component({
},
props: {
isCanEdit: true,
isCanDelete: false
isCanDelete: false,
isPreview: true // 是否点击预览
},
didMount() {
},
......@@ -28,27 +30,44 @@ create.Component({
},
//预览文件
preview(e) {
//如果出现编辑蒙层时阻止预览的点击事件
// 如果出现编辑蒙层时阻止预览的点击事件
if (this.store.data.logId) {
return;
}
if (!this.props.isPreview) {
return
}
const file = e.target.dataset.file
const data = {
ddUserId: getApp().globalData.userid,
type: 'download',
fileIds: file.fileId,
projectName: 'MING_MEETING'
previewOss(file.fileId).then(res => {
if (res.data.code === 0) {
openLink({
url: res.data.data
});
}
previewPermissions(data).then(res => {
dd.previewFileInDingTalk({
corpId: dd.corpId,
spaceId: res.data.data,
fileId: file.fileId,
fileName: file.fileName,
fileSize: file.fileSize,
fileType: file.fileType
})
})
// console.log(e)
// const data = {
// ddUserId: getApp().globalData.userid,
// type: 'download',
// fileIds: file.fileId,
// projectName: 'MING_MEETING'
// }
// previewPermissions(data).then(res => {
// dd.previewFileInDingTalk({
// corpId: dd.corpId,
// spaceId: res.data.data,
// fileId: file.fileId,
// fileName: file.fileName,
// fileSize: file.fileSize,
// fileType: file.fileType
// })
// })
},
//显示操作框
showOperate(e) {
......
import { getThirdUserPlatForm } from "../../api/request";
import { throttle } from "../../utils/utils";
import create from "dd-store";
import pageStore from '../../pages/meetingDetail/store';
create.Component({
store: pageStore,
mixins: [],
data: {
$data: null,
relatedAppPlatform: null,//store
userInfo: {},
relatedAppList: [],
relatedAppPlatformList: []
......@@ -39,7 +42,14 @@ create.Component({
relatedAppList: res.data.data,
relatedAppPlatformList: res.data.data.map(it => it.platform)
});
/*
relatedAppPlatform 绑定平台列表
目的: 通知详情 是否可以选则zoom
*/
this.store.data.relatedAppPlatform = res.data.data.map(it => it.platform)
this.update()
});
},
preventSort() {
return false;
......
......@@ -20,6 +20,7 @@ import {
getCreateShowTime
} from "../../utils/utils";
import { checkFullScren } from "../../utils/checkFullScren";
import pageStore from '../meetingDetail/store';
const currentDate = new Date();
const minYear = 2020;
const maxYear = currentDate.getFullYear() + 1;
......@@ -27,8 +28,11 @@ let DateMap = getDateMap(minYear, maxYear);
const weekList = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
import create from "dd-store";
let maxClickCount = 5;
create.Page({
store: pageStore,
data: {
relatedAppPlatform: null,
sign: "",
refresh: false,
$data: null,
......@@ -89,18 +93,19 @@ create.Page({
}
},
onLoad(query) {
console.log(query);
if (query && JSON.stringify(query) !== "{}") {
this.setData({
listLoading: false
});
const scheduleItem = JSON.parse(Object.keys(query)[0].split("=")[1]);
dd.navigateTo({
url: `./../meetingDetail/meetingDetail?scheduleItem=${encodeURIComponent(
JSON.stringify(scheduleItem)
)}`
});
}
console.log(JSON.stringify(query));
console.log('query')
// if (query && JSON.stringify(query) !== "{}") {
// this.setData({
// listLoading: false
// });
// const scheduleItem = JSON.parse(Object.keys(query)[0].split("=")[1]);
// dd.navigateTo({
// url: `./../meetingDetail/meetingDetail?scheduleItem=${encodeURIComponent(
// JSON.stringify(scheduleItem)
// )}`
// });
// }
this.isNeverShowSchedulePage = true;
//获取动态列表s
this.getPages(1);
......@@ -880,7 +885,7 @@ create.Page({
maxClickCount--;
if (maxClickCount == 0) {
dd.alert({
content: "0.0.27"
content: "0.0.28"
});
maxClickCount = 5;
}
......
......@@ -139,8 +139,23 @@
<view class="permission" a:if="{{currentPeople != organizer}}">
</view>
</view>
<!--<view class="meetingWayShow" a:if="{{comListData.meetingWayModelId == 0}}"><view class="meetingWayShowTop"><view class=" icon iconfont iconicon_camera1"></view><view class="meetingWayText"><view onTap="setCopy" data-item="https://zoom.com.cn/j/93255954558?pwd=YmNZQkY1SGxtUFNPYjZlcUpJT0xtQT09" data-type="url">
Zoom</view><view class="mettingWayText" onTap="setCopy" data-item="513410069"><text>ID:513410069</text><text class="icon iconfont iconicon_icon"></text></view><view class="mettingWayText passWord" onTap="setCopy" data-item="4ez3am"><text >密码:4ez3am</text><text class="icon iconfont iconicon_icon"></text></view></view></view></view> -->
<view class="meetingWayShow" a:if="{{comListData.meetingWayModelId == 1}}">
<view class="meetingWayShowTop">
<view class=" icon iconfont iconicon_camera1"></view>
<view class="meetingWayText">
<view onTap="setCopy" data-item="{{meetingWayModelData.data.joinUrl}}" data-type="url">
Zoom
</view>
<view class="mettingWayText" onTap="setCopy" data-item="{{meetingWayModelData.data.meetingId}}">
<text>ID:{{meetingWayModelData.data.meetingId}}</text>
<text class="icon iconfont iconicon_icon"></text></view>
<view class="mettingWayText passWord" onTap="setCopy" data-item="{{meetingWayModelData.data.password}}">
<text >密码:{{meetingWayModelData.data.password}}</text>
<text class="icon iconfont iconicon_icon"></text>
</view>
</view>
</view>
</view>
<!-- 删除该会议 -->
<template is="deleteBtn" onhandleDelete="" data="{{title: '删除该会议' }}"/>
</view>
......@@ -187,13 +202,11 @@
<view onTap="showCreateTask" data-pop="{{title: '创建任务', type: 'createTask'}}">
<text class="iconfont iconicon_task1"></text>任务
</view>
<view onTap="addMeetingFile">
<text class="iconfont iconicon_data"></text>文件
</view>
<!--<view onTap="addMeetingFile"><text class="iconfont iconicon_data"></text>文件</view> -->
<view onTap="addOssFile" a:if="{{isShowOss}}">
<text class="iconfont iconicon_data"></text>
<view>
oss
文件
</view>
</view>
<text class="devider"></text>
......@@ -245,8 +258,8 @@
<popup a:if="{{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=='meetingWayModel' || comType=='aheadTime'}}" dataComList="{{comType=='repeat' ? comListData.repeatList : (comType=='aheadTime' ? comListData.aheadTimesList : comListData.meetingWayList)}}" onComSelectList="selectComList" comSelectListId="{{comType=='repeat' ? comListData.comSelectListId : (comType=='aheadTime'?comListData.aheadTimesListId : comListData.meetingWayModelId)}}" 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>
</popup>
<popup a:if="{{show}}" show="{{show}}" onClose="closePop" title="{{pop.title}}">
<!-- 任务创建弹出框 -->
......
......@@ -3,10 +3,11 @@ import { checkFullScren } from "../../utils/checkFullScren";
import pageStore from './store';
import { saveFileInfo, getMeetingRoomAffairs, createMeetingTask, deleteMeetingTask, updateMeetingTask, uploadPermissions } from '../../api/request';
import { getOssPermission, getuploadResource, isParticipate, deleteSchedule, getScheduleDetail, getUserScheduleInTime, modifySchedule, getMeetingRoomRepeatAffairs } from '../../api/request.js'
import { throttle, getCreateShowTime, getRndInteger } from './../../utils/utils.js'
import { throttle, getCreateShowTime } from './../../utils/utils.js'
import { observer } from '/utils/observer.js'
import { resolve } from 'path';
import { isShowOss } from '../../config.js';
import { uploadOss } from './uploadFile';
create.Page({
store: pageStore,
useAll: true,
......@@ -34,8 +35,8 @@ create.Page({
{ id: 4, text: '每月', icon: '', repeatable: 1, recurrenceModel: { model: 'absolute_Monthly', daysOfMonth: ['23'], interval: 1, initialTime: `2020-03-23`, terminateTime: `2022-03-23`, weekDayList: null } }
],
meetingWayList: [
{ id: 0, text: 'Zoom Meeting', imageUrl: '../../assests/Zoom.png', meetingWayModel: { model: 'zoom' } },
{ id: 1, text: '钉钉', imageUrl: '../../assests/dingding.png', meetingWayModel: { model: 'dingtalk' } }
{ id: 0, text: '钉钉', imageUrl: '../../assests/dingding.png', meetingWayModel: { model: 'dingtalk' } },
{ id: 1, text: 'Zoom Meeting', imageUrl: '../../assests/Zoom.png', meetingWayModel: { model: 'zoom' } }
],
aheadTimesList: [
{ id: -1, text: '不提醒', icon: 'iconicon_cycle' },
......@@ -115,6 +116,8 @@ create.Page({
},
onShow() {
// this.conflictPeople()
this.store.data.fileInfos = []
this.update()
setTimeout(() => {
this.update()
}, 100)
......@@ -178,6 +181,7 @@ create.Page({
break;
}
}
},
onLoad(event) {
event.scheduleItem = decodeURIComponent(event.scheduleItem);
......@@ -235,7 +239,7 @@ create.Page({
mrReserveStatus: res.data.data.mrReserveStatus,
confirmAttendance: res.data.data.confirmAttendance === null ? -9 : res.data.data.confirmAttendance,
organizer: res.data.data.organizer,
'comListData.meetingWayModelId': res.data.data.meetingWayModel.model === null ? null : (res.data.data.meetingWayModel.model === 'dingtalk' ? 1 : 0),
'comListData.meetingWayModelId': res.data.data.meetingWayModel.model === null ? null : (res.data.data.meetingWayModel.model === 'dingtalk' ? 0 : 1),
repeatable: res.data.data.repeatable,
recurrenceModel: res.data.data.repeatable ? { model: res.data.data.recurrenceModel.model, daysOfMonth: res.data.data.recurrenceModel.daysOfMonth, interval: 1, initialTime: res.data.data.recurrenceModel.initialTime, terminateTime: res.data.data.recurrenceModel.terminateTime, weekDayList: res.data.data.recurrenceModel.weekDayList } : { model: 'no_repeat' },
title: res.data.data.title,
......@@ -244,7 +248,8 @@ create.Page({
isShowRemark: res.data.data.remark ? true : false,
week: this.data.weekList[new Date(res.data.data.startTime.replace(/-/g, "/")).getDay()],
getData: true,
scheduleItem: res.data.data
scheduleItem: res.data.data,
meetingWayModelData: res.data.data.meetingWayModel
})
if (res.data.data.repeatable) {
this.setData({
......@@ -463,6 +468,7 @@ create.Page({
popupShow: false,
meetingWayModel: this.data.comListData.meetingWayList[event.currentTarget.dataset.item.id].meetingWayModel
})
if (this.data.repeatable) {
this.setData({
editType: 'meeting_way'
......@@ -996,9 +1002,19 @@ create.Page({
this.modifySchedule(dataWay).then(res => {
this.$store.data.originalData.meetingWay = !!this.data.comListData.meetingWayModelId ? this.data.comListData.meetingWayList[this.data.comListData.meetingWayModelId] : null
this.update()
if (dataWay.meetingWayModel.model === 'zoom' && this.store.data.relatedAppPlatform.includes('zoom')) {
const scheduleDetailData = {
id: !!this.data.scheduleItem.scheduleId ? this.data.scheduleItem.scheduleId : this.data.scheduleItem.id,
scheduleTemplateId: this.data.scheduleItem.scheduleTemplateId,
planDate: !!this.data.scheduleItem.planDate ? this.data.scheduleItem.planDate.replace(/\//g, '-') : null
}
getScheduleDetail(scheduleDetailData).then(success => {
meetingWayModelData: success.data.data.meetingWayModel
})
}
}).catch(err => {
this.setData({
'comListData.meetingWayModelId': this.$store.data.originalData.meetingWayModel === null ? null : (this.$store.data.originalData.meetingWayModel.model === 'dingtalk' ? 2 : (this.$store.data.originalData.meetingWayModel.model === 'zoom' ? 1 : 0))
'comListData.meetingWayModelId': this.$store.data.originalData.meetingWayModel === null ? null : (this.$store.data.originalData.meetingWayModel.model === 'dingtalk' ? 0 : 1)
})
})
break
......@@ -1621,72 +1637,11 @@ create.Page({
},
// 上传oss文件
async addOssFile() {
const timestamp = new Date().getTime()
const random = getRndInteger(1000, 10000)
const permisson = await getOssPermission()
const imgInfo = await this.getOssImg()
const key = await new Promise((resolve) => { resolve(permisson.data.data.dir + timestamp + random + '.' + imgInfo.files[0].fileType) })
const fileName = await new Promise((resolve) => { resolve(timestamp + random + '.' + imgInfo.files[0].fileType) })
await this.uploadOssFile(permisson, imgInfo, key)
await this.saveOssFileInfo(permisson, imgInfo, key, fileName)
},
// 获取oss上传图片 选择图片 上传图片到oss
getOssImg() {
return new Promise((resolve, rejects) => {
dd.chooseImage({
count: 1,
success: (res) => {
resolve(res)
},
});
})
},
// 获取的图片上传到oss
uploadOssFile(permisson, imgInfo, key) {
return new Promise(resolve => {
dd.uploadFile({
url: permisson.data.data.host,
fileType: 'image',
fileName: 'file',
filePath: imgInfo.filePaths[0],
formData: {
key: key,
policy: permisson.data.data.policy,
OSSAccessKeyId: permisson.data.data.accessId,
success_action_status: 200,
signature: permisson.data.data.signature
},
success: () => {
resolve()
}
})
})
},
// 上传oss文件
saveOssFileInfo(permisson, imgInfo, key, fileName) {
const data = {
resourceType: 'accessory',
creatorId: getApp().globalData.userid,
category: '2',
scheduleId: this.store.data.scheduleId,
groupId: this.store.data.groupId,
creatorInfo: getApp().globalData.userInfo,
description: '',
logType: 'schedule_accessory_add',
fileInfos: JSON.stringify({
fileId: key,
fileName: fileName,
fileType: imgInfo.files[0].fileType,
fileSize: imgInfo.files[0].size
})
}
saveFileInfo(data).then(result => {
dd.alert({
title: '上传成功',
content: JSON.stringify(result)
})
uploadOss().then(res => {
dd.navigateTo({ url: `./../uploadFile/uploadFile` })
})
},
//隐藏文件操作浮窗
hideFileOperate() {
this.store.data.logId = '';
......
......@@ -8,14 +8,15 @@ class Store {
taskStatus: '',
taskInfos: null
},
fileInfos: null,
fileInfos: [],
description: '',
oldFileInfos: '',
oldDescription: '',
scheduleId: '',
groupId: '',
isNeedReloadList: false,
logId: ''
logId: '',
relatedAppPlatform: null
}
}
export default new Store()
\ No newline at end of file
import { getRndInteger } from '../../utils/utils.js'
import { getOssPermission } from '../../api/request.js'
import { saveFileInfo, getMeetingRoomAffairs, createMeetingTask, deleteMeetingTask, updateMeetingTask, uploadPermissions } from '../../api/request';
import pageStore from './store'
console.log(pageStore)
console.log(374774747)
// pageStore.data.language = 'zh_cn'
// pageStore.update()
/*
fileTypeRepleaceList 请求头替换列表
用途: 根据文件类型替换成相应在请求头 用于oss上传
*/
const requestHeaderRepleacelist = new Map([
['bmp', 'image/bmp'],
['gif', 'image/gif'],
['html', 'text/html'],
['txt', 'text/plain'],
['vsd', 'application/vnd.visio'],
['bmp', 'image/bmp'],
['pptx', 'application/vnd.ms-powerpoint'],
['ppt', 'application/vnd.ms-powerpoint'],
['docx', 'application/msword'],
['doc', 'aapplication/msword'],
['xml', 'text/xml']
])
// 获取oss上传图片 选择图片 上传图片到oss
function getOssImg() {
return new Promise((resolve, rejects) => {
dd.chooseImage({
count: 1,
success: (res) => {
resolve(res)
},
});
})
}
// 获取的图片上传到oss
function sendOss(permisson, imgInfo, key) {
return new Promise(resolve => {
dd.uploadFile({
headers: {
"Content-Type": 'image/jpg'
},
url: permisson.data.data.host,
fileType: 'image',
fileName: 'file',
filePath: imgInfo.filePaths[0],
formData: {
key: key,
policy: permisson.data.data.policy,
OSSAccessKeyId: permisson.data.data.accessId,
success_action_status: 200,
signature: permisson.data.data.signature
},
success: (res) => {
console.log(JSON.stringify(res))
resolve(imgInfo)
}
})
})
}
// 上传oss文件 保存到我方服务器
function saveOssFileInfo(permisson, imgInfo, key, fileName) {
const data = {
resourceType: 'accessory',
creatorId: getApp().globalData.userid,
category: '2',
scheduleId: pageStore.data.scheduleId,
groupId: pageStore.data.groupId,
creatorInfo: getApp().globalData.userInfo,
description: '',
logType: 'schedule_accessory_add',
fileInfos: JSON.stringify([{
fileId: key,
fileName: fileName,
fileType: imgInfo.files[0].fileType,
fileSize: imgInfo.files[0].size
}]),
thirdStoreTenant: 'oss'
}
saveFileInfo(data).then(result => {
dd.alert({
title: '上传成功',
content: JSON.stringify(result)
})
})
}
// 根据上传文件类型改变请求头格式 *******不改变预览会下载文件********
function setRequestHeader(fileType) {
if (!!requestHeaderRepleacelist.get(fileType)) {
return requestHeaderRepleacelist.get(fileType)
} else {
return "image/jpg";
}
}
// 对外暴露方法 上传至oss
export async function uploadOss() {
const timestamp = new Date().getTime()
const random = getRndInteger(1000, 10000)
const permisson = await getOssPermission()
const imgInfo = await getOssImg()
const key = await new Promise((resolve) => { resolve(permisson.data.data.dir + timestamp + random + '.' + imgInfo.files[0].fileType) })
const fileName = await new Promise((resolve) => { resolve(timestamp + random + '.' + imgInfo.files[0].fileType) })
await sendOss(permisson, imgInfo, key)
pageStore.data.fileInfos.push(...[{
fileId: key,
fileName: fileName,
fileType: imgInfo.files[0].fileType,
fileSize: imgInfo.files[0].size
}]);
pageStore.update()
}
......@@ -3,7 +3,7 @@ page {
font-family: PingFangSC-Regular;
font-size: 34rpx;
color: #191F25;
padding-bottom: 128rpx;
padding-bottom: 136rpx;
}
.peopleList {
......
......@@ -2,7 +2,7 @@
<view class="describe">
<textarea value="{{description}}" class="textarea" onInput="inputChange" placeholder="添加文件描述..." maxlength="-1" />
</view>
<file-list fileView="{{{fileInfos: fileInfos}}}" isCanEdit="{{false}}" isCanDelete="{{true}}"/>
<file-list fileView="{{{fileInfos: fileInfos}}}" isCanEdit="{{false}}" preview="{{false}}" isCanDelete="{{true}}"/>
<view class="addText" onTap="add">继续添加</view>
</view>
<view class="saveButton" onTap="saveUpload">
......
......@@ -2,11 +2,12 @@ import create from 'dd-store'
import { saveFileInfo, addSchedule, uploadPermissions, previewPermissions, updateMeetingTask } from '../../api/request.js'
import { throttle, debounce } from './../../utils/utils.js'
import pageStore from '../meetingDetail/store';
import { uploadOss } from '../meetingDetail/uploadFile';
create.Page({
store: pageStore,
data: {
fileInfos: null, //store
fileInfos: [], //store
description: '',//store
id: ''
},
......@@ -35,27 +36,28 @@ create.Page({
}, 100),
//添加会议文件
add() {
const data = {
ddUserId: getApp().globalData.userid,
type: 'add',
projectName: 'MING_MEETING'
}
uploadPermissions(data).then(res => {
if (res.data.code === 0) {
const _that = this
dd.uploadAttachmentToDingTalk({
image: { multiple: true, compress: true, max: 9, spaceId: res.data.data },
space: { spaceId: res.data.data, compress: true, isCopy: 1, max: 9 },
types: ["photo", "camera", "space"],
success: (res) => {
_that.store.data.fileInfos.push(...res.data)
_that.update();
},
fail: (err) => {
}
})
}
})
uploadOss()
// const data = {
// ddUserId: getApp().globalData.userid,
// type: 'add',
// projectName: 'MING_MEETING'
// }
// uploadPermissions(data).then(res => {
// if (res.data.code === 0) {
// const _that = this
// dd.uploadAttachmentToDingTalk({
// image: { multiple: true, compress: true, max: 9, spaceId: res.data.data },
// space: { spaceId: res.data.data, compress: true, isCopy: 1, max: 9 },
// types: ["photo", "camera", "space"],
// success: (res) => {
// _that.store.data.fileInfos.push(...res.data)
// _that.update();
// },
// fail: (err) => {
// }
// })
// }
// })
},
// 保存
......@@ -84,12 +86,11 @@ create.Page({
groupId: this.store.data.groupId,
uploader: getApp().globalData.userid,
creatorInfo: getApp().globalData.userInfo,
thirdStoreTenant: 'dingTalk',
thirdStoreTenant: 'oss',
fileInfos: JSON.stringify(fileInfos),
description: description,
logType: 'schedule_accessory_add'
}
//编辑文件
if (this.data.id) {
data.logType = 'schedule_accessory_modify';
......
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