fix(测试跟踪): 去掉功能用例列表保存按钮

--bug=1024630 --user=宋昌昌 【测试跟踪】测试用例点击“编辑”按钮进入无法修改,还得点击“编辑”按钮才能进行修改 #22902 https://www.tapd.cn/55049933/s/1352876
--bug=1024622 --user=宋昌昌 【测试跟踪】功能用例-编辑用例保存后-关联的用例不显示了 https://www.tapd.cn/55049933/s/1352877
This commit is contained in:
song-cc-rock 2023-03-20 14:50:19 +08:00 committed by 刘瑞斌
parent 0341b1c19b
commit 5da6dbe3e5
10 changed files with 159 additions and 80 deletions

View File

@ -421,7 +421,7 @@ export default {
review_rate: "评审率", review_rate: "评审率",
coverage: "覆盖率", coverage: "覆盖率",
function_case_count: "功能用例数", function_case_count: "功能用例数",
relevance_case_count: "关联用例的功能用例数", relevance_case_count: "关联用例的功能用例数",
serial_number: "序号", serial_number: "序号",
test_plan_name: "测试计划名称", test_plan_name: "测试计划名称",
case_size: "用例数", case_size: "用例数",

View File

@ -420,7 +420,7 @@ export default {
review_rate: "評審率", review_rate: "評審率",
coverage: "覆蓋率", coverage: "覆蓋率",
function_case_count: "功能用例數", function_case_count: "功能用例數",
relevance_case_count: "關聯用例的功能用例數", relevance_case_count: "關聯用例的功能用例數",
serial_number: "序號", serial_number: "序號",
test_plan_name: "測試計劃名稱", test_plan_name: "測試計劃名稱",
case_size: "用例數", case_size: "用例數",

View File

@ -180,14 +180,14 @@
<div class="title">{{ $t("case.added_to_public_case") }}</div> <div class="title">{{ $t("case.added_to_public_case") }}</div>
</div> </div>
<div class="split"></div> <div class="split"></div>
<div class="copy-row sub-opt-row" @click="copyRow" :style="!hasCopyPermission ? 'cursor: not-allowed' : 'cursor: default'"> <div class="copy-row sub-opt-row" @click="copyRow" :style="!hasCopyPermission ? 'cursor: not-allowed' : 'cursor: pointer'">
<div class="icon"> <div class="icon">
<i class="el-icon-copy-document"></i> <i class="el-icon-copy-document"></i>
</div> </div>
<div class="title">{{ $t("commons.copy") }}</div> <div class="title">{{ $t("commons.copy") }}</div>
</div> </div>
<div class="split"></div> <div class="split"></div>
<div class="delete-row sub-opt-row" @click="deleteRow" :style="!hasDeletePermission ? 'cursor: not-allowed' : 'cursor: default'"> <div class="delete-row sub-opt-row" @click="deleteRow" :style="!hasDeletePermission ? 'cursor: not-allowed' : 'cursor: pointer'">
<div class="icon"> <div class="icon">
<i class="el-icon-delete"></i> <i class="el-icon-delete"></i>
</div> </div>
@ -1892,7 +1892,7 @@ export default {
.label-row { .label-row {
} }
margin-right: px2rem(20.67); margin-right: px2rem(20.67);
padding: 0 0.5rem 0 0; padding: 0.2rem 0.5rem 0.2rem 0;
} }
.next-public-row.head-opt { .next-public-row.head-opt {
@ -1904,7 +1904,7 @@ export default {
.label-row { .label-row {
} }
margin-right: px2rem(20.67); margin-right: px2rem(20.67);
padding: 0 0 0 0.5rem; padding: 0.2rem 0 0.2rem 0.5rem;
} }
.follow-row.head-opt { .follow-row.head-opt {
@ -1928,7 +1928,7 @@ export default {
.label-row { .label-row {
} }
margin-right: px2rem(20.67); margin-right: px2rem(20.67);
padding: 0 0.5rem; padding: 0.2rem 0.5rem;
} }
.copy-public-row.head-opt { .copy-public-row.head-opt {
@ -1940,9 +1940,11 @@ export default {
.label-row { .label-row {
} }
margin-right: px2rem(20.67); margin-right: px2rem(20.67);
padding: 0 0.5rem; padding: 0.2rem 0.5rem;
}
.close-row.head-opt {
padding: 0.2rem;
} }
.add-public-row.head-opt { .add-public-row.head-opt {
.icon-row { .icon-row {
img { img {

View File

@ -84,7 +84,7 @@
:label="$t('commons.id')" :label="$t('commons.id')"
min-width="80"> min-width="80">
<template v-slot:default="scope"> <template v-slot:default="scope">
<a style="cursor:pointer" @click="handleEdit(scope.row)"> {{ scope.row.num }} </a> <a style="cursor:pointer" class="hover-enter" @click="handleEdit(scope.row)"> {{ scope.row.num }} </a>
</template> </template>
</ms-table-column> </ms-table-column>
@ -97,7 +97,7 @@
:label="$t('commons.id')" :label="$t('commons.id')"
min-width="80"> min-width="80">
<template v-slot:default="scope"> <template v-slot:default="scope">
<a style="cursor:pointer" @click="handleEdit(scope.row)"> {{ scope.row.customNum }} </a> <a style="cursor:pointer" class="hover-enter" @click="handleEdit(scope.row)"> {{ scope.row.customNum }} </a>
</template> </template>
</ms-table-column> </ms-table-column>
@ -107,8 +107,11 @@
:field="item" :field="item"
:fields-width="fieldsWidth" :fields-width="fieldsWidth"
:label="$t('test_track.case.name')" :label="$t('test_track.case.name')"
min-width="120" min-width="120">
/> <template v-slot:default="scope">
<a style="cursor:pointer" class="hover-enter" @click="handleEdit(scope.row)"> {{ scope.row.name }} </a>
</template>
</ms-table-column>
<ms-table-column :label="$t('test_track.case.case_desc')" prop="desc" :field="item" min-width="100px"> <ms-table-column :label="$t('test_track.case.case_desc')" prop="desc" :field="item" min-width="100px">
<template v-slot:default="scope"> <template v-slot:default="scope">
@ -439,12 +442,6 @@ export default {
], ],
operators: [], operators: [],
simpleOperators: [ simpleOperators: [
{
tip: this.$t('commons.edit'),
isTextButton: true,
exec: this.handleEdit,
permissions: ['PROJECT_TRACK_CASE:READ+EDIT']
},
{ {
tip: this.$t('commons.copy'), tip: this.$t('commons.copy'),
isTextButton: true, isTextButton: true,
@ -1289,4 +1286,8 @@ span.version-select {
color: #783887; color: #783887;
border: 1px solid #783887; border: 1px solid #783887;
} }
.hover-enter:hover{
color: #783887;
}
</style> </style>

View File

@ -42,6 +42,7 @@
<el-scrollbar> <el-scrollbar>
<div class="content-container"> <div class="content-container">
<case-test-relate <case-test-relate
ref="relateTest"
:case-id="caseId" :case-id="caseId"
:read-only="readOnly" :read-only="readOnly"
:version-enable="versionEnable" :version-enable="versionEnable"

View File

@ -69,16 +69,22 @@
<priority-table-item :value="scope.row.priority" /> <priority-table-item :value="scope.row.priority" />
</template> </template>
</ms-table-column> </ms-table-column>
<ms-table-column prop="tags" width="120px" :label="$t('commons.tag')"> <ms-table-column prop="tags" :show-overflow-tooltip="false" min-width="180" :label="$t('commons.tag')">
<template v-slot:default="scope"> <template v-slot:default="scope">
<ms-tag <el-tooltip class="item" effect="dark" placement="top">
v-for="(itemName, index) in scope.row.tags" <div v-html="getTagToolTips(scope.row.tags)" slot="content"></div>
:key="index" <div class="oneLine">
type="success" <ms-single-tag
effect="plain" v-for="(itemName, index) in parseColumnTag(scope.row.tags)"
:content="itemName" :key="index"
style="margin-left: 0px; margin-right: 2px" type="success"
></ms-tag> effect="plain"
:show-tooltip="scope.row.tags.length === 1 && itemName.length * 12 <= 100"
:content="itemName"
style="margin-left: 0; margin-right: 2px"/>
</div>
</el-tooltip>
<span/>
</template> </template>
</ms-table-column> </ms-table-column>
</ms-table> </ms-table>
@ -108,11 +114,12 @@ import PriorityTableItem from "@/business/common/tableItems/planview/PriorityTab
import MsTablePagination from "metersphere-frontend/src/components/pagination/TablePagination"; import MsTablePagination from "metersphere-frontend/src/components/pagination/TablePagination";
import { TEST_CASE_RELEVANCE_API_CASE_CONFIGS } from "metersphere-frontend/src/components/search/search-components"; import { TEST_CASE_RELEVANCE_API_CASE_CONFIGS } from "metersphere-frontend/src/components/search/search-components";
import MsTableAdvSearchBar from "metersphere-frontend/src/components/search/MsTableAdvSearchBar"; import MsTableAdvSearchBar from "metersphere-frontend/src/components/search/MsTableAdvSearchBar";
import MsTag from "metersphere-frontend/src/components/MsTag"; import MsSingleTag from "metersphere-frontend/src/components/new-ui/MsSingleTag";
import { getCurrentProjectID } from "metersphere-frontend/src/utils/token"; import { getCurrentProjectID } from "metersphere-frontend/src/utils/token";
import { getVersionFilters } from "@/business/utils/sdk-utils"; import { getVersionFilters } from "@/business/utils/sdk-utils";
import MxVersionSelect from "metersphere-frontend/src/components/version/MxVersionSelect"; import MxVersionSelect from "metersphere-frontend/src/components/version/MxVersionSelect";
import { getTestCaseRelevanceApiList } from "@/api/testCase"; import { getTestCaseRelevanceApiList } from "@/api/testCase";
import {getTagToolTips, parseColumnTag} from "@/business/case/test-case";
export default { export default {
name: "CaseRelateApiList", name: "CaseRelateApiList",
@ -122,7 +129,7 @@ export default {
MsTable, MsTable,
MsTableColumn, MsTableColumn,
MsTableAdvSearchBar, MsTableAdvSearchBar,
MsTag, MsSingleTag,
VersionSelect: MxVersionSelect, VersionSelect: MxVersionSelect,
MsNewUiSearch, MsNewUiSearch,
MsTableAdvSearch, MsTableAdvSearch,
@ -250,6 +257,19 @@ export default {
this.condition.versionId = currentVersion || null; this.condition.versionId = currentVersion || null;
this.initTable(); this.initTable();
}, },
getTagToolTips(tags) {
return getTagToolTips(tags);
},
parseColumnTag(tags) {
return parseColumnTag(tags);
}
}, },
}; };
</script> </script>
<style scoped>
.oneLine {
overflow: hidden;
white-space: nowrap;
}
</style>

View File

@ -76,21 +76,26 @@
min-width="120px" min-width="120px"
> >
<template v-slot:default="scope"> <template v-slot:default="scope">
<plan-status-table-item :value="scope.row.status" /> <status-table-item :value="scope.row.status" />
</template> </template>
</ms-table-column> </ms-table-column>
<ms-table-column prop="tags" width="120px" :label="$t('commons.tag')"> <ms-table-column prop="tags" :show-overflow-tooltip="false" min-width="180" :label="$t('commons.tag')">
<template v-slot:default="scope"> <template v-slot:default="scope">
<ms-tag <el-tooltip class="item" effect="dark" placement="top">
v-for="(itemName, index) in scope.row.tags" <div v-html="getTagToolTips(scope.row.tags)" slot="content"></div>
:key="index" <div class="oneLine">
type="success" <ms-single-tag
effect="plain" v-for="(itemName, index) in parseColumnTag(scope.row.tags)"
:content="itemName" :key="index"
style="margin-left: 0px; margin-right: 2px" type="success"
/> effect="plain"
<span></span> :show-tooltip="scope.row.tags.length === 1 && itemName.length * 12 <= 100"
:content="itemName"
style="margin-left: 0; margin-right: 2px"/>
</div>
</el-tooltip>
<span/>
</template> </template>
</ms-table-column> </ms-table-column>
</ms-table> </ms-table>
@ -117,24 +122,25 @@ import MsTable from "metersphere-frontend/src/components/new-ui/MsTable";
import MsTableColumn from "metersphere-frontend/src/components/table/MsTableColumn"; import MsTableColumn from "metersphere-frontend/src/components/table/MsTableColumn";
import PriorityTableItem from "@/business/common/tableItems/planview/PriorityTableItem"; import PriorityTableItem from "@/business/common/tableItems/planview/PriorityTableItem";
import MsTablePagination from "metersphere-frontend/src/components/pagination/TablePagination"; import MsTablePagination from "metersphere-frontend/src/components/pagination/TablePagination";
import PlanStatusTableItem from "@/business/common/tableItems/plan/PlanStatusTableItem"; import StatusTableItem from "@/business/common/tableItems/planview/StatusTableItem";
import MsTableAdvSearchBar from "metersphere-frontend/src/components/search/MsTableAdvSearchBar"; import MsTableAdvSearchBar from "metersphere-frontend/src/components/search/MsTableAdvSearchBar";
import MsTag from "metersphere-frontend/src/components/MsTag"; import MsSingleTag from "metersphere-frontend/src/components/new-ui/MsSingleTag";
import { TEST_CASE_RELEVANCE_API_CASE_CONFIGS } from "metersphere-frontend/src/components/search/search-components"; import { TEST_CASE_RELEVANCE_API_CASE_CONFIGS } from "metersphere-frontend/src/components/search/search-components";
import { getVersionFilters } from "@/business/utils/sdk-utils"; import { getVersionFilters } from "@/business/utils/sdk-utils";
import MxVersionSelect from "metersphere-frontend/src/components/version/MxVersionSelect"; import MxVersionSelect from "metersphere-frontend/src/components/version/MxVersionSelect";
import { getTestCaseRelevanceScenarioList } from "@/api/testCase"; import { getTestCaseRelevanceScenarioList } from "@/api/testCase";
import {getTagToolTips, parseColumnTag} from "@/business/case/test-case";
export default { export default {
name: "CaseRelateScenarioList", name: "CaseRelateScenarioList",
components: { components: {
PlanStatusTableItem, StatusTableItem,
MsTablePagination, MsTablePagination,
PriorityTableItem, PriorityTableItem,
MsTable, MsTable,
MsTableColumn, MsTableColumn,
MsTableAdvSearchBar, MsTableAdvSearchBar,
MsTag, MsSingleTag,
VersionSelect: MxVersionSelect, VersionSelect: MxVersionSelect,
MsNewUiSearch, MsNewUiSearch,
MsTableAdvSearch, MsTableAdvSearch,
@ -249,6 +255,19 @@ export default {
this.condition.versionId = currentVersion || null; this.condition.versionId = currentVersion || null;
this.initTable(); this.initTable();
}, },
getTagToolTips(tags) {
return getTagToolTips(tags);
},
parseColumnTag(tags) {
return parseColumnTag(tags);
}
}, },
}; };
</script> </script>
<style scoped>
.oneLine {
overflow: hidden;
white-space: nowrap;
}
</style>

View File

@ -71,21 +71,26 @@
min-width="120px" min-width="120px"
> >
<template v-slot:default="scope"> <template v-slot:default="scope">
<plan-status-table-item :value="scope.row.status" /> <status-table-item :value="scope.row.status" />
</template> </template>
</ms-table-column> </ms-table-column>
<ms-table-column prop="tags" width="120px" :label="$t('commons.tag')"> <ms-table-column prop="tags" :show-overflow-tooltip="false" min-width="180" :label="$t('commons.tag')">
<template v-slot:default="scope"> <template v-slot:default="scope">
<ms-tag <el-tooltip class="item" effect="dark" placement="top">
v-for="(itemName, index) in scope.row.tags" <div v-html="getTagToolTips(scope.row.tags)" slot="content"></div>
:key="index" <div class="oneLine">
type="success" <ms-single-tag
effect="plain" v-for="(itemName, index) in parseColumnTag(scope.row.tags)"
:content="itemName" :key="index"
style="margin-left: 0px; margin-right: 2px" type="success"
/> effect="plain"
<span></span> :show-tooltip="scope.row.tags.length === 1 && itemName.length * 12 <= 100"
:content="itemName"
style="margin-left: 0; margin-right: 2px"/>
</div>
</el-tooltip>
<span/>
</template> </template>
</ms-table-column> </ms-table-column>
</ms-table> </ms-table>
@ -112,27 +117,28 @@ import MsTable from "metersphere-frontend/src/components/new-ui/MsTable";
import MsTableColumn from "metersphere-frontend/src/components/table/MsTableColumn"; import MsTableColumn from "metersphere-frontend/src/components/table/MsTableColumn";
import PriorityTableItem from "@/business/common/tableItems/planview/PriorityTableItem"; import PriorityTableItem from "@/business/common/tableItems/planview/PriorityTableItem";
import MsTablePagination from "metersphere-frontend/src/components/pagination/TablePagination"; import MsTablePagination from "metersphere-frontend/src/components/pagination/TablePagination";
import PlanStatusTableItem from "@/business/common/tableItems/plan/PlanStatusTableItem"; import StatusTableItem from "@/business/common/tableItems/planview/StatusTableItem";
import MsTableAdvSearchBar from "metersphere-frontend/src/components/search/MsTableAdvSearchBar"; import MsTableAdvSearchBar from "metersphere-frontend/src/components/search/MsTableAdvSearchBar";
import MsTag from "metersphere-frontend/src/components/MsTag"; import MsSingleTag from "metersphere-frontend/src/components/new-ui/MsSingleTag";
import {TEST_CASE_RELEVANCE_API_CASE_CONFIGS} from "metersphere-frontend/src/components/search/search-components"; import { TEST_CASE_RELEVANCE_API_CASE_CONFIGS } from "metersphere-frontend/src/components/search/search-components";
import {getCurrentProjectID, getVersionFilters} from "@/business/utils/sdk-utils"; import { getVersionFilters } from "@/business/utils/sdk-utils";
import MxVersionSelect from "metersphere-frontend/src/components/version/MxVersionSelect"; import MxVersionSelect from "metersphere-frontend/src/components/version/MxVersionSelect";
import { import {
getTestCaseRelevanceScenarioList, getTestCaseRelevanceScenarioList,
getTestCaseRelevanceUiScenarioList, getTestCaseRelevanceUiScenarioList,
} from "@/api/testCase"; } from "@/api/testCase";
import {getTagToolTips, parseColumnTag} from "@/business/case/test-case";
export default { export default {
name: "CaseRelateUiScenarioList", name: "CaseRelateUiScenarioList",
components: { components: {
PlanStatusTableItem, StatusTableItem,
MsTablePagination, MsTablePagination,
PriorityTableItem, PriorityTableItem,
MsTable, MsTable,
MsTableColumn, MsTableColumn,
MsTableAdvSearchBar, MsTableAdvSearchBar,
MsTag, MsSingleTag,
VersionSelect: MxVersionSelect, VersionSelect: MxVersionSelect,
MsNewUiSearch, MsNewUiSearch,
MsTableAdvSearch, MsTableAdvSearch,
@ -249,6 +255,19 @@ export default {
this.condition.versionId = currentVersion || null; this.condition.versionId = currentVersion || null;
this.initTable(); this.initTable();
}, },
getTagToolTips(tags) {
return getTagToolTips(tags);
},
parseColumnTag(tags) {
return parseColumnTag(tags);
}
}, },
}; };
</script> </script>
<style scoped>
.oneLine {
overflow: hidden;
white-space: nowrap;
}
</style>

View File

@ -135,18 +135,24 @@
<ms-table-column <ms-table-column
prop="tags" prop="tags"
:label="$t('commons.tag')" :label="$t('commons.tag')"
width="90px" :show-overflow-tooltip="false"
min-width="180"
> >
<template v-slot:default="scope"> <template v-slot:default="scope">
<ms-tag <el-tooltip class="item" effect="dark" placement="top">
v-for="(itemName, index) in scope.row.tags" <div v-html="getTagToolTips(scope.row.tags)" slot="content"></div>
:key="index" <div class="oneLine">
type="success" <ms-single-tag
effect="plain" v-for="(itemName, index) in parseColumnTag(scope.row.tags)"
:content="itemName" :key="index"
style="margin-left: 0px; margin-right: 2px" type="success"
/> effect="plain"
<span /> :show-tooltip="scope.row.tags.length === 1 && itemName.length * 12 <= 100"
:content="itemName"
style="margin-left: 0; margin-right: 2px"/>
</div>
</el-tooltip>
<span/>
</template> </template>
</ms-table-column> </ms-table-column>
@ -191,7 +197,7 @@ import TestCaseRelevanceBase from "./CaseRelevanceSideDialog";
import MsTableColumn from "metersphere-frontend/src/components/table/MsTableColumn"; import MsTableColumn from "metersphere-frontend/src/components/table/MsTableColumn";
import MsTable from "metersphere-frontend/src/components/new-ui/MsTable"; import MsTable from "metersphere-frontend/src/components/new-ui/MsTable";
import MsTablePagination from "metersphere-frontend/src/components/pagination/TablePagination"; import MsTablePagination from "metersphere-frontend/src/components/pagination/TablePagination";
import MsTag from "metersphere-frontend/src/components/MsTag"; import MsSingleTag from "metersphere-frontend/src/components/new-ui/MsSingleTag";
import MsCreateTimeColumn from "metersphere-frontend/src/components/table/MsCreateTimeColumn"; import MsCreateTimeColumn from "metersphere-frontend/src/components/table/MsCreateTimeColumn";
import MsUpdateTimeColumn from "metersphere-frontend/src/components/table/MsUpdateTimeColumn"; import MsUpdateTimeColumn from "metersphere-frontend/src/components/table/MsUpdateTimeColumn";
import StatusTableItem from "@/business/common/tableItems/planview/StatusTableItem"; import StatusTableItem from "@/business/common/tableItems/planview/StatusTableItem";
@ -203,7 +209,7 @@ import MxVersionSelect from "metersphere-frontend/src/components/version/MxVersi
import { getProjectApplicationConfig } from "@/api/project-application"; import { getProjectApplicationConfig } from "@/api/project-application";
import { getVersionFilters } from "@/business/utils/sdk-utils"; import { getVersionFilters } from "@/business/utils/sdk-utils";
import { getTestTemplate } from "@/api/custom-field-template"; import { getTestTemplate } from "@/api/custom-field-template";
import { initTestCaseConditionComponents } from "@/business/case/test-case"; import {getTagToolTips, initTestCaseConditionComponents, parseColumnTag} from "@/business/case/test-case";
export default { export default {
name: "CaseFunctionalRelevance", name: "CaseFunctionalRelevance",
@ -214,7 +220,7 @@ export default {
StatusTableItem, StatusTableItem,
MsUpdateTimeColumn, MsUpdateTimeColumn,
MsCreateTimeColumn, MsCreateTimeColumn,
MsTag, MsSingleTag,
MsTablePagination, MsTablePagination,
MsTable, MsTable,
MsTableColumn, MsTableColumn,
@ -404,6 +410,12 @@ export default {
); );
}); });
}, },
getTagToolTips(tags) {
return getTagToolTips(tags);
},
parseColumnTag(tags) {
return parseColumnTag(tags);
}
}, },
}; };
</script> </script>
@ -479,4 +491,9 @@ export default {
} }
} }
} }
.oneLine {
overflow: hidden;
white-space: nowrap;
}
</style> </style>

