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

filter scripts by work dir

上级 6d5ff6d7
......@@ -38,6 +38,7 @@ func (c *ZentaoCtrl) GetProfile(ctx iris.Context) {
func (c *ZentaoCtrl) ListSiteAndProductWithScripts(ctx iris.Context) {
currSiteId, _ := ctx.URLParamInt("currSiteId")
currProductId, _ := ctx.URLParamInt("currProductId")
workspaceId, _ := ctx.URLParamInt("workspaceId")
needLoadScript, _ := ctx.URLParamBool("needLoadScript")
sites, currSite, _ := c.SiteService.LoadSites(currSiteId)
......@@ -47,7 +48,7 @@ func (c *ZentaoCtrl) ListSiteAndProductWithScripts(ctx iris.Context) {
"currSite": currSite, "currProduct": currProduct}
if needLoadScript {
testScripts, _ := c.TestScriptService.LoadTestScriptsBySiteProduct(currSite, currProduct)
testScripts, _ := c.TestScriptService.LoadTestScriptsBySiteProduct(currSite, currProduct, workspaceId)
data["testScripts"] = testScripts
}
......
......@@ -23,7 +23,7 @@ func (m *ZentaoModule) Party() module.WebModule {
index.Get("/listLang", m.ZentaoCtrl.ListLang).Name = "脚本语言列表"
index.Get("/getProfile", m.ZentaoCtrl.GetProfile).Name = "脚本语言列表"
index.Get("/listSiteAndProduct", m.ZentaoCtrl.ListSiteAndProductWithScripts).Name = "获取禅道站点及其下产品"
index.Get("/listSiteAndProductWithScripts", m.ZentaoCtrl.ListSiteAndProductWithScripts).Name = "获取禅道站点及其下产品"
index.Get("/listProduct", m.ZentaoCtrl.ListProduct).Name = "产品列表"
index.Get("/listModule", m.ZentaoCtrl.ListModule).Name = "模块列表"
......
......@@ -17,14 +17,18 @@ func NewTestScriptService() *TestScriptService {
return &TestScriptService{}
}
func (s *TestScriptService) LoadTestScriptsBySiteProduct(site serverDomain.ZentaoSite, product serverDomain.ZentaoProduct) (
root serverDomain.TestAsset, err error) {
func (s *TestScriptService) LoadTestScriptsBySiteProduct(
site serverDomain.ZentaoSite, product serverDomain.ZentaoProduct, workspaceId int) (root serverDomain.TestAsset, err error) {
workspaces, _ := s.WorkspaceRepo.ListWorkspacesByProduct(site.Id, product.Id)
root = serverDomain.TestAsset{Path: "", Title: "测试脚本", Type: commConsts.Root, Slots: iris.Map{"icon": "icon"}}
for _, workspace := range workspaces {
if workspace.Type == commConsts.ZTF {
if workspaceId > 0 && uint(workspaceId) != workspace.ID {
continue
}
scriptsInDir, _ := scriptUtils.LoadScriptTree(workspace.Path)
root.Children = append(root.Children, &scriptsInDir)
......
......@@ -22,7 +22,7 @@ const routes: RoutesDataItem[] = [
{
title: 'empty',
path: '/',
redirect: '/script/list',
redirect: '/script/index',
component: IndexLayout,
children: IndexLayoutRoutes
},
......
......@@ -74,7 +74,7 @@ export default defineComponent({
const { t } = useI18n();
const router = useRouter();
const needLoadScript = router.currentRoute.value.path === '/script/index'
const needLoadScript = false // router.currentRoute.value.path === '/script/index'
const store = useStore<{ zentao: ZentaoData }>();
......@@ -84,7 +84,7 @@ export default defineComponent({
const currSite = computed<any>(() => store.state.zentao.currSite);
const currProduct = computed<any>(() => store.state.zentao.currProduct);
store.dispatch('zentao/fetchSitesAndProducts', {needLoadScript: needLoadScript})
store.dispatch('zentao/fetchSitesAndProductWithScripts', {needLoadScript: needLoadScript})
onMounted(() => {
console.log('onMounted')
......@@ -92,11 +92,11 @@ export default defineComponent({
const selectSite = (site): void => {
console.log('selectSite', site)
store.dispatch('zentao/fetchSitesAndProducts', {currSiteId: site.id, needLoadScript: true})
store.dispatch('zentao/fetchSitesAndProductWithScripts', {currSiteId: site.id, needLoadScript: true})
}
const selectProduct = (product): void => {
console.log('selectProduct', product)
store.dispatch('zentao/fetchSitesAndProducts', {currProductId: product.id, needLoadScript: true})
store.dispatch('zentao/fetchSitesAndProductWithScripts', {currProductId: product.id, needLoadScript: true})
}
return {
......
......@@ -23,7 +23,7 @@ export async function getProfile(): Promise<any> {
export async function querySiteAndProduct(params): Promise<any> {
return request({
url: `/${apiPath}/listSiteAndProduct`,
url: `/${apiPath}/listSiteAndProductWithScripts`,
method: 'get',
params,
});
......
......@@ -32,7 +32,7 @@ export interface ModuleType extends StoreModuleType<ZentaoData> {
saveProfile: Mutation<any>;
saveSitesAndProducts: Mutation<any>;
saveSitesAndProductWithScripts: Mutation<any>;
saveProducts: Mutation<any>;
saveModules: Mutation<any>;
saveSuites: Mutation<any>;
......@@ -42,7 +42,7 @@ export interface ModuleType extends StoreModuleType<ZentaoData> {
fetchLangs: Action<ZentaoData, ZentaoData>;
getProfile: Action<ZentaoData, ZentaoData>;
fetchSitesAndProducts: Action<ZentaoData, ZentaoData>;
fetchSitesAndProductWithScripts: Action<ZentaoData, ZentaoData>;
fetchProducts: Action<ZentaoData, ZentaoData>;
fetchModules: Action<ZentaoData, ZentaoData>;
fetchSuites: Action<ZentaoData, ZentaoData>;
......@@ -84,7 +84,7 @@ const StoreModel: ModuleType = {
console.log('payload', payload)
state.profile = payload
},
async saveSitesAndProducts(state, payload) {
async saveSitesAndProductWithScripts(state, payload) {
state.sites = payload.sites;
state.products = payload.products;
state.scriptLoaded = payload.needLoadScript
......@@ -148,13 +148,13 @@ const StoreModel: ModuleType = {
}
},
async fetchSitesAndProducts({ commit }, payload) {
async fetchSitesAndProductWithScripts({ commit }, payload) {
const response: ResponseData = await querySiteAndProduct(payload);
const { data } = response;
data.needLoadScript = payload.needLoadScript
commit('saveSitesAndProducts', data)
commit('saveSitesAndProductWithScripts', data)
return true;
},
......
......@@ -56,4 +56,4 @@ export const retrieveExpandedKeys = async () => {
console.log('retrieveExpandedKeys')
const keys = await getCache(settings.expandedKeys);
return [...keys]
}
}
\ No newline at end of file
<template>
<div class="indexlayout-main-conent">
<div class="script-main">
<div id="main">
<div id="left">
<div class="toolbar">
......@@ -63,9 +63,9 @@
<div id="content">
<div class="toolbar">
<a-button @click="extract" type="primary">{{ t('extract_step') }}</a-button>
<a-button @click="extract" type="primary" size="small">{{ t('extract_step') }}</a-button>
</div>
<div class="panel">
<div class="editor-panel">
<MonacoEditor
v-if="scriptCode !== ''"
class="editor"
......@@ -150,7 +150,7 @@ export default defineComponent({
watch(treeData, (currConfig) => {
console.log('watch treeData', treeData.value)
retrieveExpandedKeys().then(async keys => {
console.log('keys', keys, expandedKeys.value)
console.log('keys')
if (keys) expandedKeys.value = keys
if (!expandedKeys.value || expandedKeys.value.length === 0) {
......@@ -160,11 +160,6 @@ export default defineComponent({
})
}, {deep: true})
console.log(`treeData loaded ${scriptLoaded.value}`, treeData.value.length)
if (!scriptLoaded.value) { // switch to current page
zentaoStore.dispatch('zentao/fetchSitesAndProducts', {needLoadScript: true})
}
let filerItems = ref([] as any)
const filerType = ref('')
const filerValue = ref('')
......@@ -173,20 +168,36 @@ export default defineComponent({
const filter = await getScriptFilters()
filerType.value = filter.by
filerValue.value = filter.val
listFilterItems(filerType.value).then((data) => {
filerItems.value = data.data
})
const result = await listFilterItems(filerType.value)
filerItems.value = result.data
}
const loadScripts = async () => {
console.log('----------------- filerType.value', filerType.value)
const params = {needLoadScript: true} as any
if (filerType.value === 'workspace') params.workspaceId = filerValue.value
zentaoStore.dispatch('zentao/fetchSitesAndProductWithScripts', params)
}
loadFilterItems()
loadFilterItems().then(() => {
console.log(`treeData loaded ${scriptLoaded.value}`, treeData.value.length)
if (!scriptLoaded.value) { // switch to current page
loadScripts()
}
})
const selectFilerType = async (val) => {
console.log('selectFilerType', val)
await setScriptFilters(val, null)
await loadFilterItems()
await loadScripts()
}
const selectFilerValue = async (val) => {
console.log('selectFilerValue', val)
await setScriptFilters(filerType.value, val)
await loadScripts()
}
const expandedKeys = ref<string[]>([]);
......@@ -236,16 +247,16 @@ export default defineComponent({
}
const expandNode = (keys: string[], e: any) => {
console.log('expandNode', expandedKeys.value)
console.log('expandNode', keys)
cacheExpandedKeys(expandedKeys.value)
}
const expandAll = (e) => {
console.log('expandAll')
isExpand.value = !isExpand.value
expandedKeys.value = []
if (isExpand.value) getOpenKeys(treeData.value[0], true)
console.log('expandAll', expandedKeys.value)
cacheExpandedKeys(expandedKeys.value)
}
......@@ -297,14 +308,10 @@ export default defineComponent({
</script>
<style lang="less" scoped>
.indexlayout-main-conent {
.script-main {
margin: 0px;
height: 100%;
.panel {
padding: 20px;
}
#main {
display: flex;
height: 100%;
......@@ -363,12 +370,12 @@ export default defineComponent({
.toolbar {
padding: 5px 10px;
height: 46px;
height: 36px;
text-align: right;
}
.panel {
padding: 0 16px 0 12px;
.editor-panel {
padding: 0 6px 0 8px;
height: calc(100% - 46px);
overflow: auto;
}
......
......@@ -116,7 +116,7 @@ export default defineComponent({
.then(() => {
console.log(modelRef.value);
store.dispatch('Site/save', modelRef.value).then((success) => {
zentaoStore.dispatch('zentao/fetchSitesAndProducts').then((success) => {
zentaoStore.dispatch('zentao/fetchSitesAndProductWithScripts').then((success) => {
notification.success({ message: t('save_success') });
router.push(`/site/list`)
})
......
......@@ -201,7 +201,7 @@ export default defineComponent({
onOk: () => {
removeLoading.value = [id];
store.dispatch('Site/delete', id).then((success) => {
zentaoStore.dispatch('zentao/fetchSitesAndProducts').then((success) => {
zentaoStore.dispatch('zentao/fetchSitesAndProductWithScripts').then((success) => {
message.success(t('delete_success'));
getList(pagination.value.page)
removeLoading.value = [];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册