vue-apps/com.actionsoft.apps.coe.pal/views/repository/RepositoryInfoVersion.vue
shangxiaoran@qq.com 9d8f9f0e92 初始化应用
2022-06-28 01:29:37 +08:00

386 lines
13 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<el-container>
<div id="repositoryInfoVersion" style="height: 500px;width: 100%;">
<el-table
v-if="tableData.length > 0"
id="table"
:data="tableData"
header-cell-class-name="header-cell-row"
height="500px"
style="width: 100%">
<el-table-column
prop="versionNo"
label="版本号"
align="center"
width="70">
</el-table-column>
<el-table-column
prop="name"
label="文件名称"
min-width="180">
</el-table-column>
<el-table-column
prop="address"
align="center"
label="创建信息"
min-width="160">
<template slot-scope="scope">
{{scope.row.createUser}}/{{scope.row.createDate}}
</template>
</el-table-column>
<template v-if="!isCorrelatebpms">
<el-table-column
prop="state"
label="状态"
align="center"
width="80">
<span slot-scope="scope" :style="{'color': scope.row.stateColor}">
{{scope.row.state}}
</span>
</el-table-column>
</template>
<template v-else>
<el-table-column
prop="state"
label="PAL状态"
align="center"
width="80">
<span slot-scope="scope" :style="{'color': scope.row.stateColor}">
{{scope.row.state}}
</span>
</el-table-column>
<template v-if="isPalManage">
<el-table-column
prop="state"
label="在BPM运行"
align="center"
width="100">
<span slot-scope="scope">
{{(scope.row.isCorrelate ? "是" : "否")}}
</span>
</el-table-column>
</template>
<template v-else>
<el-table-column
prop="state"
label="BPM状态"
align="center"
width="80">
<span slot-scope="scope" :style="{'color': scope.row.bpmStateColor}">
{{scope.row.bpmState}}
</span>
</el-table-column>
</template>
</template>
<el-table-column
v-if="havingVersionManagePerm && tableData.length > 1"
prop="name"
label="使用"
align="center"
width="80">
<template slot-scope="scope">
<el-switch
style="display: block"
v-model="scope.row.isUse"
active-color="#4E7FF9"
inactive-color="#E2E2E2"
@change="changeRepositoryUseStatus(scope.row.id, scope.row.isUse)">
</el-switch>
</template>
</el-table-column>
<el-table-column
prop="address"
align="center"
label="操作">
<template slot-scope="scope">
<!-- <el-tooltip content="以当前版本为模版创建新版本文件" placement="bottom" hide-after="3000">-->
<i v-if="havingWritePerm" class="iconfont icon-fuzhi operate-icon-display" style="cursor: pointer;" @click="createNewVersion(scope.row.id, scope.row.versionNo)"></i>
<!-- </el-tooltip>-->
<i v-if="havingRemovePerm && !isCorrelatebpms && !scope.row.isUse && !scope.row.isPublish && !scope.row.isApproval" class="iconfont icon-lajitong1 operate-icon-display" style="cursor: pointer;padding-left: 5px;" @click="deleteRepository(scope.row.id, scope.row.versionNo)"></i>
</template>
</el-table-column>
</el-table>
</div>
<el-dialog
id="addNewVersionDialog"
title="提示"
width="500px"
:visible.sync="addNewVersionVisible"
top="45vh"
:modal-append-to-body=true
:close-on-click-modal=false
:append-to-body=true
destroy-on-close
>
<span>请选择以{{ currentVersion }}版本为模板创建的新文件版本号:</span></br>
<el-radio-group style="margin-top: 10px" v-model="isLargeIteration">
<el-radio :label=true>大版本</el-radio></br>
<el-radio style="margin-top: 5px" :label=false>小版本</el-radio>
</el-radio-group>
<span slot="footer">
<awsui-button class="button-general-color" type="primary" @click="confirmAddVersion">确定</awsui-button>
<awsui-button @click="cancelAddVersion">取消</awsui-button>
</span>
</el-dialog>
</el-container>
</template>
<script>
import awsuiAxios from "../../awsuiAxios";
export default {
name: "RepositoryInfoVersion",
props: {
id: {
type: String,
default: ''
},
versionId: {
type: String,
default: ''
},
repositoryRefresh: {
type: Function,
default: null
}
},
data() {
return {
userId: '',// 使用版本的id
tableData: [],
isCorrelatebpms: false,
processDefId: '',
isPalManage: false, // 以PAL为管理中心管控BPM流程
havingWritePerm: false,
havingRemovePerm: false,
havingVersionManagePerm: false,
addNewVersionVisible: false,
currentVersion: '',
currentId: '',
isLargeIteration: true
}
},
created() {
this.userId = this.id;
this.initData();
},
methods: {
initData() {
const that = this;
const data = {
url:'jd',
data:{
cmd: 'com.actionsoft.apps.coe.pal_pl_repository_designer_version_manager_data',
id: that.userId,
wsId: that.$store.getters.getWsIdFn,
teamId: that.$store.getters.getTeamIdFn
}
};
// 查询数据
awsuiAxios.post(data).then(function (ro) {
if(ro.result == 'ok') {
that.isCorrelatebpms = ro.data.isCorrelatebpms;
that.processDefId = ro.data.processDefId;
that.isPalManage = ro.data.isPalManage;
that.havingWritePerm = ro.data.havingWritePerm;
that.havingRemovePerm = ro.data.havingRemovePerm;
that.havingVersionManagePerm = ro.data.havingVersionManagePerm;
for (let i = 0; i < ro.data.tableData.length; i++) {
if (ro.data.tableData[i].isApproval) {
ro.data.tableData[i].stateColor = '#1AA477';
ro.data.tableData[i].state = '审批中';
ro.data.tableData[i].stateCode = 'approval';
} else if (ro.data.tableData[i].isStop) {
ro.data.tableData[i].stateColor = '#D9001B';
ro.data.tableData[i].state = '已停用';
ro.data.tableData[i].stateCode = 'stop';
} else if (ro.data.tableData[i].isPublish) {
ro.data.tableData[i].stateColor = '#1AA477';
ro.data.tableData[i].state = '已发布';
ro.data.tableData[i].stateCode = 'publish';
} else if (ro.data.tableData[i].isUse) {
ro.data.tableData[i].stateColor = '#4E7FF9';
ro.data.tableData[i].state = '设计中';
ro.data.tableData[i].stateCode = 'use';
} else {
ro.data.tableData[i].stateColor = '';
ro.data.tableData[i].state = '设计';
ro.data.tableData[i].stateCode = 'designer';
}
}
that.tableData = ro.data.tableData;
} else {
that.$message.error(ro.msg);
}
}).catch(error=>{
console.log(error);
})
},
changeRepositoryUseStatus(id, isUse) {// 使用中状态变更
const that = this;
if (isUse) {// 由未使用变更为使用中,重新刷新数据即可
// 变更使用状态axiox请求成功后刷新父页面树和右侧
let oldId;
for (var currRowData in that.tableData) {
if (that.tableData[currRowData].isUse && that.tableData[currRowData].id != id) {
oldId = that.tableData[currRowData].id;
break;
}
}
// 全局遮罩
const loading = that.$loading({
lock: true,
text: '正在切换更新版本...',
spinner: 'el-icon-loading',
background: 'hsla(0,0%,100%,.9)'
});
const data = {
url:'jd',
data:{
cmd: 'com.actionsoft.apps.coe.pal_pl_repository_designer_version_manager_use',
id: id,
wsId: that.$store.getters.getWsIdFn,
teamId: that.$store.getters.getTeamIdFn
}
};
// 查询数据
awsuiAxios.post(data).then(function (ro) {
if(ro.result == 'ok') {
that.$message({
message: '切换成功',
type: 'success'
});
that.userId = ro.data.id;
that.initData();
loading.close();
// 更新父页面的当前使用模型文件
if (that.repositoryRefresh && oldId) {
that.repositoryRefresh(oldId);
}
} else {
loading.close();
that.$message(ro.msg);
}
}).catch(error=>{
console.log(error);
})
} else {// 由使用中变更为非使用中,必须有一个为使用中
for (var currRowData in that.tableData) {
if (that.tableData[currRowData].id == id) {
that.tableData[currRowData].isUse = true;
}
}
}
},
createNewVersion(id, versionNo) {// 复制/创建新版本
this.addNewVersionVisible = true
this.currentVersion = versionNo
this.currentId = id
},
confirmAddVersion() {
// 全局遮罩
const loading = this.$loading({
lock: true,
text: '正在创建新版本...',
spinner: 'el-icon-loading',
background: 'hsla(0,0%,100%,.9)'
});
const data = {
url:'jd',
data:{
cmd: 'com.actionsoft.apps.coe.pal_pl_repository_designer_version_manager_create',
id: this.currentId,
wsId: this.$store.getters.getWsIdFn,
teamId: this.$store.getters.getTeamIdFn,
isLargeIteration: this.isLargeIteration
}
};
// 查询数据
awsuiAxios.post(data).then(ro => {
if(ro.result == 'ok') {
this.$message({
message: '创建成功',
type: 'success'
});
this.initData();
loading.close();
this.isLargeIteration = true
this.addNewVersionVisible = false
} else {
loading.close();
this.$message(ro.msg);
}
}).catch(error=>{
console.log(error);
})
},
cancelAddVersion() {
this.isLargeIteration = true
this.addNewVersionVisible = false
},
deleteRepository(id, versionNo) {// 删除
const that = this;
that.$confirm('确定要删除吗?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'button-general-color',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// 全局遮罩
const loading = that.$loading({
lock: true,
text: '正在放入回收站...',
spinner: 'el-icon-loading',
background: 'hsla(0,0%,100%,.9)'
});
const data = {
url:'jd',
data:{
cmd: 'com.actionsoft.apps.coe.pal_pl_repository_designer_version_manager_delete',
id: id,
wsId: that.$store.getters.getWsIdFn,
teamId: that.$store.getters.getTeamIdFn
}
};
// 查询数据
awsuiAxios.post(data).then(function (ro) {
if(ro.result == 'ok') {
that.$message({
message: '已放入回收站',
type: 'success'
});
that.initData();
loading.close();
} else {
loading.close();
that.$message(ro.msg);
}
}).catch(error=>{
console.log(error);
})
}).catch(() => {
});
}
}
}
</script>
<style scoped>
#table >>> .header-cell-row {
background-color: #F2F2F2 !important;
}
#table >>> .el-table__row .operate-icon-display{
display: none;
}
#table >>> .el-table__row:hover .operate-icon-display{
display: inline-block;
}
#addNewVersionDialog >>> .el-dialog__body {
padding: 10px 20px;
color: #606266;
font-size: 14px;
word-break: break-all;
cursor: pointer;
}
</style>