@@ -0,0 +1,10 @@ | |||
<template> | |||
<img v-lazy="src" /> | |||
</template> | |||
<script> | |||
export default { | |||
props: { | |||
src: String | |||
} | |||
} | |||
</script> |
@@ -1,3 +0,0 @@ | |||
import { getFileUrl } from '@/services/oss'; | |||
export default imgSrc => getFileUrl(imgSrc) || '/static/img/avator_default.svg'; |
@@ -0,0 +1,8 @@ | |||
import { getFileUrl } from '@/services/oss'; | |||
export const resolveAvator = imgSrc => getFileUrl(imgSrc) || '/static/img/avator_default.svg'; | |||
export default (imgSrc, imgType) => { | |||
const defaultImg = imgType === 'avator' ? '/static/img/avator_default.svg' : '' | |||
return getFileUrl(imgSrc) || defaultImg; | |||
}; |
@@ -10,9 +10,10 @@ import 'element-ui/lib/theme-chalk/index.css'; | |||
import store from './store'; | |||
import vuex from 'vuex'; | |||
import Cookies from 'js-cookie' | |||
import resolveAvator from '@/filters/resolveAvator'; | |||
import resolveImg ,{ resolveAvator } from '@/filters/resolveImg'; | |||
import VueLazyload from 'vue-lazyload' | |||
import VueContextMenu from '@xunlei/vue-context-menu' | |||
import LazyImg from '@/components/img-lazy'; | |||
// 加载其他css | |||
import "@/../public/static/css/element_chanage.css" | |||
@@ -29,12 +30,14 @@ Vue.use(ElementUI); | |||
Vue.use(VueLazyload); | |||
Vue.use(vuex); | |||
Vue.prototype.$cookie = Cookies; | |||
Vue.component('ImgLazy', LazyImg); | |||
// todo DEPRECATED | |||
Vue.prototype.$axios = axios; | |||
// todo DEPRECATED | |||
Vue.prototype.$fetch = axios; | |||
Vue.prototype.$fetchApi = fetchApi; | |||
Vue.filter('resolveImg', resolveImg); | |||
Vue.filter('resolveAvator', resolveAvator); | |||
//右键菜单 | |||
@@ -54,15 +54,15 @@ export async function fetchApi(path, params, config) { | |||
: axios.post(fullpath, params, config) | |||
); | |||
return res.data; | |||
} catch(e) { | |||
if(e.response && e.response.status) { | |||
switch(e.response.status) { | |||
} catch (e) { | |||
if (e.response && e.response.status) { | |||
switch (e.response.status) { | |||
case 404: | |||
return { | |||
Code: 404, | |||
Msg: '找不到指定的服务', | |||
}; | |||
default: | |||
default: | |||
return { | |||
Code: 503, | |||
Msg: '服务异常,请稍后再试', | |||
@@ -78,7 +78,7 @@ export async function fetchApi(path, params, config) { | |||
} | |||
export function wrapErrorHint(response) { | |||
if(response.Code !== 0) { | |||
if (response.Code !== 0) { | |||
notify.error(response.Msg); | |||
} | |||
return response; | |||
@@ -88,7 +88,8 @@ export default axios; | |||
function mapApiPathToFullPath(path) { | |||
const [service] = path.split('/'); | |||
const fullpath = `api/${(service === 'template' || service === 'project') ? 'pms' : 'cms'}/${service === 'authentication' ? '' : 'v1/'}${path}`; | |||
const prefix = ['template', 'project', 'folder'].indexOf(service) !== -1 ? 'pms' : 'cms'; | |||
const fullpath = `api/${prefix}/${service === 'authentication' ? '' : 'v1/'}${path}`; | |||
let method = 'GET'; | |||
switch (path) { | |||
@@ -109,9 +110,11 @@ function mapApiPathToFullPath(path) { | |||
case 'template/addTemplateNodeModelFile': | |||
case 'template/createNestedRelevance': | |||
case 'template/deleteNestedRelevance': | |||
case 'project/EditProject': | |||
case 'project/CreateProject': | |||
// case 'template/deleteTemplateNodeModelFile': | |||
case "folder/createSubfolder": | |||
case "project/CreateProject": | |||
case "project/EditProject": | |||
case "project/assignedWork": | |||
// case 'template/deleteTemplateNodeModelFile': | |||
method = 'POST'; | |||
break; | |||
// case 'authentication/loginOut': | |||
@@ -1441,7 +1441,7 @@ | |||
const res = await templateService.queryTemplateNodeByTemplateId(this.selectTemlateID); | |||
this.checkNewProjData.Node = res.Data; | |||
this.$fetchApi('project/CreateProject', JSON.stringify(this.checkNewProjData)).then(res => { | |||
this.$fetchApi('project/CreateProject', this.checkNewProjData).then(res => { | |||
console.log(res); | |||
if(res.Code === 0) { | |||
thisApp.$notify({ | |||
@@ -711,7 +711,7 @@ import { wrapOssProtocol} from "@/services/oss"; | |||
var updateData = { | |||
ProjId: this.currentProjId, | |||
ImgeUrl:this.nowProject.ShowImgUrl, | |||
ImgUrl:this.nowProject.ShowImgUrl, | |||
Projprops: CustomProps, | |||
}; | |||
console.log(updateData) | |||
@@ -25,6 +25,10 @@ | |||
<app-nav :list="navList" /> | |||
</template> | |||
</app-header> | |||
<div style="height: 2000px" /> | |||
<img-lazy :src="'oss://1603443894479/bz.jpg' | resolveAvator" /> | |||
<img v-lazy="'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1603457396447&di=9046aaf5b7fc79ce05e28cb76f289862&imgtype=0&src=http%3A%2F%2Fa3.att.hudong.com%2F14%2F75%2F01300000164186121366756803686.jpg'" /> | |||
<img :src="'oss://1603443882955/9.jpg' | resolveAvator" /> | |||
</div> | |||
</template> | |||
@@ -84,7 +84,7 @@ | |||
<img | |||
class="fandatupian" | |||
@click="goFilePage(projItem)" | |||
v-lazy="projItem.ShowImgUrl | resolveAvator" | |||
:src="projItem.ShowImgUrl | resolveImg" | |||
alt | |||
/> | |||
<div class="yiyun_product_item_top"> | |||
@@ -372,21 +372,21 @@ export default { | |||
/** | |||
* 设置日期、时间 | |||
*/ | |||
setDateTime: function () { | |||
this.nowDate = commonJs.getDate(); | |||
this.createDate = this.nowDate; | |||
this.nowTime = commonJs.getTime(); | |||
var time = this.nowTime.substring(0, 2); | |||
if (time < 12 && time > 0) { | |||
this.welcome = "上午好! " + this.cnName; | |||
} else if (time == 12) { | |||
this.welcome = "中午好! " + this.cnName; | |||
} else if (time > 12 && time > 20) { | |||
this.welcome = "晚上好,注意休息! " + this.cnName; | |||
} else if (time > 12 && time < 20) { | |||
this.welcome = "下午好!" + this.cnName; | |||
} | |||
}, | |||
// setDateTime: function () { | |||
// this.nowDate = commonJs.getDate(); | |||
// this.createDate = this.nowDate; | |||
// this.nowTime = commonJs.getTime(); | |||
// var time = this.nowTime.substring(0, 2); | |||
// if (time < 12 && time > 0) { | |||
// this.welcome = "上午好! " + this.cnName; | |||
// } else if (time == 12) { | |||
// this.welcome = "中午好! " + this.cnName; | |||
// } else if (time > 12 && time > 20) { | |||
// this.welcome = "晚上好,注意休息! " + this.cnName; | |||
// } else if (time > 12 && time < 20) { | |||
// this.welcome = "下午好!" + this.cnName; | |||
// } | |||
// }, | |||
/** | |||
* 获取项目数据 | |||
*/ | |||
@@ -435,14 +435,14 @@ export default { | |||
* 转到workspace工作空间 | |||
*/ | |||
goFilePage: function (proj) { | |||
sessionStorage.createUserID = proj.createUserID; | |||
sessionStorage.templateID = proj.templateID; | |||
sessionStorage.projId = proj.projID; | |||
sessionStorage.createUserID = proj.CreateUserId; | |||
sessionStorage.templateID = proj.TemplateId; | |||
sessionStorage.projId = proj.Id; | |||
sessionStorage.nowFolderIndex = ""; | |||
sessionStorage.comFolderId = proj.comFolderID; | |||
sessionStorage.newProjStatus = proj.newProjStatus; | |||
if (sessionStorage.projName != proj.projName) { | |||
sessionStorage.projName = proj.projName; | |||
sessionStorage.comFolderId = proj.ComFolderId; | |||
sessionStorage.newProjStatus = proj.NewProjStatus; | |||
if (sessionStorage.projName != proj.ProjName) { | |||
sessionStorage.projName = proj.ProjName; | |||
} | |||
this.$router.push({ | |||
name: "workspace", | |||
@@ -612,30 +612,30 @@ export default { | |||
/** | |||
* 打开项目设置窗体 | |||
*/ | |||
projectEdit: function (proj) { | |||
this.currProjId = proj.projID; | |||
var thisApp = this; | |||
this.$axios({ | |||
method: "get", | |||
url: encodeURI( | |||
process.env.API_HOST + | |||
"projects/manager/" + | |||
this.currProjId + | |||
"/" + | |||
sessionStorage.userId | |||
), | |||
}) | |||
.then((response) => { | |||
if (response.data != null && response.data != "") { | |||
thisApp.isProjectManager = response.data.isProjManager; | |||
thisApp.isShowProjSetting = true; | |||
thisApp.isEditProjFolder = false; | |||
} | |||
}) | |||
.catch((error) => { | |||
console.log(error); | |||
}); | |||
}, | |||
// projectEdit: function (proj) { | |||
// this.currProjId = proj.projID; | |||
// var thisApp = this; | |||
// this.$axios({ | |||
// method: "get", | |||
// url: encodeURI( | |||
// process.env.API_HOST + | |||
// "projects/manager/" + | |||
// this.currProjId + | |||
// "/" + | |||
// sessionStorage.userId | |||
// ), | |||
// }) | |||
// .then((response) => { | |||
// if (response.data != null && response.data != "") { | |||
// thisApp.isProjectManager = response.data.isProjManager; | |||
// thisApp.isShowProjSetting = true; | |||
// thisApp.isEditProjFolder = false; | |||
// } | |||
// }) | |||
// .catch((error) => { | |||
// console.log(error); | |||
// }); | |||
// }, | |||
/** | |||
* 打开项目概况 | |||
*/ | |||
@@ -1,322 +1,320 @@ | |||
<template> | |||
<div> | |||
<div | |||
:class=" | |||
isShowRightManager == true | |||
? 'AnimatedRightIn flex_right_pain' | |||
: 'flex_right_pain' | |||
" | |||
> | |||
<!-- 新申请 --> | |||
<div class="flex_right_pain_body_box"> | |||
<div class="flex_right_pain_head"> | |||
<div class="EC_col_12"> | |||
<h4 class="RdiaheaderTitle">工作名称</h4> | |||
<h4 class="RdiaheaderTitle">我发起的申请</h4> | |||
<h4 class="RdiaheaderTitle">新申请</h4> | |||
</div> | |||
<div class="EC_col_12"> | |||
<i | |||
class="Cicon icon font_family icon-icon_quxiaohuoguanbi fr" | |||
title="关闭" | |||
@click="closeAppManagePain" | |||
></i> | |||
</div> | |||
</div> | |||
<div class="pxline"></div> | |||
<div class="flex_right_pain_body flex_rightheight3"> | |||
<div class="yiyun_app_itemClasss"> | |||
<span class="yiyun_yinyongname">工作详情</span> | |||
<span class="yiyun_yinyongname">申请状态:审核中</span> | |||
<span class="yiyun_yinyongname">对方 需要您的文件</span> | |||
<ul class="yiyun_app_info_box newapplay"> | |||
<li> | |||
<label class="tinylabel">协作对象</label> | |||
<span class="fl">工作名称</span> | |||
</li> | |||
<li> | |||
<label class="tinylabel">对方工作负责人</label> | |||
<span class="fl">负责人名称</span> | |||
</li> | |||
<li> | |||
<label class="tinylabel">工作参与职员数</label> | |||
<span class="fl">1人</span> | |||
</li> | |||
</ul> | |||
</div> | |||
</div> | |||
<div style="text-align: center"> | |||
<div> | |||
<span class="yiyun_yinyongname nostyle"></span> | |||
</div> | |||
<div class="btn_double"> | |||
<button type="button" class="btn_doubleItem"> | |||
解除文件交换关系 | |||
</button> | |||
</div> | |||
<div class="btn_double"> | |||
<button type="button" class="btn_doubleItem">取消申请</button> | |||
</div> | |||
<div class="btn_double"> | |||
<button type="button" class="btn_doubleItem">同意并建立协作</button> | |||
<div class="pxline"></div> | |||
<button type="button" class="btn_doubleItem">驳回申请</button> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="backwork pt-10" v-show="isShowworklink" v-if="false"> | |||
<div class="warpbianju"> | |||
<div class="fl"> | |||
<button | |||
type="button" | |||
class="yiyuntitle nowFolderName shadowbtn" | |||
@click="hideWorklinkPage()" | |||
> | |||
回到工作 | |||
</button> | |||
</div> | |||
</div> | |||
</div> | |||
<!-- 我的文件面板 --> | |||
<section | |||
:class="'yiyun_warpBar bg_color_company bottomBloder ' + workheight" | |||
> | |||
<div :class="'yiyun_warpContent worklinkHeight'" v-show="isShowworklink"> | |||
<div class="yiyun-rows overflowinit"> | |||
<!-- 我的文件title --> | |||
<div class="yiyun_file_box"> | |||
<div class="yiyun_Headtitle_center" style="overflow: hidden"> | |||
<div class="yiyun-col-12 worktitlebox overflowinit"> | |||
<button type="button" class="yiyuntitle myFolderName"> | |||
<!-- <button type="button" class="yiyuntitle myFolderName" @click="hideWorklinkPage()"> --> | |||
我的工作链 | |||
</button> | |||
</div> | |||
<div | |||
:class=" | |||
listUserFolders.length < 8 | |||
? 'worklink linkcenter' | |||
: 'worklink linkstart' | |||
" | |||
> | |||
<div | |||
class="yuandian" | |||
v-for="(myfolder, index) in listUserFolders" | |||
:key="myfolder.folderID" | |||
> | |||
<!-- 移入按钮 --> | |||
<div class="upList"> | |||
<div class="enterPoint"> | |||
<div | |||
type="button" | |||
class="linkBtn2 leftlinebox" | |||
:key="indexfrom" | |||
v-for="(from, indexfrom) in myfolder.listsShareFrom[1]" | |||
@click="showNewAppManagement(from)" | |||
> | |||
<i class="leftline"></i> | |||
<span class="worllistt2" :title="from.folderName">{{ | |||
from.folderName | |||
}}</span> | |||
</div> | |||
</div> | |||
<div | |||
class="enterLine" | |||
v-if="myfolder.listsShareFrom[1].length > 0" | |||
> | |||
<i class="el-icon-caret-bottom bottomenter"></i> | |||
</div> | |||
</div> | |||
<div class="conterpoint"> | |||
<button | |||
type="button" | |||
:class=" | |||
myfolder.folderName == nowFolderName | |||
? 'currworkbutton ' | |||
: 'workbutton' | |||
" | |||
@click="goFolderAndBack(index)" | |||
:title="myfolder.folderName" | |||
> | |||
{{ myfolder.folderName }} | |||
</button> | |||
<i | |||
class="linkline workend" | |||
v-if="index < listUserFolders.length - 1" | |||
></i> | |||
</div> | |||
<!-- 移出按钮 --> | |||
<div | |||
class="bottomlist" | |||
v-if="myfolder.listsShareFrom[0].length > 0" | |||
> | |||
<div class="leftlin2"></div> | |||
<div class="outPoint"> | |||
<div | |||
type="button" | |||
class="linkBtn2 leftlinebox" | |||
:key="indexShare" | |||
v-for="(share, indexShare) in myfolder | |||
.listsShareFrom[0]" | |||
@click="showNewAppManagement(share)" | |||
> | |||
<i class="leftline"></i> | |||
<span class="worllistt2" :title="share.folderName">{{ | |||
share.folderName | |||
}}</span> | |||
</div> | |||
<div class="outLine"> | |||
<i class="el-icon-caret-bottom bottomenter"></i> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="clear"></div> | |||
<div class="yiyun_warpContent"> | |||
<div class="yiyun-rows overflowinit"> | |||
<!-- 我的文件title --> | |||
<div :class="'yiyun_file_box bgwirte'"> | |||
<div class="yiyun_Headtitle_center"> | |||
<div class="yiyun-col-8 worktitlebox overflowinit"> | |||
<i | |||
class="icon iconfont icon_small-icon_small_shouqi workbtn anniuweizhi rota180 drakbg" | |||
v-show=" | |||
!isShowworklink && | |||
listUserFolders.length > 1 && | |||
nowFolderIndex != 0 | |||
" | |||
@click="previousFolder" | |||
></i> | |||
<button | |||
type="button" | |||
v-show="!isShowworklink" | |||
class="yiyuntitle nowFolderName curbtn" | |||
> | |||
{{ nowFolderName }} | |||
</button> | |||
<div class="worklinkBtngroup"> | |||
<template v-for="(currFolder, index) in listUserFolders"> | |||
<button | |||
type="button" | |||
v-if=" | |||
index > nowFolderIndex && | |||
currFolder.folderName != nowFolderName && | |||
!isShowworklink | |||
" | |||
:key="index" | |||
@click="nowFolderClick(index)" | |||
class="yiyuntitle sectitle" | |||
> | |||
{{ currFolder.folderName }} | |||
</button> | |||
</template> | |||
</div> | |||
<i | |||
class="icon font_family icon-icon_shezhi-jihuo rota90 workbtn workderct" | |||
v-show="!isShowworklink" | |||
@click="showWorklinkPage()" | |||
></i> | |||
<!-- <i class="icon font_family icon-icon_shezhi-jihuo rota90 workbtn workderct" v-show="!isShowworklink" | |||
@click="showWorklinkPage()"></i>--> | |||
</div> | |||
<div class="yiyun-col-4"> | |||
<!-- <div class="mt-10"> | |||
<button type="button" class="yiyuntitle sectitle fr" @click="showAllAppManagement" v-show="nowFolderName != '公共文件夹'" v-show="!isShowworklink"> | |||
工作设置 | |||
</button> | |||
</div>--> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="clear"></div> | |||
</section> | |||
</div> | |||
</template> | |||
<script> | |||
export default { | |||
props: { | |||
listUserFolders: Array, | |||
nowFolderIndex: Number, | |||
nowFolderName: String, | |||
isShowlink: Boolean, | |||
}, | |||
data() { | |||
return { | |||
isShowRightManager: false, | |||
isShowworklink: false, | |||
workheight: "", //工作链高度 | |||
}; | |||
}, | |||
methods: { | |||
/** | |||
* 隐藏工作链页面 | |||
*/ | |||
hideWorklinkPage() { | |||
this.$emit("hideWorklinkPage", false); | |||
this.isShowworklink = false; | |||
this.workheight = "workheightinit"; | |||
}, | |||
/** | |||
* 工作链中新申请 | |||
*/ | |||
showNewAppManagement(from) { | |||
// this.isShowRightManager = true; | |||
}, | |||
/** | |||
* 关闭工作地图 | |||
*/ | |||
closeAppManagePain() { | |||
this.isShowRightManager = false; | |||
}, | |||
/** | |||
* 上一个文件夹 | |||
* */ | |||
previousFolder() { | |||
this.$emit("previousFolder", true); | |||
}, | |||
/* | |||
* 当前工作点击 | |||
* */ | |||
nowFolderClick(index) { | |||
this.$emit("nowFolderClick", index); | |||
}, | |||
/* | |||
* 显示工作设置 | |||
* */ | |||
showAllAppManagement() { | |||
this.$emit("showAllAppManagement", true); | |||
}, | |||
/** | |||
* 查看工作链页面 | |||
*/ | |||
showWorklinkPage() { | |||
this.$emit("showWorklinkPage", true); | |||
this.isShowworklink = true; | |||
this.workheight = "workheight"; | |||
}, | |||
/** | |||
* 工作链页面点击 | |||
*/ | |||
goFolderAndBack(index) { | |||
this.$emit("goFolderAndBack", index); | |||
this.hideWorklinkPage(); | |||
}, | |||
}, | |||
watch: { | |||
isShowlink(data) { | |||
if (data == false) { | |||
this.hideWorklinkPage(); | |||
} | |||
}, | |||
}, | |||
}; | |||
</script> | |||
<template> | |||
<div> | |||
<div | |||
:class=" | |||
isShowRightManager == true | |||
? 'AnimatedRightIn flex_right_pain' | |||
: 'flex_right_pain' | |||
" | |||
> | |||
<!-- 新申请 --> | |||
<div class="flex_right_pain_body_box"> | |||
<div class="flex_right_pain_head"> | |||
<div class="EC_col_12"> | |||
<h4 class="RdiaheaderTitle">工作名称</h4> | |||
<h4 class="RdiaheaderTitle">我发起的申请</h4> | |||
<h4 class="RdiaheaderTitle">新申请</h4> | |||
</div> | |||
<div class="EC_col_12"> | |||
<i | |||
class="Cicon icon font_family icon-icon_quxiaohuoguanbi fr" | |||
title="关闭" | |||
@click="closeAppManagePain" | |||
></i> | |||
</div> | |||
</div> | |||
<div class="pxline"></div> | |||
<div class="flex_right_pain_body flex_rightheight3"> | |||
<div class="yiyun_app_itemClasss"> | |||
<span class="yiyun_yinyongname">工作详情</span> | |||
<span class="yiyun_yinyongname">申请状态:审核中</span> | |||
<span class="yiyun_yinyongname">对方 需要您的文件</span> | |||
<ul class="yiyun_app_info_box newapplay"> | |||
<li> | |||
<label class="tinylabel">协作对象</label> | |||
<span class="fl">工作名称</span> | |||
</li> | |||
<li> | |||
<label class="tinylabel">对方工作负责人</label> | |||
<span class="fl">负责人名称</span> | |||
</li> | |||
<li> | |||
<label class="tinylabel">工作参与职员数</label> | |||
<span class="fl">1人</span> | |||
</li> | |||
</ul> | |||
</div> | |||
</div> | |||
<div style="text-align: center"> | |||
<div> | |||
<span class="yiyun_yinyongname nostyle"></span> | |||
</div> | |||
<div class="btn_double"> | |||
<button type="button" class="btn_doubleItem"> | |||
解除文件交换关系 | |||
</button> | |||
</div> | |||
<div class="btn_double"> | |||
<button type="button" class="btn_doubleItem">取消申请</button> | |||
</div> | |||
<div class="btn_double"> | |||
<button type="button" class="btn_doubleItem">同意并建立协作</button> | |||
<div class="pxline"></div> | |||
<button type="button" class="btn_doubleItem">驳回申请</button> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="backwork pt-10" v-show="isShowworklink" v-if="false"> | |||
<div class="warpbianju"> | |||
<div class="fl"> | |||
<button | |||
type="button" | |||
class="yiyuntitle nowFolderName shadowbtn" | |||
@click="hideWorklinkPage()" | |||
> | |||
回到工作 | |||
</button> | |||
</div> | |||
</div> | |||
</div> | |||
<!-- 我的文件面板 --> | |||
<section | |||
:class="'yiyun_warpBar bg_color_company bottomBloder ' + workheight" | |||
> | |||
<div :class="'yiyun_warpContent worklinkHeight'" v-show="isShowworklink"> | |||
<div class="yiyun-rows overflowinit"> | |||
<!-- 我的文件title --> | |||
<div class="yiyun_file_box"> | |||
<div class="yiyun_Headtitle_center" style="overflow: hidden"> | |||
<div class="yiyun-col-12 worktitlebox overflowinit"> | |||
<button type="button" class="yiyuntitle myFolderName"> | |||
<!-- <button type="button" class="yiyuntitle myFolderName" @click="hideWorklinkPage()"> --> | |||
我的工作链 | |||
</button> | |||
</div> | |||
<div | |||
:class=" | |||
listUserFolders.length < 8 | |||
? 'worklink linkcenter' | |||
: 'worklink linkstart' | |||
" | |||
> | |||
<div | |||
class="yuandian" | |||
v-for="(myfolder, index) in listUserFolders" | |||
:key="myfolder.id" | |||
> | |||
<!-- 移入按钮 --> | |||
<div class="upList"> | |||
<div class="enterPoint"> | |||
<div | |||
type="button" | |||
class="linkBtn2 leftlinebox" | |||
:key="indexfrom" | |||
v-for="(from, indexfrom) in myfolder.listsShareFrom[1]" | |||
@click="showNewAppManagement(from)" | |||
> | |||
<i class="leftline"></i> | |||
<span class="worllistt2" :title="from.folderName">{{from.folderName}}</span> | |||
</div> | |||
</div> | |||
<div | |||
class="enterLine" | |||
v-if="myfolder.listsShareFrom[1].length > 0" | |||
> | |||
<i class="el-icon-caret-bottom bottomenter"></i> | |||
</div> | |||
</div> | |||
<div class="conterpoint"> | |||
<button | |||
type="button" | |||
:class=" | |||
myfolder.folderName == nowFolderName | |||
? 'currworkbutton ' | |||
: 'workbutton' | |||
" | |||
@click="goFolderAndBack(index)" | |||
:title="myfolder.folderName" | |||
> | |||
{{ myfolder.folderName }} | |||
</button> | |||
<i | |||
class="linkline workend" | |||
v-if="index < listUserFolders.length - 1" | |||
></i> | |||
</div> | |||
<!-- 移出按钮 --> | |||
<div | |||
class="bottomlist" | |||
v-if="myfolder.listsShareFrom[0].length > 0" | |||
> | |||
<div class="leftlin2"></div> | |||
<div class="outPoint"> | |||
<div | |||
type="button" | |||
class="linkBtn2 leftlinebox" | |||
:key="indexShare" | |||
v-for="(share, indexShare) in myfolder | |||
.listsShareFrom[0]" | |||
@click="showNewAppManagement(share)" | |||
> | |||
<i class="leftline"></i> | |||
<span class="worllistt2" :title="share.folderName">{{ | |||
share.folderName | |||
}}</span> | |||
</div> | |||
<div class="outLine"> | |||
<i class="el-icon-caret-bottom bottomenter"></i> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="clear"></div> | |||
<div class="yiyun_warpContent"> | |||
<div class="yiyun-rows overflowinit"> | |||
<!-- 我的文件title --> | |||
<div :class="'yiyun_file_box bgwirte'"> | |||
<div class="yiyun_Headtitle_center"> | |||
<div class="yiyun-col-8 worktitlebox overflowinit"> | |||
<i | |||
class="icon iconfont icon_small-icon_small_shouqi workbtn anniuweizhi rota180 drakbg" | |||
v-show=" | |||
!isShowworklink && | |||
listUserFolders.length > 1 && | |||
nowFolderIndex != 0 | |||
" | |||
@click="previousFolder" | |||
></i> | |||
<button | |||
type="button" | |||
v-show="!isShowworklink" | |||
class="yiyuntitle nowFolderName curbtn" | |||
> | |||
{{ nowFolderName }} | |||
</button> | |||
<div class="worklinkBtngroup"> | |||
<template v-for="(currFolder, index) in listUserFolders"> | |||
<button | |||
type="button" | |||
v-if=" | |||
index > nowFolderIndex && | |||
currFolder.folderName != nowFolderName && | |||
!isShowworklink | |||
" | |||
:key="index" | |||
@click="nowFolderClick(index)" | |||
class="yiyuntitle sectitle" | |||
> | |||
{{ currFolder.folderName }} | |||
</button> | |||
</template> | |||
</div> | |||
<i | |||
class="icon font_family icon-icon_shezhi-jihuo rota90 workbtn workderct" | |||
v-show="!isShowworklink" | |||
@click="showWorklinkPage()" | |||
></i> | |||
<!-- <i class="icon font_family icon-icon_shezhi-jihuo rota90 workbtn workderct" v-show="!isShowworklink" | |||
@click="showWorklinkPage()"></i>--> | |||
</div> | |||
<div class="yiyun-col-4"> | |||
<!-- <div class="mt-10"> | |||
<button type="button" class="yiyuntitle sectitle fr" @click="showAllAppManagement" v-show="nowFolderName != '公共文件夹'" v-show="!isShowworklink"> | |||
工作设置 | |||
</button> | |||
</div>--> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="clear"></div> | |||
</section> | |||
</div> | |||
</template> | |||
<script> | |||
export default { | |||
props: { | |||
listUserFolders: Array, | |||
nowFolderIndex: Number, | |||
nowFolderName: String, | |||
isShowlink: Boolean, | |||
}, | |||
data() { | |||
return { | |||
isShowRightManager: false, | |||
isShowworklink: false, | |||
workheight: "", //工作链高度 | |||
}; | |||
}, | |||
methods: { | |||
/** | |||
* 隐藏工作链页面 | |||
*/ | |||
hideWorklinkPage() { | |||
this.$emit("hideWorklinkPage", false); | |||
this.isShowworklink = false; | |||
this.workheight = "workheightinit"; | |||
}, | |||
/** | |||
* 工作链中新申请 | |||
*/ | |||
showNewAppManagement(from) { | |||
// this.isShowRightManager = true; | |||
}, | |||
/** | |||
* 关闭工作地图 | |||
*/ | |||
closeAppManagePain() { | |||
this.isShowRightManager = false; | |||
}, | |||
/** | |||
* 上一个文件夹 | |||
* */ | |||
previousFolder() { | |||
this.$emit("previousFolder", true); | |||
}, | |||
/* | |||
* 当前工作点击 | |||
* */ | |||
nowFolderClick(index) { | |||
this.$emit("nowFolderClick", index); | |||
}, | |||
/* | |||
* 显示工作设置 | |||
* */ | |||
showAllAppManagement() { | |||
this.$emit("showAllAppManagement", true); | |||
}, | |||
/** | |||
* 查看工作链页面 | |||
*/ | |||
showWorklinkPage() { | |||
this.$emit("showWorklinkPage", true); | |||
this.isShowworklink = true; | |||
this.workheight = "workheight"; | |||
}, | |||
/** | |||
* 工作链页面点击 | |||
*/ | |||
goFolderAndBack(index) { | |||
this.$emit("goFolderAndBack", index); | |||
this.hideWorklinkPage(); | |||
}, | |||
}, | |||
watch: { | |||
isShowlink(data) { | |||
if (data == false) { | |||
this.hideWorklinkPage(); | |||
} | |||
}, | |||
}, | |||
}; | |||
</script> |
@@ -0,0 +1,25 @@ | |||
import { fetchApi } from '@/utils/request'; | |||
import { firstCharToLowerCase, firstCharToUpperCase } from '@/utils/tool'; | |||
export async function fetchWorkFlow(projectId, userId) { | |||
const res = await fetchApi('folder/queryNodeFolderListByProjectIdAndUserId', { projectId, userId }); | |||
const list = (res.Data || []).map(node => { | |||
const lower = firstCharToLowerCase(node); | |||
// 工作链中的上下游 | |||
lower.listsShareFrom = [[], []]; | |||
return lower; | |||
}); | |||
return list; | |||
} | |||
/** | |||
* 查询文件夹下边的文件(包含子文件夹以及协同文件) | |||
* @param {*} folderId | |||
* @param {*} userId | |||
*/ | |||
export async function fetchFolderFileList(folderId, userId) { | |||
const res = await fetchApi('folder/queryFileListByFolderId', {folderId, userId}); | |||
console.log(res); | |||
return res; | |||
} |
@@ -2264,7 +2264,7 @@ | |||
<div | |||
class="listimg" | |||
:title="item.name" | |||
v-if="!oneOf(item.extension, ['doc','docx','dwg','dxf','gif','jpeg','jpg','max','nwc','pdf','png','ppt','pptx','rar','rvt','skp','txt','xls','xlsx','xmind','zip'])" | |||
v-else | |||
> | |||
<img :src="'/static/img/files/file_sample_weizhi.svg'" alt /> | |||
<span class="houzuidinwei">{{ item.extension }}</span> | |||
@@ -2332,7 +2332,7 @@ | |||
<div | |||
class="listimg" | |||
:title="item.name" | |||
v-if="!oneOf(item.extension, ['doc','docx','dwg','dxf','gif','jpeg','jpg','max','nwc','pdf','png','ppt','pptx','rar','rvt','skp','txt','xls','xlsx','xmind','zip'])" | |||
v-else | |||
> | |||
<img :src="'/static/img/files/file_sample_weizhi.svg'" alt /> | |||
<span class="houzuidinwei">{{ item.extension }}</span> | |||
@@ -2710,12 +2710,13 @@ import officeview from "@/views/components/officeview/officeview.vue"; | |||
import imageview from "@/views/components/imageview/imageview.vue"; | |||
// import BMapComponent from "@/views/components/map/bmap"; | |||
import DistWork from "@/views/components_web/distWork/distWork"; | |||
import WorkLine from "@/views/components_web/workLine/workLine"; | |||
import WorkLine from "./components/workLine"; | |||
import ProjSetting from "@/views/components_web/projSetting/projSetting"; | |||
import FileShare from "@/views/components_web/share_setting/fileshare"; | |||
import draggable from "vuedraggable"; | |||
import vuetify from "vuetify"; | |||
import back from '@/services/system'; | |||
import * as services from './service'; | |||
const $ = window.jQuery; | |||
const Velocity = window.Velocity; | |||
@@ -2730,7 +2731,7 @@ const initialTempFile = (folderGroupID, folderGroupName) => ({ | |||
folderGroupID, | |||
folderGroupName, | |||
folderID: "", | |||
levelID: "", | |||
levelId: "", | |||
modifyTime: "", | |||
modifyUserID: "", | |||
superID: "", | |||
@@ -2939,7 +2940,7 @@ export default { | |||
folderGroupID: "", | |||
folderID: "", | |||
superID: "", | |||
levelID: "", | |||
levelId: "", | |||
folderGroupName: "", | |||
childCount: 0, | |||
createUserID: "", | |||
@@ -3145,6 +3146,7 @@ export default { | |||
} | |||
}, | |||
/** | |||
* todo | |||
* 获取设置信息 | |||
*/ | |||
loadSettings() { | |||
@@ -3181,6 +3183,7 @@ export default { | |||
}); | |||
}, | |||
/** | |||
* todo | |||
* 判断用户是否是项目负责人 | |||
*/ | |||
loadProjManager: function () { | |||
@@ -3679,62 +3682,65 @@ export default { | |||
this.isonselect = "-2"; | |||
} | |||
}, | |||
/* | |||
*获取列表文件夹 | |||
*/ | |||
listFolders: function () { | |||
var thisApp = this; | |||
this.$axios({ | |||
method: "get", | |||
url: encodeURI( | |||
process.env.API_HOST + | |||
"folders/work/" + | |||
this.userId + | |||
"/" + | |||
this.projId | |||
), | |||
}) | |||
.then((response) => { | |||
thisApp.listUserFolders = response.data; | |||
if (thisApp.listUserFolders.length > 0) { | |||
if (this.$route.params.folderId != undefined) { | |||
var folderid = this.$route.params.folderId; | |||
for ( | |||
let index = 0; | |||
index < thisApp.listUserFolders.length; | |||
index++ | |||
) { | |||
if (thisApp.listUserFolders[index].folderID == folderid) { | |||
thisApp.nowFolderIndex = index; | |||
} | |||
} | |||
} else { | |||
if ( | |||
sessionStorage.nowFolderIndex != "" && | |||
sessionStorage.nowFolderIndex != undefined | |||
) { | |||
thisApp.nowFolderIndex = parseInt( | |||
sessionStorage.nowFolderIndex | |||
); | |||
} else { | |||
thisApp.nowFolderIndex = 0; | |||
} | |||
} | |||
thisApp.nowFolder = thisApp.listUserFolders[thisApp.nowFolderIndex]; | |||
thisApp.listFiles(); | |||
if ( | |||
thisApp.dbClickSelectedFolderGroupData == null || | |||
JSON.stringify(thisApp.dbClickSelectedFolderGroupData) == "{}" | |||
) { | |||
thisApp.timer = setInterval(() => { | |||
thisApp.listFiles(); | |||
}, 3 * 1000); | |||
} | |||
/** | |||
* todo | |||
* 获取列表文件夹 | |||
*/ | |||
async listFolders () { | |||
const userId = this.userId; | |||
const projId = this.projId; | |||
const workList = await services.fetchWorkFlow(projId, userId); | |||
const folderList = workList.slice(1); | |||
console.log(folderList); | |||
this.listUserFolders = folderList; | |||
if(!folderList.length) return; | |||
if (this.$route.params.folderId != undefined) { | |||
var folderId = this.$route.params.folderId; | |||
folderList.forEach((folder, index) => { | |||
if(folder.id === folderId) { | |||
this.nowFolderIndex = index; | |||
} | |||
}) | |||
.catch((error) => { | |||
console.log(error); | |||
}); | |||
} else { | |||
if ( | |||
sessionStorage.nowFolderIndex != "" && | |||
sessionStorage.nowFolderIndex != undefined | |||
) { | |||
this.nowFolderIndex = parseInt( | |||
sessionStorage.nowFolderIndex | |||
); | |||
} else { | |||
this.nowFolderIndex = 0; | |||
} | |||
} | |||
this.nowFolder = folderList[this.nowFolderIndex]; | |||
this.listFiles(); | |||
if ( | |||
this.dbClickSelectedFolderGroupData == null || | |||
JSON.stringify(this.dbClickSelectedFolderGroupData) == "{}" | |||
) { | |||
this.timer = setInterval(() => { | |||
this.listFiles(); | |||
}, 3 * 1000); | |||
} | |||
// var thisApp = this; | |||
// this.$axios({ | |||
// method: "get", | |||
// url: encodeURI( | |||
// process.env.API_HOST + | |||
// "folders/work/" + | |||
// this.userId + | |||
// "/" + | |||
// this.projId | |||
// ), | |||
// }) | |||
// .then((response) => { | |||
// }) | |||
// .catch((error) => { | |||
// console.log(error); | |||
// }); | |||
}, | |||
/** | |||
* 更新新项目标识 | |||
@@ -3761,91 +3767,134 @@ export default { | |||
/** | |||
* 获取当前工作下文件 | |||
*/ | |||
listFiles: function () { | |||
var thisApp = this; | |||
thisApp.isCommonPage = false; | |||
thisApp.nowFolderId = | |||
thisApp.listUserFolders[thisApp.nowFolderIndex].folderID; // 设置当前打开工作文件夹ID | |||
thisApp.nowFolderName = | |||
thisApp.listUserFolders[thisApp.nowFolderIndex].folderName; // 设置当前工作名称 | |||
var folderPerm = | |||
thisApp.listUserFolders[thisApp.nowFolderIndex].folderPerm; | |||
if ( | |||
this.listUserFolders[thisApp.nowFolderIndex].folderName == "公共文件夹" | |||
) { | |||
async listFiles() { | |||
const currentFolderIdx = this.nowFolderIndex; | |||
const currentFolder = this.listUserFolders[currentFolderIdx]; | |||
const userId = this.userId; | |||
this.isCommonPage = false; | |||
this.nowFolderId = currentFolder.id; // 设置当前打开工作文件夹ID | |||
this.nowFolderName = currentFolder.folderName; // 设置当前工作名称 | |||
this.folderPerm = currentFolder.folderPerm; | |||
// thisApp.isCommonPage = false; | |||
// thisApp.nowFolderId = | |||
// thisApp.listUserFolders[thisApp.nowFolderIndex].id; // 设置当前打开工作文件夹ID | |||
// thisApp.nowFolderName = | |||
// thisApp.listUserFolders[thisApp.nowFolderIndex].folderName; // 设置当前工作名称 | |||
// var folderPerm = | |||
// thisApp.listUserFolders[thisApp.nowFolderIndex].folderPerm; | |||
const isCommonFolder = currentFolder.folderName === '公共文件夹'; | |||
if(isCommonFolder) { | |||
this.fileindex = 2; | |||
sessionStorage.comFolderId = | |||
thisApp.listUserFolders[thisApp.nowFolderIndex].folderID; | |||
sessionStorage.comFolderId = currentFolder.id; | |||
this.isCommonPage = true; | |||
this.$axios({ | |||
method: "get", | |||
url: encodeURI( | |||
process.env.API_HOST + | |||
"archives" + | |||
"/all/" + | |||
thisApp.nowFolderId + | |||
"/" + | |||
sessionStorage.userId | |||
), | |||
}) | |||
.then((response) => { | |||
thisApp.folderFileList = response.data; | |||
if (this.currentPageType == 0) { | |||
// 加载我的文件 | |||
this.myFilesList = this.folderFileList.listMyFiles; | |||
//zxm+ 加载我的文件夹组 | |||
this.myListFolderGroups = this.folderFileList.listFolderGroups; | |||
} else { | |||
// 加载工作文件 | |||
this.myFilesList = this.folderFileList.listOtherFiles; | |||
//zxm+ 加载工作文件夹组 | |||
this.myListFolderGroups = this.folderFileList.listOtherFolderGroups; | |||
} | |||
thisApp.loadCommitedComFiles(); | |||
}) | |||
.catch((error) => { | |||
console.log(error); | |||
}); | |||
} else if (this.fileindex == 2) { this.fileindex = 0; } | |||
const res = await services.fetchFolderFileList(currentFolder.id, userId); | |||
if(res.Code !== 0) return; | |||
const folderResInfo = (res.Data || {}); | |||
const folderFileList = this.folderFileList = { | |||
listAllFiles:null, | |||
listBreadFolderGroups: null, | |||
listFolderGroups: folderResInfo.folder, | |||
// 我的文件 | |||
listMyFiles: folderResInfo.myFile, | |||
// 工作文件 | |||
listOtherFiles: folderResInfo.workFile, | |||
listOtherFolderGroups: null, | |||
} | |||
if (this.currentPageType == 0) { | |||
// 加载我的文件 | |||
this.myFilesList = this.folderFileList.listMyFiles; | |||
// 加载我的文件夹 zxm+ | |||
this.myListFolderGroups = this.folderFileList.listFolderGroups; | |||
} else { | |||
// 加载工作文件 | |||
this.myFilesList = this.folderFileList.listOtherFiles; | |||
// 加载工作文件分组 zxm+ | |||
this.myListFolderGroups = this.folderFileList.listOtherFolderGroups; | |||
} | |||
if(isCommonFolder) { | |||
this.loadCommitedComFiles(); | |||
} else { | |||
if (this.fileindex == 2) { | |||
this.fileindex = 0; | |||
if (this.curactive == 0) { | |||
this.listCollaborationFiles(); | |||
} else if (this.curactive == 1) { | |||
this.loadListCommonFiles(); | |||
} | |||
this.$axios({ | |||
method: "get", | |||
url: encodeURI( | |||
process.env.API_HOST + | |||
"archives" + | |||
"/all/" + | |||
thisApp.nowFolderId + | |||
"/" + | |||
sessionStorage.userId | |||
), | |||
}) | |||
.then((response) => { | |||
thisApp.folderFileList = response.data; | |||
if (this.currentPageType == 0) { | |||
// 加载我的文件 | |||
thisApp.myFilesList = thisApp.folderFileList.listMyFiles; | |||
// 加载我的文件夹 zxm+ | |||
thisApp.myListFolderGroups = | |||
thisApp.folderFileList.listFolderGroups; | |||
} else { | |||
// 加载工作文件 | |||
thisApp.myFilesList = thisApp.folderFileList.listOtherFiles; | |||
// 加载工作文件分组 zxm+ | |||
thisApp.myListFolderGroups = | |||
thisApp.folderFileList.listOtherFolderGroups; | |||
} | |||
if (thisApp.curactive == 0) { | |||
thisApp.listCollaborationFiles(); | |||
} else if (thisApp.curactive == 1) { | |||
thisApp.loadListCommonFiles(); | |||
} | |||
}) | |||
.catch((error) => { | |||
console.log(error); | |||
}); | |||
} | |||
// debugger; | |||
// if (currentFolder.folderName == "公共文件夹") { | |||
// this.fileindex = 2; | |||
// sessionStorage.comFolderId = currentFolder.id; | |||
// this.isCommonPage = true; | |||
// this.$axios({ | |||
// method: "get", | |||
// url: encodeURI( | |||
// process.env.API_HOST + | |||
// "archives" + | |||
// "/all/" + | |||
// this.nowFolderId + | |||
// "/" + | |||
// sessionStorage.userId | |||
// ), | |||
// }) | |||
// .then((response) => { | |||
// this.folderFileList = response.data; | |||
// if (this.currentPageType == 0) { | |||
// // 加载我的文件 | |||
// this.myFilesList = this.folderFileList.listMyFiles; | |||
// //zxm+ 加载我的文件夹组 | |||
// this.myListFolderGroups = this.folderFileList.listFolderGroups; | |||
// } else { | |||
// // 加载工作文件 | |||
// this.myFilesList = this.folderFileList.listOtherFiles; | |||
// //zxm+ 加载工作文件夹组 | |||
// this.myListFolderGroups = this.folderFileList.listOtherFolderGroups; | |||
// } | |||
// this.loadCommitedComFiles(); | |||
// }) | |||
// .catch((error) => { | |||
// console.log(error); | |||
// }); | |||
// } else { | |||
// if (this.fileindex == 2) { this.fileindex = 0; } | |||
// this.$axios({ | |||
// method: "get", | |||
// url: encodeURI( | |||
// process.env.API_HOST + | |||
// "archives" + | |||
// "/all/" + | |||
// this.nowFolderId + | |||
// "/" + | |||
// sessionStorage.userId | |||
// ), | |||
// }) | |||
// .then((response) => { | |||
// this.folderFileList = response.data; | |||
// if (this.currentPageType == 0) { | |||
// // 加载我的文件 | |||
// this.myFilesList = this.folderFileList.listMyFiles; | |||
// // 加载我的文件夹 zxm+ | |||
// this.myListFolderGroups = this.folderFileList.listFolderGroups; | |||
// } else { | |||
// // 加载工作文件 | |||
// this.myFilesList = this.folderFileList.listOtherFiles; | |||
// // 加载工作文件分组 zxm+ | |||
// this.myListFolderGroups = this.folderFileList.listOtherFolderGroups; | |||
// } | |||
// if (this.curactive == 0) { | |||
// this.listCollaborationFiles(); | |||
// } else if (this.curactive == 1) { | |||
// this.loadListCommonFiles(); | |||
// } | |||
// }) | |||
// .catch((error) => { | |||
// console.log(error); | |||
// }); | |||
// } | |||
}, | |||
/** | |||
* 获取协作文件 | |||
@@ -6366,7 +6415,7 @@ export default { | |||
folderGroupID: "", | |||
folderID: "", | |||
superID: "", | |||
levelID: "", | |||
levelId: "", | |||
folderGroupName: "", | |||
childCount: 0, | |||
createUserID: "", | |||
@@ -6395,9 +6444,10 @@ export default { | |||
} | |||
this.folderGroupData.folderGroupID = this.dbClickSelectedFolderGroupData.folderGroupID; | |||
this.folderGroupData.superID = this.dbClickSelectedFolderGroupData.folderGroupID; | |||
this.folderGroupData.levelID = this.dbClickSelectedFolderGroupData.levelID; | |||
this.folderGroupData.levelId = this.dbClickSelectedFolderGroupData.levelId; | |||
this.folderGroupData.folderID = this.nowFolder.folderID; | |||
this.folderGroupData.createUserID = sessionStorage.userId; | |||
// debugger; | |||
this.$axios({ | |||
method: "post", | |||
url: encodeURI(process.env.API_HOST + "folders/foldergroup"), | |||
@@ -6455,7 +6505,7 @@ export default { | |||
var param = { | |||
folderId: foldergroup.folderID, | |||
foldergroupId: foldergroup.folderGroupID, | |||
levelID: foldergroup.levelID, | |||
levelId: foldergroup.levelId, | |||
userId: sessionStorage.userId, | |||
}; | |||
this.$axios({ | |||
@@ -30,8 +30,7 @@ module.exports = { | |||
proxy: { | |||
'/api/pms': { | |||
// target: 'http://47.104.91.134:8089', | |||
target:'http://10.240.32.176:8089', | |||
target:'http://10.240.32.182:8089', | |||
changeOrigin: true, | |||
secure: false, | |||
}, | |||