View File

@ -1,11 +1,11 @@
<template> <template>
<div> <div>
<ms-tag v-if="value == 'Prepare'" type="info" :content="$t('test_track.plan.plan_status_prepare')"/> <ms-tag v-if="value === 'Prepare'" type="info" :content="$t('test_track.plan.plan_status_prepare')"/>
<ms-tag v-if="value == 'Underway'" type="primary" :content="$t('test_track.plan.plan_status_running')"/> <ms-tag v-if="value === 'Underway'" type="primary" :content="$t('test_track.plan.plan_status_running')"/>
<ms-tag v-if="value == 'Finished'" type="warning" :content="$t('test_track.plan.plan_status_finished')"/> <ms-tag v-if="value === 'Finished'" type="warning" :content="$t('test_track.plan.plan_status_finished')"/>
<ms-tag v-if="value == 'Completed'" type="success" :content="$t('test_track.plan.plan_status_completed')"/> <ms-tag v-if="value === 'Completed'" type="success" :content="$t('test_track.plan.plan_status_completed')"/>
<ms-tag v-if="value === 'Trash'" type="danger" effect="plain" :content="$t('test_track.plan.plan_status_trash')"/> <ms-tag v-if="value === 'Trash'" type="danger" effect="plain" :content="$t('test_track.plan.plan_status_trash')"/>
<ms-tag v-if="value == 'Archived'" type="danger" :content="$t('test_track.plan.plan_status_archived')"/> <ms-tag v-if="value === 'Archived'" type="danger" :content="$t('test_track.plan.plan_status_archived')"/>
</div> </div>
</template> </template>