提交 ec514306 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

redirect if switch to an unittest project

上级 8ffd64bc
......@@ -21,12 +21,13 @@
<script lang="ts">
import {computed, ComputedRef, defineComponent, onMounted, Ref, ref, watch} from "vue";
import {useRouter} from "vue-router";
import {useStore} from "vuex";
import {ProjectData} from "@/store/project";
import ProjectCreateForm from "@/views/component/project/create.vue";
import {createProject} from "@/services/project";
import {addClass, removeClass} from "@/utils/dom";
import {addClass, hideMenu, removeClass} from "@/utils/dom";
interface RightTopProject {
projects: ComputedRef<any[]>;
......@@ -43,30 +44,30 @@ export default defineComponent({
name: 'RightTopProject',
components: {ProjectCreateForm},
setup(): RightTopProject {
const router = useRouter();
const store = useStore<{ project: ProjectData }>();
const projects = computed<any[]>(() => store.state.project.projects);
const currProject = computed<any>(() => store.state.project.currProject);
store.dispatch('project/fetchProject', '');
const hideMenu = () => {
const scriptMenu = document.getElementById('menu-script')
if (currProject.value.type === 'unit') addClass(scriptMenu, 't-hidden')
else removeClass(scriptMenu,'t-hidden')
const scriptSync = document.getElementById('menu-sync')
if (currProject.value.type === 'unit') addClass(scriptSync,'t-hidden')
else removeClass(scriptSync,'t-hidden')
const switchProject = (newProject) => {
const routerPath = router.currentRoute.value.path
if (routerPath.indexOf('/exec/history/') > -1
|| (newProject.type === 'unit' && (routerPath === '/sync' || routerPath === '/script/list'))) {
router.push(`/exec/history`) // will call hideMenu on this page
} else {
hideMenu(newProject)
}
}
watch(currProject,()=> {
console.log('watch currProject', currProject)
hideMenu()
watch(currProject, (newProject, oldVal)=> {
console.log('watch currProject', newProject.type)
switchProject(newProject)
}, {deep: true})
onMounted(() => {
console.log('onMounted')
hideMenu()
})
const selectProject = (value): void => {
......
......@@ -65,8 +65,6 @@ export function hasClass( elements, cName ){
return !!elements.className.match( new RegExp( "(\\s|^)" + cName + "(\\s|$)") )
}
export function addClass( elements, cName ){
console.log(elements)
if (!elements) return
if( !hasClass( elements,cName ) ){
elements.className += " " + cName
......@@ -82,4 +80,14 @@ export function removeClass( elements, cName ){
export function jsonStrDef(obj) {
const msg = JSON.stringify(obj)
return msg
}
export function hideMenu (newVal) {
const scriptMenu = document.getElementById('menu-script')
if (newVal.type === 'unit') addClass(scriptMenu, 't-hidden')
else removeClass(scriptMenu,'t-hidden')
const scriptSync = document.getElementById('menu-sync')
if (newVal.type === 'unit') addClass(scriptSync,'t-hidden')
else removeClass(scriptSync,'t-hidden')
}
\ No newline at end of file
......@@ -70,6 +70,7 @@ import {useRouter} from "vue-router";
import {momentTimeDef, percentDef} from "@/utils/datetime";
import {execByDef} from "@/utils/testing";
import {ProjectData} from "@/store/project";
import {hideMenu} from "@/utils/dom";
interface ListExecSetupData {
currProject: ComputedRef;
......@@ -157,11 +158,16 @@ export default defineComponent({
}
list();
watch(currProject,()=> {
console.log('watch currProject', currProject)
watch(currProject, (newProject, oldVal) => {
console.log('watch currProject', newProject)
list()
}, {deep: true})
onMounted(() => {
console.log('onMounted')
hideMenu(currProject.value) // jump from not available page for unittest
})
// 查看
const viewResult = (item) => {
router.push(`/exec/history/${item.testType}/${item.seq}`)
......
......@@ -8,6 +8,10 @@
<div class="opt">
<a-button @click="exec('all')" type="primary">重新执行所有用例</a-button>
<a-button @click="exec('fail')" type="primary">重新执行失败用例</a-button>
<a-button @click="submitResult()">提交结果到禅道</a-button>
<a-button @click="submitBug()">提交缺陷到禅道</a-button>
<a-button type="link" @click="() => back()">返回</a-button>
</div>
</template>
......@@ -103,6 +107,8 @@ interface DesignExecutionPageSetupData {
loading: Ref<boolean>;
exec: (scope) => void;
submitResult: () => void;
submitBug: () => void;
back: () => void;
execBy: (item) => string;
......@@ -173,6 +179,13 @@ export default defineComponent({
if (execBy === 'case') router.push(`/exec/run/${execBy}/${seq}/${scope}`)
else router.push(`/exec/run/${execBy}/${productId}/${execById}/${seq}/${scope}`)
}
const submitResult = ():void => {
console.log('submitResult')
}
const submitBug = ():void => {
console.log('submitBug')
}
const back = ():void => {
router.push(`/exec/history`)
}
......@@ -186,6 +199,8 @@ export default defineComponent({
columns,
loading,
exec,
submitResult,
submitBug,
back,
execBy,
......
......@@ -6,6 +6,8 @@
</template>
<template #extra>
<div class="opt">
<a-button @click="submitResult()">提交结果到禅道</a-button>
<a-button type="link" @click="() => back()">返回</a-button>
</div>
</template>
......@@ -96,6 +98,7 @@ interface DesignExecutionPageSetupData {
loading: Ref<boolean>;
exec: (scope) => void;
submitResult: () => void;
back: () => void;
visibleMap: Ref
......@@ -183,6 +186,10 @@ export default defineComponent({
else router.push(`/exec/run/${execBy}/${productId}/${execById}/${seq}/${scope}`)
}
const submitResult = ():void => {
console.log('submitResult')
}
const showInfo = (id):void => {
visibleMap[id] = true
}
......@@ -203,6 +210,7 @@ export default defineComponent({
columns,
loading,
exec,
submitResult,
back,
visibleMap,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册