Skip to content

Commit 3feea8f

Browse files
committed
fix/model-driven-bugs
1 parent 0423cd1 commit 3feea8f

6 files changed

Lines changed: 66 additions & 26 deletions

File tree

packages/configurator/src/model-api-configurator/ModelApiConfigurator.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
:visible-arrow="false"
77
:popper-class="['option-popper', 'fixed-left']"
88
:offset="isSecond ? 652 : 0"
9-
width="640"
9+
width="600"
1010
>
1111
<div class="model-function-wrap">
1212
<div class="model-title">
@@ -54,7 +54,7 @@
5454
</div>
5555
</tiny-popover>
5656
<div class="model-api-wrap" v-if="modelValue.length">
57-
<div class="model-api-item" v-for="(item, index) in apiList" :key="item.nameEn">
57+
<div class="model-api-item" v-for="(item, index) in modelValue" :key="item.nameEn">
5858
<tiny-checkbox v-model="item.checked" @change="setModelApis">{{ item.name }}</tiny-checkbox>
5959
<tiny-icon-edit @click="openPopover(item, index)"></tiny-icon-edit>
6060
</div>

packages/configurator/src/model-api-configurator/ParamsBindGrid.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<template>
22
<tiny-grid :data="data" :tree-config="{ children: 'children', indent: 6 }">
33
<tiny-grid-column field="prop" title="字段" width="100" tree-node></tiny-grid-column>
4-
<tiny-grid-column field="type" title="类型" width="60"></tiny-grid-column>
4+
<tiny-grid-column field="type" title="类型" width="40"></tiny-grid-column>
55
<tiny-grid-column field="description" show-overflow title="描述" width="80"></tiny-grid-column>
6-
<tiny-grid-column field="required" title="是否必填" width="66">
6+
<tiny-grid-column field="required" title="是否必填" width="60">
77
<template #default="data">
88
<span>{{ data.row?.required ? '是' : '否' }}</span>
99
</template>

