386 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
		
		
			
		
	
	
			386 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
|   | <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> |