fix(项目设置): 编辑模板自定义字段默认值,文本过大无法编辑
--bug=1019378 --user=陈建星 【项目设置】模板管理,接口模板里添加富文本框,无法编辑富文本框的默认值 https://www.tapd.cn/55049933/s/1289478
This commit is contained in:
parent
6be6ab15ae
commit
b1e7329a56
|
@ -1,161 +0,0 @@
|
|||
<template>
|
||||
<ms-table
|
||||
v-loading="loading"
|
||||
:enable-selection="false"
|
||||
:operators="operators"
|
||||
:data="tableData"
|
||||
:screen-height="null"
|
||||
@refresh="refreshTable"
|
||||
ref="table">
|
||||
|
||||
<ms-table-column
|
||||
:label="$t('commons.name')"
|
||||
prop="name">
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.system">
|
||||
{{$t(systemNameMap[scope.row.name])}}
|
||||
</span>
|
||||
<span v-else>
|
||||
{{scope.row.name}}
|
||||
</span>
|
||||
</template>
|
||||
</ms-table-column>
|
||||
|
||||
<ms-table-column
|
||||
:label="$t('commons.default')"
|
||||
min-width="200"
|
||||
prop="type">
|
||||
<template v-slot="scope">
|
||||
<el-scrollbar>
|
||||
<custom-filed-component class="default-value-item" :data="scope.row" prop="defaultValue" :is-template-edit="true"/>
|
||||
</el-scrollbar>
|
||||
</template>
|
||||
</ms-table-column>
|
||||
|
||||
<field-custom-data-table-item :scene="scene"/>
|
||||
|
||||
<ms-table-column
|
||||
:label="$t('api_test.definition.document.table_coloum.is_required')"
|
||||
width="80"
|
||||
prop="type">
|
||||
<template v-slot="scope">
|
||||
<el-checkbox v-model="scope.row.required"/>
|
||||
</template>
|
||||
</ms-table-column>
|
||||
|
||||
<ms-table-column
|
||||
:label="$t('custom_field.system_field')"
|
||||
width="80"
|
||||
prop="system">
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.system">
|
||||
{{$t('commons.yes')}}
|
||||
</span>
|
||||
<span v-else>
|
||||
{{$t('commons.no')}}
|
||||
</span>
|
||||
</template>
|
||||
</ms-table-column>
|
||||
|
||||
<ms-table-column
|
||||
:label="$t('commons.remark')"
|
||||
prop="remark">
|
||||
</ms-table-column>
|
||||
|
||||
|
||||
</ms-table>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import MsTableOperatorButton from "../MsTableOperatorButton";
|
||||
import MsTable from "../table/MsTable";
|
||||
import MsTableColumn from "../table/MsTableColumn";
|
||||
// import FieldCustomDataTableItem from "./FieldCustomDataTableItem";
|
||||
import CustomFiledComponent from "./CustomFiledComponent";
|
||||
// import {getCustomFields} from "../../../api/template";
|
||||
import {SYSTEM_FIELD_NAME_MAP} from "../../utils/table-constants";
|
||||
|
||||
export default {
|
||||
name: "CustomFieldFormList",
|
||||
components: {
|
||||
CustomFiledComponent,
|
||||
// FieldCustomDataTableItem,
|
||||
MsTableColumn, MsTable, MsTableOperatorButton
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
result: {},
|
||||
loading: false,
|
||||
operators: [
|
||||
{
|
||||
tip: this.$t('commons.delete'), icon: "el-icon-delete", type: "danger",
|
||||
exec: this.handleDelete,
|
||||
isDisable: (row) => {
|
||||
if (row.name === '用例等级') {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
],
|
||||
};
|
||||
},
|
||||
props: {
|
||||
tableData: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
},
|
||||
},
|
||||
scene: String,
|
||||
platform: String,
|
||||
templateContainIds: Set
|
||||
},
|
||||
watch: {
|
||||
'customFieldIds.length'() {
|
||||
this.initTableData();
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
systemNameMap() {
|
||||
return SYSTEM_FIELD_NAME_MAP;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleDelete(item, index) {
|
||||
this.templateContainIds.delete(item.fieldId);
|
||||
this.tableData.splice(index, 1);
|
||||
},
|
||||
refreshTable() {
|
||||
this.$refs.table.reloadTable();
|
||||
},
|
||||
appendData(customFieldIds) {
|
||||
let condition = {};
|
||||
condition.ids = customFieldIds;
|
||||
this.loading = getCustomFields(condition).then((response) => {
|
||||
let data = response.data;
|
||||
data.forEach(item => {
|
||||
if (item.id) {
|
||||
this.templateContainIds.add(item.id);
|
||||
}
|
||||
item.fieldId = item.id;
|
||||
item.id = null;
|
||||
item.options = JSON.parse(item.options);
|
||||
if (item.type === 'checkbox') {
|
||||
item.defaultValue = [];
|
||||
}
|
||||
});
|
||||
this.tableData.push(...data);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
:deep(.el-table--border, .el-table--group ) {
|
||||
border: 0px;
|
||||
}
|
||||
</style>
|
|
@ -1,190 +0,0 @@
|
|||
<template>
|
||||
<ms-edit-dialog
|
||||
appendToBody
|
||||
width="70%"
|
||||
:visible.sync="visible"
|
||||
@confirm="save"
|
||||
:title="$t('custom_field.add_field')"
|
||||
ref="msEditDialog">
|
||||
|
||||
<template v-slot:header>
|
||||
<ms-table-header :condition.sync="condition" @search="search"
|
||||
:show-create="false"/>
|
||||
</template>
|
||||
|
||||
<ms-table
|
||||
v-loading="loading"
|
||||
:data="tableData"
|
||||
:condition="condition"
|
||||
:total="total"
|
||||
:show-select-all="false"
|
||||
:page-size.sync="pageSize"
|
||||
@handlePageChange="initTableData"
|
||||
@refresh="initTableData"
|
||||
ref="table">
|
||||
|
||||
<ms-table-column
|
||||
:label="$t('commons.name')"
|
||||
:fields="fields"
|
||||
prop="name">
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.system">
|
||||
{{$t(systemNameMap[scope.row.name])}}
|
||||
</span>
|
||||
<span v-else>
|
||||
{{scope.row.name}}
|
||||
</span>
|
||||
</template>
|
||||
</ms-table-column>
|
||||
|
||||
<ms-table-column
|
||||
:label="$t('custom_field.attribute_type')"
|
||||
:fields="fields"
|
||||
:filters="fieldFilters"
|
||||
prop="type">
|
||||
<template v-slot="scope">
|
||||
<span>{{ $t(fieldTypeMap[scope.row.type]) }}</span>
|
||||
</template>
|
||||
</ms-table-column>
|
||||
|
||||
<ms-table-column
|
||||
:label="$t('custom_field.system_field')"
|
||||
:fields="fields"
|
||||
prop="system">
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.system">
|
||||
{{$t('commons.yes')}}
|
||||
</span>
|
||||
<span v-else>
|
||||
{{$t('commons.no')}}
|
||||
</span>
|
||||
</template>
|
||||
</ms-table-column>
|
||||
|
||||
<ms-table-column
|
||||
:label="$t('commons.remark')"
|
||||
:fields="fields"
|
||||
prop="remark">
|
||||
</ms-table-column>
|
||||
|
||||
<ms-table-column
|
||||
sortable
|
||||
:label="$t('commons.create_time')"
|
||||
:fields="fields"
|
||||
prop="createTime">
|
||||
<template v-slot="scope">
|
||||
<span>{{ scope.row.createTime | datetimeFormat }}</span>
|
||||
</template>
|
||||
</ms-table-column>
|
||||
|
||||
<ms-table-column
|
||||
sortable
|
||||
:label="$t('commons.update_time')"
|
||||
:fields="fields"
|
||||
prop="updateTime">
|
||||
<template v-slot="scope">
|
||||
<span>{{ scope.row.updateTime | datetimeFormat }}</span>
|
||||
</template>
|
||||
</ms-table-column>
|
||||
</ms-table>
|
||||
|
||||
<ms-table-pagination :change="initTableData" :current-page.sync="currentPage" :page-size.sync="pageSize" :total="total"/>
|
||||
|
||||
</ms-edit-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import MsTable from "metersphere-frontend/src/components/table/MsTable";
|
||||
import {getCurrentProjectID} from "metersphere-frontend/src/utils/token";
|
||||
import MsTableColumn from "metersphere-frontend/src/components/table/MsTableColumn";
|
||||
import {CUSTOM_FIELD_LIST} from "metersphere-frontend/src/utils/default-table-header";
|
||||
import MsTableButton from "metersphere-frontend/src/components/MsTableButton";
|
||||
import MsTablePagination from "metersphere-frontend/src/components/pagination/TablePagination";
|
||||
import {
|
||||
CUSTOM_FIELD_TYPE_FILTERS,
|
||||
FIELD_TYPE_MAP,
|
||||
SYSTEM_FIELD_NAME_MAP
|
||||
} from "metersphere-frontend/src/utils/table-constants";
|
||||
import MsTableHeader from "metersphere-frontend/src/components/MsTableHeader";
|
||||
// import {getCustomFieldRelatePages} from "../../../api/template";
|
||||
import MsEditDialog from "../../components/MsEditDialog";
|
||||
|
||||
export default {
|
||||
name: "CustomFieldRelateList",
|
||||
components: {
|
||||
MsEditDialog,
|
||||
MsTableHeader,
|
||||
MsTablePagination, MsTableButton, MsTableColumn, MsTable},
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
condition: {},
|
||||
visible: false,
|
||||
total: 0,
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
result: {},
|
||||
loading: false,
|
||||
};
|
||||
},
|
||||
props: [
|
||||
'scene',
|
||||
'templateId',
|
||||
'templateContainIds',
|
||||
],
|
||||
computed: {
|
||||
fields() {
|
||||
return CUSTOM_FIELD_LIST;
|
||||
},
|
||||
fieldFilters() {
|
||||
return CUSTOM_FIELD_TYPE_FILTERS(this);
|
||||
},
|
||||
fieldTypeMap() {
|
||||
return FIELD_TYPE_MAP;
|
||||
},
|
||||
systemNameMap() {
|
||||
return SYSTEM_FIELD_NAME_MAP;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
search() {
|
||||
if (!(this.condition.name.trim())) {
|
||||
this.currentPage = 1;
|
||||
}
|
||||
this.initTableData();
|
||||
},
|
||||
initTableData() {
|
||||
this.condition.projectId = getCurrentProjectID();
|
||||
this.condition.templateId = this.templateId;
|
||||
this.condition.templateContainIds = Array.from(this.templateContainIds);
|
||||
let filters = this.condition.filters;
|
||||
if (filters) {
|
||||
filters.scene = [this.scene];
|
||||
} else {
|
||||
this.condition.filters = {scene: [this.scene]};
|
||||
}
|
||||
if (this.scene) {
|
||||
this.loading = getCustomFieldRelatePages(this.currentPage, this.pageSize, this.condition).then((response) => {
|
||||
let data = response.data;
|
||||
this.total = data.itemCount;
|
||||
this.tableData = data.listObject;
|
||||
});
|
||||
}
|
||||
},
|
||||
open() {
|
||||
this.initTableData();
|
||||
this.visible = true;
|
||||
},
|
||||
save() {
|
||||
if (this.$refs.table.selectIds.length > 0) {
|
||||
this.$emit('save', this.$refs.table.selectIds);
|
||||
}
|
||||
this.visible = false;
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -21,7 +21,7 @@
|
|||
</template>
|
||||
</ms-table-column>
|
||||
|
||||
<ms-table-column
|
||||
<el-table-column
|
||||
:label="$t('commons.default')"
|
||||
min-width="200"
|
||||
prop="type">
|
||||
|
@ -34,7 +34,7 @@
|
|||
:is-template-edit="true"/>
|
||||
</el-scrollbar>
|
||||
</template>
|
||||
</ms-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<field-custom-data-table-item :scene="scene"/>
|
||||
|
||||
|
|
|
@ -192,8 +192,6 @@
|
|||
|
||||
import TemplateComponentEditHeader from "@/business/plan/view/comonents/report/TemplateComponentEditHeader";
|
||||
import MsFormDivider from "metersphere-frontend/src/components/MsFormDivider";
|
||||
import CustomFieldFormList from "metersphere-frontend/src/components/template/CustomFieldFormList";
|
||||
import CustomFieldRelateList from "metersphere-frontend/src/components/template/CustomFieldRelateList";
|
||||
import FormRichTextItem from "metersphere-frontend/src/components/FormRichTextItem";
|
||||
import {buildCustomFields, parseCustomField} from "metersphere-frontend/src/utils/custom_field";
|
||||
import CustomFiledComponent from "metersphere-frontend/src/components/template/CustomFiledComponent";
|
||||
|
@ -240,8 +238,6 @@ export default {
|
|||
TestCaseIssueList,
|
||||
CustomFiledComponent,
|
||||
FormRichTextItem,
|
||||
CustomFieldRelateList,
|
||||
CustomFieldFormList,
|
||||
MsFormDivider,
|
||||
TemplateComponentEditHeader,
|
||||
MsMarkDownText,
|
||||
|
|
Loading…
Reference in New Issue