packages/configurator/src/model-common/ModelSelect.vue

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
</div>
3333
</template>
3434
<script>
35-
import { ref, reactive, watch } from 'vue'
35+
import { ref, reactive, computed, watch } from 'vue'
3636
import { Search, Grid, GridColumn, Pager } from '@opentiny/vue'
3737
import { iconSearch } from '@opentiny/vue-icon'
3838
import { getModelList } from '../model-common/http'
@@ -51,6 +51,9 @@ export default {
5151
type: Number,
5252
default: 10
5353
},
54+
data: {
55+
type: Object
56+
},
5457
isShow: {
5558
type: Boolean,
5659
default: false
@@ -72,10 +75,23 @@ export default {
7275
// 搜索
7376
const searchWords = ref('')
7477
78+
const selectedModel = computed(() => props.data)
79+
80+
const selectModel = async (data) => {
81+
currentSelectedModel.value = await handleSelectedModelParameters(data.row)
82+
emit('modelSelect', currentSelectedModel.value)
83+
}
84+
7585
const getModels = () => {
76-
getModelList(pagerState.currentPage, { nameCn: searchWords.value }).then((res) => {
86+
if (selectedModel.value) {
87+
searchWords.value = selectedModel.value.name
88+
}
89+
getModelList(pagerState.currentPage, { nameCn: searchWords.value }).then(async (res) => {
7790
modelList.value = res.records
7891
pagerState.total = res.total
92+
const radioRow = res.records.find((item) => item.id === selectedModel.value.id)
93+
modelListRef.value.setRadioRow(radioRow)
94+
await selectModel({ row: radioRow })
7995
})
8096
}
8197
@@ -88,11 +104,6 @@ export default {
88104
getModels()
89105
}
90106
91-
const selectModel = async (data) => {
92-
currentSelectedModel.value = await handleSelectedModelParameters(data.row)
93-
emit('modelSelect', currentSelectedModel.value)
94-
}
95-
96107
watch(
97108
() => props.isShow,
98109
(value) => {

packages/configurator/src/model-configurator/ModelConfigurator.vue

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
</div>
2020
<div class="model-wrap">
2121
<div class="model-groups">
22-
<model-select @model-select="getModel" :isShow="isShow"></model-select>
22+
<model-select @model-select="getModel" :data="modelDetail" :isShow="isShow"></model-select>
2323
</div>
2424
<div class="model-parameters">
2525
<tiny-grid :data="selectedModel?.parameters || []" min-height="296" max-height="560">
@@ -31,11 +31,15 @@
3131
</div>
3232
<template #reference>
3333
<tiny-button @click="openPopover">
34-
<span v-if="modelDetail?.name">
35-
{{ modelDetail?.name }}
36-
</span>
37-
<span v-else>选择模型</span>
34+
<span>绑定模型数据</span>
3835
</tiny-button>
36+
<div v-if="modelDetail?.name" class="bind-model-info">
37+
<span class="bind-info-title"
38+
>已绑定:
39+
<span class="bind-info-name">{{ modelDetail?.name }} | {{ modelDetail?.nameEn }}</span>
40+
</span>
41+
<svg-icon name="delete"></svg-icon>
42+
</div>
3943
</template>
4044
</tiny-popover>
4145
</div>
@@ -397,6 +401,21 @@ onMounted(() => {
397401
}
398402
.model-name-warp {
399403
border: 1px solid var(--ti-lowcode-component-input-border-color);
404+
405+
.bind-model-info {
406+
display: flex;
407+
justify-content: space-between;
408+
align-items: center;
409+
gap: 8px;
410+
line-height: 28px;
411+
412+
.bind-info-title {
413+
color: var(--te-common-text-secondary);
414+
.bind-info-name {
415+
font-weight: 600;
416+
}
417+
}
418+
}
400419
}
401420
.meta-model-title {
402421
color: #808080;

packages/plugins/model-manager/src/Main.vue

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
>
3434
<div class="item-label">
3535
<div class="item-name">
36-
<svg-icon name="plugin-icon-data" class="plugin-icon-data"> </svg-icon>
36+
<svg-icon name="plugin-icon-modelmanager" class="plugin-icon-modelmanager"> </svg-icon>
3737
{{ model.nameCn }}
3838
</div>
3939
<div class="item-handler">
@@ -47,9 +47,6 @@
4747
</svg-button>
4848
</div>
4949
</div>
50-
<!-- <div class="model-actions">
51-
<svg-icon name="delete" @click.stop="handleDeleteModel(model)"></svg-icon>
52-
</div> -->
5350
</div>
5451
</template>
5552
<search-empty :isShow="!models.length" />
@@ -220,18 +217,18 @@ onMounted(async () => {
220217
font-size: var(--te-base-font-size-base);
221218
222219
.model-item {
223-
box-shadow: var(--te-datasource-tabs-border-color) 0, -1px;
220+
box-shadow: var(--te-model-manage-input-border-color) 0, -1px;
224221
height: 24px;
225222
line-height: 24px;
226223
align-items: center;
227224
display: grid;
228225
padding: 0 12px;
229226
position: relative;
230-
color: var(--te-datasource-list-main-text-color);
227+
color: var(--te-model-manage-text-color);
231228
cursor: pointer;
232229
&:hover,
233230
&.active {
234-
background: var(--te-datasource-list-text-color-hover);
231+
background: var(--te-model-manage-tree-node-bg-color-hover);
235232
.item-handler {
236233
display: inline-block;
237234
}
@@ -242,13 +239,13 @@ onMounted(async () => {
242239
display: flex;
243240
align-items: center;
244241
justify-content: space-between;
245-
color: var(--te-datasource-list-item-text-color);
242+
color: var(--te-model-manage-draggable-text-color);
246243
.item-name {
247244
display: flex;
248245
align-items: center;
249246
}
250-
.plugin-icon-data {
251-
color: var(--te-datasource-list-item-icon-color);
247+
.plugin-icon-modelmanager {
248+
color: var(--te-model-manage-draggable-icon-color);
252249
margin-right: 8px;
253250
}
254251
}

packages/plugins/model-manager/src/components/ModelSetting.vue

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,5 +210,18 @@ export default {
210210
<style lang="less" scoped>
211211
.modelmanager-plugin-setting {
212212
width: fit-content;
213+
214+
:deep(.tiny-collapse .tiny-collapse-item) {
215+
.tiny-collapse-item__header {
216+
padding: 0;
217+
}
218+
219+
.tiny-collapse-item__wrap .tiny-collapse-item__content {
220+
padding: 0;
221+
.section {
222+
padding: 0;
223+
}
224+
}
225+
}
213226
}
214227
</style>

0 commit comments

Comments
 (0)