Kaynağa Gözat

完成查看版本和编辑版本的功能

dev
kim131 4 yıl önce
ebeveyn
işleme
d44ffb9bca
3 değiştirilmiş dosya ile 90 ekleme ve 32 silme
  1. +20
    -9
      src/views/main_web/workspace/components/file-milestone.vue
  2. +67
    -22
      src/views/main_web/workspace/components/version-item.vue
  3. +3
    -1
      src/views/main_web/workspace/workspace.new.vue

+ 20
- 9
src/views/main_web/workspace/components/file-milestone.vue Dosyayı Görüntüle

@@ -48,18 +48,23 @@
<div class="yiyun_app_itemClasss">
<!-- 当前版本 -->
<version-item
:localWorkspacePrefix="localWorkspacePrefix"
nowVersion
:file="fileNowVersion"
:commitInfo="fileNowVersion"
@makeCopy="onMakeCopy"
@openFile="openFile"
:file="file"
></version-item>
<!-- 分割线 -->
<div class="title">里程碑</div>
<!-- 里程碑版本 -->
<version-item
v-for="(fileInfo, index) in fileOtherVersion"
:key ="fileInfo.currentHash"
:file="fileInfo"
<version-item
:localWorkspacePrefix="localWorkspacePrefix"
v-for="commitInfo in fileOtherVersion"
:key ="commitInfo.currentHash"
:commitInfo="commitInfo"
:fileId ="file.id"
:file="file"
@makeCopy="onMakeCopy"
>
</version-item>
@@ -100,11 +105,13 @@
<div class="pxline"></div>
<div class="flex_right_pain_body" ref="milestoneCheckRef">
<div class="yiyun_app_itemClasss">
<version-item
v-for="(fileInfo, index) in fileHistoryList"
:key ="fileInfo.currentHash"
:file="fileInfo"
<version-item
:localWorkspacePrefix="localWorkspacePrefix"
v-for="commitInfo in fileHistoryList"
:key ="commitInfo.currentHash"
:commitInfo="commitInfo"
:fileId ="file.id"
:file="file"
@makeCopy="onMakeCopy"
>
</version-item>
@@ -125,6 +132,7 @@ export default {
VersionItem
},
props: {
localWorkspacePrefix: String,
fileMilestoneInfo :{
type : Object,
default: () => ({}),
@@ -192,6 +200,9 @@ export default {
};
},
methods: {
openFile(){
this.$emit('openFile', this.file);
},
onMakeCopy(commitInfo){
console.log('asdasda:', commitInfo, this.fileMilestoneInfo, this.file);
const newFile = cloneDeep(this.file);


+ 67
- 22
src/views/main_web/workspace/components/version-item.vue Dosyayı Görüntüle

@@ -17,7 +17,7 @@
<p>里程碑</p>
<div class="switch_btn">
<el-switch
v-model="file.milestone"
v-model="commitInfo.milestone"
@change="setMileStoneClick"
active-color="#7850FF"
inactive-color="#fff">
@@ -29,14 +29,14 @@
<div class="file_info">
<ul>
<li><span>提交人:</span><span class="left" style="color:#2869E6">{{showAccountName}}</span></li>
<li><span>基于版本:</span><span class="left">{{file.creator}} 提交的版本{{file.version}}</span></li>
<li><span>基于版本:</span><span class="left">{{commitInfo.creator}} 提交的版本{{commitInfo.version}}</span></li>
<li><span>协同于:</span><span class="left">{{showTime}}</span></li>
</ul>
<div class="btn_box">
<div class="btn" v-if="!nowVersion">
<div class="btn" v-if="!nowVersion" @click.stop="showHistoryFile">
查看版本
</div>
<div class="edit_btn btn" v-if="nowVersion">
<div class="edit_btn btn" v-if="nowVersion" @click.stop="editCurrentFile">
继续编辑
</div>
<div class="set_btn btn" v-if="!nowVersion" @click.stop="setShare">
@@ -59,7 +59,7 @@
<div :class="{myremarks_content:!isShowAll}"
ref="remarksText"
>
{{file.note ? file.note : "无备注" }}
{{commitInfo.note ? commitInfo.note : "无备注" }}
</div>
</div>
</div>
@@ -82,12 +82,12 @@
<!-- 版本信息简略 -->
<div class="version_item_brief" v-if="!selectedVersion && !nowVersion" @click.stop="clickVersion">
<div class="header">
<p>版本{{file.version}}</p>
<p>版本{{commitInfo.version}}</p>
<p class="header_time">{{showTime}}</p>
</div>
<div class="remarks_brief">
<div class="icon_box"><span class="iconfont icon-lichengbei-qizhi"></span></div>
<div class="remarks_brief_content" :class="{noremarks:true}">{{file.note ? file.note: "无备注"}}</div>
<div class="remarks_brief_content" :class="{noremarks:true}">{{commitInfo.note ? commitInfo.note: "无备注"}}</div>
<div class="remarks_icon">
<i class="iconfont icon-beizhu"></i>
</div>
@@ -103,19 +103,26 @@ import moment from 'dayjs';
import 'dayjs/locale/zh-cn';
moment.locale('zh-cn');
import {setShareFile} from '../service'
import system from '@/services/system';

export default {
props:{
nowVersion:Boolean,
// selectedVersion:Boolean,
// flagcolor: {
// type:String,
// default:'#7850FF'
// }
file :{
type:Object,
default: ()=>({})
},
fileId : String
localWorkspacePrefix:String,
nowVersion:Boolean,
// selectedVersion:Boolean,
// flagcolor: {
// type:String,
// default:'#7850FF'
// }
commitInfo :{
type:Object,
default: ()=>({})
},
file :{
type:Object,
default: ()=>({})
},
fileId : String
},
mounted() {
this.remarkEl = this.$refs.remarksText;
@@ -144,6 +151,41 @@ export default {
},

methods:{
showHistoryFile() {
// 历史版本查看
const { file, commitInfo } = this;
const { archName: fileName, extension, relativePath } = file;
const { currentHash: ipfsCid, version } = commitInfo;
const extensionedFileName = `${fileName}-版本${version}${extension ? `.${extension}`:''}`;
const dirName = `历史版本查看\\${new Date().getTime()}${relativePath ? '\\relativePath' : ''}`.replace(/\//g, '\\');

const errorHandler = () => {
// this.removeFileLoadingState(file.id);
}
const fullFilePath = `${this.localWorkspacePrefix}\\${dirName}\\${extensionedFileName}`;
system.downloadFile(ipfsCid, sessionStorage.projName, extensionedFileName, dirName, (resMessage, socketIns) => {
console.log('receive download file message:', resMessage, socketIns);
// {"size":"11","currentSize":"11","unit":"B","process":100,"hash":""}
try {
const { process, hash } = JSON.parse(resMessage.data);
// this.updateFileLoadState(file, DOWNLOADING, process);
if(process !== 100) return;
system.openFile(fullFilePath);
// this.removeFileLoadingState(file.id);
// this.$notify({
// type:["success","download"],
// title:"文件已下载",
// message:`${fileName}`
// })
socketIns.close();
// this.$forceUpdate();
} catch (e) {
console.error('socket-download-file parse data have error:', e);
errorHandler();
socketIns.close();
}
}, errorHandler);
},
onMakeCopy(){
this.$emit('makeCopy', this.file);
},
@@ -187,8 +229,11 @@ export default {
closeSetColor(){
this.toolboxShow = false;
},
editCurrentFile() {
this.$emit('openFile');
},
async setShare() {
const res = await setShareFile (this.fileId,this.file.currentHash,sessionStorage.userId);
const res = await setShareFile (this.fileId,this.commitInfo.currentHash,sessionStorage.userId);
if(res.Code == 0) {
this.$notify({
type:'success',
@@ -203,16 +248,16 @@ export default {

},
setMileStoneClick(val) {
this.$bus.$emit('setMileStoneClick', val, this.file);
this.$bus.$emit('setMileStoneClick', val, this.commitInfo);
}
},

computed: {
showAccountName() {
return this.file.creator && sessionStorage.accountName == this.file.creator ? '我': this.file.creator;
return this.commitInfo.creator && sessionStorage.accountName == this.commitInfo.creator ? '我': this.commitInfo.creator;
},
showTime() {
return this.file.createTime && moment(this.file.createTime*1000).format('YYYY年MM月DD日 A HH:mm');
return this.commitInfo.createTime && moment(this.commitInfo.createTime*1000).format('YYYY年MM月DD日 A HH:mm');
}
},



+ 3
- 1
src/views/main_web/workspace/workspace.new.vue Dosyayı Görüntüle

@@ -487,6 +487,8 @@
:fileMilestoneInfo="fileMilestoneInfo"
@closeMilestonePain="closeMilestonePain"
@makeCopy="copyWorkFileBtnClick"
@openFile="fileClick"
:localWorkspacePrefix="localWorkspacePrefix"
:fileHistoryList ="fileHistoryList"
:file = "currentFile"
>
@@ -2015,7 +2017,7 @@ export default {
file.modifyUserId = sessionStorage.userId;
system.openFile(filePath);
this.fetchFolderFiles();
// this.fetchFolderFiles();
},
/**
* 设置历史文件界面


Yükleniyor…
İptal
Kaydet