提交 78ec16fa authored 作者: 王鹏飞's avatar 王鹏飞

feat: 用户属性增加属性类型

上级 441b545a
......@@ -33,16 +33,18 @@ const form = reactive(
type: '',
format: '',
status: '1',
type_name: ''
type_name: '',
category: '',
}
)
const rules = ref<FormRules>({
name: [{ required: true, message: '请输入' }],
english_name: [{ required: true, message: '请输入' }],
category: [{ required: true, message: '请选择' }],
type: [{ required: true, message: '请选择' }],
format: [{ required: true, message: '请输入' }],
status: [{ required: true, message: '请选择' }]
status: [{ required: true, message: '请选择' }],
})
// 提交
......@@ -71,6 +73,7 @@ function handleUpdate() {
// 属性字段类型
const experimentAttributeOptions = $ref(store.getMapValuesByKey('experiment_attribute_type'))
const membersCategory = $ref(store.getMapValuesByKey('experiment_meta_members_category'))
// 属性字段类型选择后->格式的placeholder改变
const formatPlaceholder = computed(() => {
......@@ -132,6 +135,9 @@ const popoverText = function (type: any) {
<el-form-item label="属性名称" prop="name">
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
<el-form-item label="属性类型" prop="category">
<el-select-v2 v-model="form.category" style="width: 100%" placeholder="请选择" :options="membersCategory" />
</el-form-item>
<el-form-item label="属性字段类型" prop="type">
<el-select
:disabled="isUpdate"
......
<script setup lang="ts">
import type { UserProp } from '../types'
import { useMapStore } from '@/stores/map'
import { getNameByValue } from '@/utils/dictionary'
interface Props {
data: UserProp
}
defineProps<Props>()
const props = defineProps<Props>()
const store = useMapStore()
const category = computed(() => {
return getNameByValue(props.data.category, store.getMapValuesByKey('experiment_meta_members_category'))
})
</script>
<template>
......@@ -19,6 +27,9 @@ defineProps<Props>()
<el-form-item label="属性名称">
{{ data.name }}
</el-form-item>
<el-form-item label="属性类型">
{{ category }}
</el-form-item>
<el-form-item label="属性字段类型">
{{ data.type_name }}
</el-form-item>
......
......@@ -9,4 +9,5 @@ export interface UserProp {
status_name: string
updated_operator_name: string
updated_time: string
category: string
}
......@@ -5,6 +5,7 @@ import { ElMessageBox, ElMessage } from 'element-plus'
import AppList from '@/components/base/AppList.vue'
import { getMemberMeta, deleteMemberMeta } from '../api'
import { useMapStore } from '@/stores/map'
import { getNameByValue } from '@/utils/dictionary'
const store = useMapStore()
......@@ -17,7 +18,7 @@ const listOptions = computed(() => {
return {
remote: {
httpRequest: getMemberMeta,
params: { name: '', status: '', type: '' }
params: { name: '', status: '', type: '' },
},
filters: [
{ type: 'input', prop: 'name', placeholder: '请输入用户属性名称' },
......@@ -25,7 +26,7 @@ const listOptions = computed(() => {
type: 'select',
prop: 'type',
placeholder: '请选择属性字段类型',
options: store.getMapValuesByKey('experiment_attribute_type')
options: store.getMapValuesByKey('experiment_attribute_type'),
},
{
type: 'select',
......@@ -33,14 +34,21 @@ const listOptions = computed(() => {
placeholder: '请选择生效状态',
options: [
{ label: '有效', value: '1' },
{ label: '失效', value: '0' }
]
}
{ label: '失效', value: '0' },
],
},
],
columns: [
{ label: '序号', type: 'index', width: 60 },
{ label: '属性ID', prop: 'id' },
{ label: '属性名称', prop: 'name' },
{
label: '属性类型',
prop: 'category',
computed({ row }: any) {
return getNameByValue(row.category, store.getMapValuesByKey('experiment_meta_members_category'))
},
},
{ label: '属性英文名称', prop: 'english_name' },
{ label: '属性字段类型', prop: 'type_name' },
{ label: '属性字段格式', prop: 'format' },
......@@ -51,12 +59,12 @@ const listOptions = computed(() => {
return row.row.status === '0'
? `<span style="color: rgb(170, 2, 49)">${row.row.status_name}</span>`
: `<span style="color: #00ac27">${row.row.status_name}</span>`
}
},
},
{ label: '更新人', prop: 'updated_operator_name' },
{ label: '更新时间', prop: 'updated_time' },
{ label: '操作', slots: 'table-x', width: 240 }
]
{ label: '操作', slots: 'table-x', width: 240 },
],
}
})
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论