|
150 | 150 | </div> |
151 | 151 | <el-table :data="form.fields"> |
152 | 152 | <el-table-column align="left" type="index" label="序列" width="60" /> |
153 | | - <el-table-column align="left" prop="fieldName" label="Field名" /> |
154 | | - <el-table-column align="left" prop="fieldDesc" label="中文名" /> |
155 | | - <el-table-column align="left" prop="require" label="是否必填"> |
156 | | - <template #default="{row}">{{ row.require?"是":"否" }}</template> |
| 153 | + <el-table-column align="left" prop="fieldName" label="Field名" width="160"> |
| 154 | + <template #default="{row}"> |
| 155 | + <el-input v-model="row.fieldName" /> |
| 156 | + </template> |
| 157 | + </el-table-column> |
| 158 | + <el-table-column align="left" prop="fieldDesc" label="中文名" width="160"> |
| 159 | + <template #default="{row}"> |
| 160 | + <el-input v-model="row.fieldDesc" /> |
| 161 | + </template> |
| 162 | + </el-table-column> |
| 163 | + <el-table-column align="left" prop="require" label="必填"> |
| 164 | + <template #default="{row}"> <el-checkbox v-model="row.require" /></template> |
| 165 | + </el-table-column> |
| 166 | + <el-table-column align="left" prop="sort" label="排序"> |
| 167 | + <template #default="{row}"> <el-checkbox v-model="row.sort" /> </template> |
| 168 | + </el-table-column> |
| 169 | + <el-table-column align="left" prop="fieldJson" width="160px" label="FieldJson"> |
| 170 | + <template #default="{row}"> |
| 171 | + <el-input v-model="row.fieldJson" /> |
| 172 | + </template> |
| 173 | + </el-table-column> |
| 174 | + <el-table-column align="left" prop="fieldType" label="Field数据类型" width="160"> |
| 175 | + <template #default="{row}"> |
| 176 | + <el-select |
| 177 | + v-model="row.fieldType" |
| 178 | + style="width:100%" |
| 179 | + placeholder="请选择field数据类型" |
| 180 | + clearable |
| 181 | + > |
| 182 | + <el-option |
| 183 | + v-for="item in typeOptions" |
| 184 | + :key="item.value" |
| 185 | + :label="item.label" |
| 186 | + :value="item.value" |
| 187 | + /> |
| 188 | + </el-select> |
| 189 | + </template> |
157 | 190 | </el-table-column> |
158 | | - <el-table-column align="left" prop="sort" label="是否排序"> |
159 | | - <template #default="{row}">{{ row.sort?"是":"否" }}</template> |
| 191 | + <el-table-column align="left" prop="dataTypeLong" label="数据库字段长度" width="160"> |
| 192 | + <template #default="{row}"> |
| 193 | + <el-input v-model="row.dataTypeLong" /> |
| 194 | + </template> |
| 195 | + </el-table-column> |
| 196 | + <el-table-column align="left" prop="columnName" label="数据库字段" width="160"> |
| 197 | + <template #default="{row}"> |
| 198 | + <el-input v-model="row.columnName" /> |
| 199 | + </template> |
| 200 | + </el-table-column> |
| 201 | + <el-table-column align="left" prop="comment" label="数据库字段描述" width="160"> |
| 202 | + <template #default="{row}"> |
| 203 | + <el-input v-model="row.columnName" /> |
| 204 | + </template> |
| 205 | + </el-table-column> |
| 206 | + <el-table-column align="left" prop="fieldSearchType" label="搜索条件" width="130"> |
| 207 | + <template #default="{row}"> |
| 208 | + <el-select |
| 209 | + v-model="row.fieldSearchType" |
| 210 | + style="width:100%" |
| 211 | + placeholder="请选择Field查询条件" |
| 212 | + clearable |
| 213 | + > |
| 214 | + <el-option |
| 215 | + v-for="item in typeSearchOptions" |
| 216 | + :key="item.value" |
| 217 | + :label="item.label" |
| 218 | + :value="item.value" |
| 219 | + :disabled=" |
| 220 | + (row.fieldType!=='string'&&item.value==='LIKE')|| |
| 221 | + ((row.fieldType!=='int'&&row.fieldType!=='time.Time'&&row.fieldType!=='float64')&&(item.value==='BETWEEN' || item.value==='NOT BETWEEN')) |
| 222 | + " |
| 223 | + /> |
| 224 | + </el-select> |
| 225 | + </template> |
| 226 | + |
160 | 227 | </el-table-column> |
161 | | - <el-table-column align="left" prop="fieldJson" min-width="120px" label="FieldJson" /> |
162 | | - <el-table-column align="left" prop="fieldType" label="Field数据类型" width="130" /> |
163 | | - <el-table-column align="left" prop="dataTypeLong" label="数据库字段长度" width="130" /> |
164 | | - <el-table-column align="left" prop="columnName" label="数据库字段" width="130" /> |
165 | | - <el-table-column align="left" prop="comment" label="数据库字段描述" width="130" /> |
166 | | - <el-table-column align="left" prop="fieldSearchType" label="搜索条件" width="130" /> |
167 | | - <el-table-column align="left" prop="dictType" label="字典" width="130" /> |
168 | 228 | <el-table-column align="left" label="操作" width="300" fixed="right"> |
169 | 229 | <template #default="scope"> |
170 | 230 | <el-button |
|
173 | 233 | link |
174 | 234 | icon="edit" |
175 | 235 | @click="editAndAddField(scope.row)" |
176 | | - >编辑</el-button> |
| 236 | + >高级编辑</el-button> |
177 | 237 | <el-button |
178 | 238 | size="small" |
179 | 239 | type="primary" |
@@ -248,6 +308,64 @@ import { useRoute, useRouter } from 'vue-router' |
248 | 308 | import { ElMessage } from 'element-plus' |
249 | 309 | import WarningBar from '@/components/warningBar/warningBar.vue' |
250 | 310 |
|
| 311 | +const typeOptions = ref([ |
| 312 | + { |
| 313 | + label: '字符串', |
| 314 | + value: 'string' |
| 315 | + }, |
| 316 | + { |
| 317 | + label: '整型', |
| 318 | + value: 'int' |
| 319 | + }, |
| 320 | + { |
| 321 | + label: '布尔值', |
| 322 | + value: 'bool' |
| 323 | + }, |
| 324 | + { |
| 325 | + label: '浮点型', |
| 326 | + value: 'float64' |
| 327 | + }, |
| 328 | + { |
| 329 | + label: '时间', |
| 330 | + value: 'time.Time' |
| 331 | + }, |
| 332 | + { |
| 333 | + label: '枚举', |
| 334 | + value: 'enum' |
| 335 | + } |
| 336 | +]) |
| 337 | +
|
| 338 | +const typeSearchOptions = ref([ |
| 339 | + { |
| 340 | + label: '=', |
| 341 | + value: '=' |
| 342 | + }, |
| 343 | + { |
| 344 | + label: '<>', |
| 345 | + value: '<>' |
| 346 | + }, |
| 347 | + { |
| 348 | + label: '>', |
| 349 | + value: '>' |
| 350 | + }, |
| 351 | + { |
| 352 | + label: '<', |
| 353 | + value: '<' |
| 354 | + }, |
| 355 | + { |
| 356 | + label: 'LIKE', |
| 357 | + value: 'LIKE' |
| 358 | + }, |
| 359 | + { |
| 360 | + label: 'BETWEEN', |
| 361 | + value: 'BETWEEN' |
| 362 | + }, |
| 363 | + { |
| 364 | + label: 'NOT BETWEEN', |
| 365 | + value: 'NOT BETWEEN' |
| 366 | + } |
| 367 | +]) |
| 368 | +
|
251 | 369 | const fieldTemplate = { |
252 | 370 | fieldName: '', |
253 | 371 | fieldDesc: '', |
|
0 commit comments