Commit 89772eb5 by fengzhaoyu

修改冲突

parents 9e3f1238 8b4e46fd
...@@ -253,3 +253,10 @@ export function getuploadResource(data) { ...@@ -253,3 +253,10 @@ export function getuploadResource(data) {
url: `/meet/meeting-log-resource/uploadResource` 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 }) { ...@@ -31,8 +31,12 @@ export default function xFetch({ url, method, data, type }) {
if (err && err.status == 401) { if (err && err.status == 401) {
login(); login();
} }
if (err.errorMsg === 'socket is closed') {
} else {
alertOnce((err && err.errorMsg) || '网络异常,请重试', rejects); alertOnce((err && err.errorMsg) || '网络异常,请重试', rejects);
} }
}
}); });
}); });
} }
......
import create from 'dd-store'; import create from 'dd-store';
import pageStore from '../../pages/meetingDetail/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({ create.Component({
store: pageStore, store: pageStore,
...@@ -11,7 +12,8 @@ create.Component({ ...@@ -11,7 +12,8 @@ create.Component({
}, },
props: { props: {
isCanEdit: true, isCanEdit: true,
isCanDelete: false isCanDelete: false,
isPreview: true // 是否点击预览
}, },
didMount() { didMount() {
}, },
...@@ -28,27 +30,44 @@ create.Component({ ...@@ -28,27 +30,44 @@ create.Component({
}, },
//预览文件 //预览文件
preview(e) { preview(e) {
//如果出现编辑蒙层时阻止预览的点击事件 // 如果出现编辑蒙层时阻止预览的点击事件
if (this.store.data.logId) { if (this.store.data.logId) {
return; return;
} }
if (!this.props.isPreview) {
return
}
const file = e.target.dataset.file const file = e.target.dataset.file
const data = { previewOss(file.fileId).then(res => {
ddUserId: getApp().globalData.userid, if (res.data.code === 0) {
type: 'download', openLink({
fileIds: file.fileId, url: res.data.data
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
})
}) })
// 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) { showOperate(e) {
......
import { getThirdUserPlatForm } from "../../api/request"; import { getThirdUserPlatForm } from "../../api/request";
import { throttle } from "../../utils/utils"; import { throttle } from "../../utils/utils";
import create from "dd-store"; import create from "dd-store";
import pageStore from '../../pages/meetingDetail/store';
create.Component({ create.Component({
store: pageStore,
mixins: [], mixins: [],
data: { data: {
$data: null, $data: null,
relatedAppPlatform: null,//store
userInfo: {}, userInfo: {},
relatedAppList: [], relatedAppList: [],
relatedAppPlatformList: [] relatedAppPlatformList: []
...@@ -39,7 +42,14 @@ create.Component({ ...@@ -39,7 +42,14 @@ create.Component({
relatedAppList: res.data.data, relatedAppList: res.data.data,
relatedAppPlatformList: res.data.data.map(it => it.platform) relatedAppPlatformList: res.data.data.map(it => it.platform)
}); });
/*
relatedAppPlatform 绑定平台列表
目的: 通知详情 是否可以选则zoom
*/
this.store.data.relatedAppPlatform = res.data.data.map(it => it.platform)
this.update()
}); });
}, },
preventSort() { preventSort() {
return false; return false;
......
...@@ -20,6 +20,7 @@ import { ...@@ -20,6 +20,7 @@ import {
getCreateShowTime getCreateShowTime
} from "../../utils/utils"; } from "../../utils/utils";
import { checkFullScren } from "../../utils/checkFullScren"; import { checkFullScren } from "../../utils/checkFullScren";
import pageStore from '../meetingDetail/store';
const currentDate = new Date(); const currentDate = new Date();
const minYear = 2020; const minYear = 2020;
const maxYear = currentDate.getFullYear() + 1; const maxYear = currentDate.getFullYear() + 1;
...@@ -27,8 +28,11 @@ let DateMap = getDateMap(minYear, maxYear); ...@@ -27,8 +28,11 @@ let DateMap = getDateMap(minYear, maxYear);
const weekList = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]; const weekList = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
import create from "dd-store"; import create from "dd-store";
let maxClickCount = 5; let maxClickCount = 5;
create.Page({ create.Page({
store: pageStore,
data: { data: {
relatedAppPlatform: null,
sign: "", sign: "",
refresh: false, refresh: false,
$data: null, $data: null,
...@@ -89,18 +93,19 @@ create.Page({ ...@@ -89,18 +93,19 @@ create.Page({
} }
}, },
onLoad(query) { onLoad(query) {
console.log(query); console.log(JSON.stringify(query));
if (query && JSON.stringify(query) !== "{}") { console.log('query')
this.setData({ // if (query && JSON.stringify(query) !== "{}") {
listLoading: false // this.setData({
}); // listLoading: false
const scheduleItem = JSON.parse(Object.keys(query)[0].split("=")[1]); // });
dd.navigateTo({ // const scheduleItem = JSON.parse(Object.keys(query)[0].split("=")[1]);
url: `./../meetingDetail/meetingDetail?scheduleItem=${encodeURIComponent( // dd.navigateTo({
JSON.stringify(scheduleItem) // url: `./../meetingDetail/meetingDetail?scheduleItem=${encodeURIComponent(
)}` // JSON.stringify(scheduleItem)
}); // )}`
} // });
// }
this.isNeverShowSchedulePage = true; this.isNeverShowSchedulePage = true;
//获取动态列表s //获取动态列表s
this.getPages(1); this.getPages(1);
...@@ -880,7 +885,7 @@ create.Page({ ...@@ -880,7 +885,7 @@ create.Page({
maxClickCount--; maxClickCount--;
if (maxClickCount == 0) { if (maxClickCount == 0) {
dd.alert({ dd.alert({
content: "0.0.27" content: "0.0.28"
}); });
maxClickCount = 5; maxClickCount = 5;
} }
......
...@@ -139,8 +139,23 @@ ...@@ -139,8 +139,23 @@
<view class="permission" a:if="{{currentPeople != organizer}}"> <view class="permission" a:if="{{currentPeople != organizer}}">
</view> </view>
</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"> <view class="meetingWayShow" a:if="{{comListData.meetingWayModelId == 1}}">
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="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: '删除该会议' }}"/> <template is="deleteBtn" onhandleDelete="" data="{{title: '删除该会议' }}"/>
</view> </view>
...@@ -187,13 +202,11 @@ ...@@ -187,13 +202,11 @@
<view onTap="showCreateTask" data-pop="{{title: '创建任务', type: 'createTask'}}"> <view onTap="showCreateTask" data-pop="{{title: '创建任务', type: 'createTask'}}">
<text class="iconfont iconicon_task1"></text>任务 <text class="iconfont iconicon_task1"></text>任务
</view> </view>
<view onTap="addMeetingFile"> <!--<view onTap="addMeetingFile"><text class="iconfont iconicon_data"></text>文件</view> -->
<text class="iconfont iconicon_data"></text>文件
</view>
<view onTap="addOssFile" a:if="{{isShowOss}}"> <view onTap="addOssFile" a:if="{{isShowOss}}">
<text class="iconfont iconicon_data"></text> <text class="iconfont iconicon_data"></text>
<view> <view>
oss 文件
</view> </view>
</view> </view>
<text class="devider"></text> <text class="devider"></text>
...@@ -245,8 +258,8 @@ ...@@ -245,8 +258,8 @@
<popup a:if="{{popupShow}}" title="{{popupTitle}}" show="{{popupShow}}" mask="true" onClose="closePopup"> <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> <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> <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 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> <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>
<popup a:if="{{show}}" show="{{show}}" onClose="closePop" title="{{pop.title}}"> <popup a:if="{{show}}" show="{{show}}" onClose="closePop" title="{{pop.title}}">
<!-- 任务创建弹出框 --> <!-- 任务创建弹出框 -->
......
...@@ -3,10 +3,11 @@ import { checkFullScren } from "../../utils/checkFullScren"; ...@@ -3,10 +3,11 @@ import { checkFullScren } from "../../utils/checkFullScren";
import pageStore from './store'; import pageStore from './store';
import { saveFileInfo, getMeetingRoomAffairs, createMeetingTask, deleteMeetingTask, updateMeetingTask, uploadPermissions } from '../../api/request'; import { saveFileInfo, getMeetingRoomAffairs, createMeetingTask, deleteMeetingTask, updateMeetingTask, uploadPermissions } from '../../api/request';
import { getOssPermission, getuploadResource, isParticipate, deleteSchedule, getScheduleDetail, getUserScheduleInTime, modifySchedule, getMeetingRoomRepeatAffairs } from '../../api/request.js' 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 { observer } from '/utils/observer.js'
import { resolve } from 'path'; import { resolve } from 'path';
import { isShowOss } from '../../config.js'; import { isShowOss } from '../../config.js';
import { uploadOss } from './uploadFile';
create.Page({ create.Page({
store: pageStore, store: pageStore,
useAll: true, useAll: true,
...@@ -34,8 +35,8 @@ create.Page({ ...@@ -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 } } { 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: [ meetingWayList: [
{ id: 0, text: 'Zoom Meeting', imageUrl: '../../assests/Zoom.png', meetingWayModel: { model: 'zoom' } }, { id: 0, text: '钉钉', imageUrl: '../../assests/dingding.png', meetingWayModel: { model: 'dingtalk' } },
{ id: 1, text: '钉钉', imageUrl: '../../assests/dingding.png', meetingWayModel: { model: 'dingtalk' } } { id: 1, text: 'Zoom Meeting', imageUrl: '../../assests/Zoom.png', meetingWayModel: { model: 'zoom' } }
], ],
aheadTimesList: [ aheadTimesList: [
{ id: -1, text: '不提醒', icon: 'iconicon_cycle' }, { id: -1, text: '不提醒', icon: 'iconicon_cycle' },
...@@ -115,6 +116,8 @@ create.Page({ ...@@ -115,6 +116,8 @@ create.Page({
}, },
onShow() { onShow() {
// this.conflictPeople() // this.conflictPeople()
this.store.data.fileInfos = []
this.update()
setTimeout(() => { setTimeout(() => {
this.update() this.update()
}, 100) }, 100)
...@@ -178,6 +181,7 @@ create.Page({ ...@@ -178,6 +181,7 @@ create.Page({
break; break;
} }
} }
}, },
onLoad(event) { onLoad(event) {
event.scheduleItem = decodeURIComponent(event.scheduleItem); event.scheduleItem = decodeURIComponent(event.scheduleItem);
...@@ -235,7 +239,7 @@ create.Page({ ...@@ -235,7 +239,7 @@ create.Page({
mrReserveStatus: res.data.data.mrReserveStatus, mrReserveStatus: res.data.data.mrReserveStatus,
confirmAttendance: res.data.data.confirmAttendance === null ? -9 : res.data.data.confirmAttendance, confirmAttendance: res.data.data.confirmAttendance === null ? -9 : res.data.data.confirmAttendance,
organizer: res.data.data.organizer, 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, 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' }, 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, title: res.data.data.title,
...@@ -244,7 +248,8 @@ create.Page({ ...@@ -244,7 +248,8 @@ create.Page({
isShowRemark: res.data.data.remark ? true : false, isShowRemark: res.data.data.remark ? true : false,
week: this.data.weekList[new Date(res.data.data.startTime.replace(/-/g, "/")).getDay()], week: this.data.weekList[new Date(res.data.data.startTime.replace(/-/g, "/")).getDay()],
getData: true, getData: true,
scheduleItem: res.data.data scheduleItem: res.data.data,
meetingWayModelData: res.data.data.meetingWayModel
}) })
if (res.data.data.repeatable) { if (res.data.data.repeatable) {
this.setData({ this.setData({
...@@ -463,6 +468,7 @@ create.Page({ ...@@ -463,6 +468,7 @@ create.Page({
popupShow: false, popupShow: false,
meetingWayModel: this.data.comListData.meetingWayList[event.currentTarget.dataset.item.id].meetingWayModel meetingWayModel: this.data.comListData.meetingWayList[event.currentTarget.dataset.item.id].meetingWayModel
}) })
if (this.data.repeatable) { if (this.data.repeatable) {
this.setData({ this.setData({
editType: 'meeting_way' editType: 'meeting_way'
...@@ -996,9 +1002,19 @@ create.Page({ ...@@ -996,9 +1002,19 @@ create.Page({
this.modifySchedule(dataWay).then(res => { this.modifySchedule(dataWay).then(res => {
this.$store.data.originalData.meetingWay = !!this.data.comListData.meetingWayModelId ? this.data.comListData.meetingWayList[this.data.comListData.meetingWayModelId] : null this.$store.data.originalData.meetingWay = !!this.data.comListData.meetingWayModelId ? this.data.comListData.meetingWayList[this.data.comListData.meetingWayModelId] : null
this.update() 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 => { }).catch(err => {
this.setData({ 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 break
...@@ -1621,72 +1637,11 @@ create.Page({ ...@@ -1621,72 +1637,11 @@ create.Page({
}, },
// 上传oss文件 // 上传oss文件
async addOssFile() { async addOssFile() {
const timestamp = new Date().getTime() uploadOss().then(res => {
const random = getRndInteger(1000, 10000) dd.navigateTo({ url: `./../uploadFile/uploadFile` })
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)
})
}) })
}, },
//隐藏文件操作浮窗 //隐藏文件操作浮窗
hideFileOperate() { hideFileOperate() {
this.store.data.logId = ''; this.store.data.logId = '';
......
...@@ -8,14 +8,15 @@ class Store { ...@@ -8,14 +8,15 @@ class Store {
taskStatus: '', taskStatus: '',
taskInfos: null taskInfos: null
}, },
fileInfos: null, fileInfos: [],
description: '', description: '',
oldFileInfos: '', oldFileInfos: '',
oldDescription: '', oldDescription: '',
scheduleId: '', scheduleId: '',
groupId: '', groupId: '',
isNeedReloadList: false, isNeedReloadList: false,
logId: '' logId: '',
relatedAppPlatform: null
} }
} }
export default new Store() 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 { ...@@ -3,7 +3,7 @@ page {
font-family: PingFangSC-Regular; font-family: PingFangSC-Regular;
font-size: 34rpx; font-size: 34rpx;
color: #191F25; color: #191F25;
padding-bottom: 128rpx; padding-bottom: 136rpx;
} }
.peopleList { .peopleList {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<view class="describe"> <view class="describe">
<textarea value="{{description}}" class="textarea" onInput="inputChange" placeholder="添加文件描述..." maxlength="-1" /> <textarea value="{{description}}" class="textarea" onInput="inputChange" placeholder="添加文件描述..." maxlength="-1" />
</view> </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 class="addText" onTap="add">继续添加</view>
</view> </view>
<view class="saveButton" onTap="saveUpload"> <view class="saveButton" onTap="saveUpload">
......
...@@ -2,11 +2,12 @@ import create from 'dd-store' ...@@ -2,11 +2,12 @@ import create from 'dd-store'
import { saveFileInfo, addSchedule, uploadPermissions, previewPermissions, updateMeetingTask } from '../../api/request.js' import { saveFileInfo, addSchedule, uploadPermissions, previewPermissions, updateMeetingTask } from '../../api/request.js'
import { throttle, debounce } from './../../utils/utils.js' import { throttle, debounce } from './../../utils/utils.js'
import pageStore from '../meetingDetail/store'; import pageStore from '../meetingDetail/store';
import { uploadOss } from '../meetingDetail/uploadFile';
create.Page({ create.Page({
store: pageStore, store: pageStore,
data: { data: {
fileInfos: null, //store fileInfos: [], //store
description: '',//store description: '',//store
id: '' id: ''
}, },
...@@ -35,27 +36,28 @@ create.Page({ ...@@ -35,27 +36,28 @@ create.Page({
}, 100), }, 100),
//添加会议文件 //添加会议文件
add() { add() {
const data = { uploadOss()
ddUserId: getApp().globalData.userid, // const data = {
type: 'add', // ddUserId: getApp().globalData.userid,
projectName: 'MING_MEETING' // type: 'add',
} // projectName: 'MING_MEETING'
uploadPermissions(data).then(res => { // }
if (res.data.code === 0) { // uploadPermissions(data).then(res => {
const _that = this // if (res.data.code === 0) {
dd.uploadAttachmentToDingTalk({ // const _that = this
image: { multiple: true, compress: true, max: 9, spaceId: res.data.data }, // dd.uploadAttachmentToDingTalk({
space: { spaceId: res.data.data, compress: true, isCopy: 1, max: 9 }, // image: { multiple: true, compress: true, max: 9, spaceId: res.data.data },
types: ["photo", "camera", "space"], // space: { spaceId: res.data.data, compress: true, isCopy: 1, max: 9 },
success: (res) => { // types: ["photo", "camera", "space"],
_that.store.data.fileInfos.push(...res.data) // success: (res) => {
_that.update(); // _that.store.data.fileInfos.push(...res.data)
}, // _that.update();
fail: (err) => { // },
} // fail: (err) => {
}) // }
} // })
}) // }
// })
}, },
// 保存 // 保存
...@@ -84,12 +86,11 @@ create.Page({ ...@@ -84,12 +86,11 @@ create.Page({
groupId: this.store.data.groupId, groupId: this.store.data.groupId,
uploader: getApp().globalData.userid, uploader: getApp().globalData.userid,
creatorInfo: getApp().globalData.userInfo, creatorInfo: getApp().globalData.userInfo,
thirdStoreTenant: 'dingTalk', thirdStoreTenant: 'oss',
fileInfos: JSON.stringify(fileInfos), fileInfos: JSON.stringify(fileInfos),
description: description, description: description,
logType: 'schedule_accessory_add' logType: 'schedule_accessory_add'
} }
//编辑文件 //编辑文件
if (this.data.id) { if (this.data.id) {
data.logType = 'schedule_accessory_modify'; 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