revive 4 lat temu
rodzic
commit
a19797f8c0
13 zmienionych plików z 625 dodań i 528 usunięć
  1. +10
    -0
      src/components/img-lazy/index.vue
  2. +0
    -3
      src/filters/resolveAvator.js
  3. +8
    -0
      src/filters/resolveImg.js
  4. +4
    -1
      src/main.js
  5. +12
    -9
      src/utils/request.js
  6. +1
    -1
      src/views/components_web/newProj/newProj.vue
  7. +1
    -1
      src/views/components_web/projSetting/projSetting.vue
  8. +4
    -0
      src/views/demo/index.vue
  9. +47
    -47
      src/views/main_web/index/index.vue
  10. +320
    -322
      src/views/main_web/workspace/components/workLine.vue
  11. +25
    -0
      src/views/main_web/workspace/service.js
  12. +192
    -142
      src/views/main_web/workspace/workspace.vue
  13. +1
    -2
      vue.config.js

+ 10
- 0
src/components/img-lazy/index.vue Wyświetl plik

@@ -0,0 +1,10 @@
<template>
<img v-lazy="src" />
</template>
<script>
export default {
props: {
src: String
}
}
</script>

+ 0
- 3
src/filters/resolveAvator.js Wyświetl plik

@@ -1,3 +0,0 @@
import { getFileUrl } from '@/services/oss';

export default imgSrc => getFileUrl(imgSrc) || '/static/img/avator_default.svg';

+ 8
- 0
src/filters/resolveImg.js Wyświetl plik

@@ -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;
};

+ 4
- 1
src/main.js Wyświetl plik

@@ -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);

//右键菜单


+ 12
- 9
src/utils/request.js Wyświetl plik

@@ -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':


+ 1
- 1
src/views/components_web/newProj/newProj.vue Wyświetl plik

@@ -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({


+ 1
- 1
src/views/components_web/projSetting/projSetting.vue Wyświetl plik

@@ -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)


+ 4
- 0
src/views/demo/index.vue Wyświetl plik

@@ -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>



+ 47
- 47
src/views/main_web/index/index.vue Wyświetl plik

@@ -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);
// });
// },
/**
* 打开项目概况
*/


src/views/components_web/workLine/workLine.vue → src/views/main_web/workspace/components/workLine.vue Wyświetl plik

@@ -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>

+ 25
- 0
src/views/main_web/workspace/service.js Wyświetl plik

@@ -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;
}

+ 192
- 142
src/views/main_web/workspace/workspace.vue Wyświetl plik

@@ -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({


+ 1
- 2
vue.config.js Wyświetl plik

@@ -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,
},


Ładowanie…
Anuluj
Zapisz