This commit is contained in:
孟帅
2024-07-21 22:21:02 +08:00
parent 7d8330f72f
commit a37d088360
440 changed files with 6303 additions and 3339 deletions

View File

@@ -29,7 +29,7 @@
<n-checkbox-group v-model:value="params.flag">
<n-space>
<n-checkbox
v-for="item in options.sys_notice_type"
v-for="item in dict.getOptionUnRef('sys_notice_type')"
:key="item.value"
:value="item.value"
:label="item.label"
@@ -96,7 +96,10 @@
</n-form-item>
<n-form-item label="用户渠道" path="channel">
<n-select v-model:value="params.channel" :options="options.sys_user_channel" />
<n-select
v-model:value="params.channel"
:options="dict.getOptionUnRef('sys_user_channel')"
/>
</n-form-item>
<n-form-item label="所在城市" path="cityId">
@@ -104,7 +107,11 @@
</n-form-item>
<n-form-item label="用户爱好" path="hobby">
<n-select multiple v-model:value="params.hobby" :options="options.sys_user_hobby" />
<n-select
multiple
v-model:value="params.hobby"
:options="dict.getOptionUnRef('sys_user_hobby')"
/>
</n-form-item>
<n-form-item label="QQ" path="qq">
@@ -126,7 +133,7 @@
<n-form-item label="状态" path="status">
<n-radio-group v-model:value="params.status" name="status">
<n-radio-button
v-for="status in options.sys_normal_disable"
v-for="status in dict.getOptionUnRef('sys_normal_disable')"
:key="Number(status.value)"
:value="Number(status.value)"
:label="status.label"
@@ -151,7 +158,7 @@
<script lang="ts" setup>
import { ref, computed, watch } from 'vue';
import { rules, options, State, newState } from './model';
import { rules, State, newState } from './model';
import { Edit, MaxSort } from '@/api/addons/hgexample/table';
import { useMessage } from 'naive-ui';
import { adaModalWidth } from '@/utils/hotgo';
@@ -161,6 +168,7 @@
import UploadFile from '@/components/Upload/uploadFile.vue';
import CitySelector from '@/components/CitySelector/citySelector.vue';
import FileChooser from '@/components/FileChooser/index.vue';
import { useDictStore } from '@/store/modules/dict';
const emit = defineEmits(['reloadTable', 'updateShowModal']);
interface Props {
@@ -188,6 +196,7 @@
return props.formParams;
});
const dict = useDictStore();
const message = useMessage();
const formRef = ref<any>({});
const formBtnLoading = ref(false);

View File

@@ -66,8 +66,8 @@
</BasicTable>
</n-card>
<Edit
@reloadTable="reloadTable"
@updateShowModal="updateShowModal"
@reload-table="reloadTable"
@update-show-modal="updateShowModal"
:showModal="showModal"
:formParams="formParams"
/>
@@ -75,18 +75,20 @@
</template>
<script lang="ts" setup>
import { computed, h, reactive, ref } from 'vue';
import { computed, h, onMounted, reactive, ref } from 'vue';
import { useDialog, useMessage } from 'naive-ui';
import { BasicTable, TableAction } from '@/components/Table';
import { BasicForm, useForm } from '@/components/Form/index';
import { useSorter } from '@/hooks/common';
import { Delete, List, Status, Export } from '@/api/addons/hgexample/table';
import { State, columns, schemas, options, newState } from './model';
import { State, columns, schemas, newState, loadOptions } from './model';
import { DeleteOutlined, PlusOutlined, ExportOutlined } from '@vicons/antd';
import { useRouter } from 'vue-router';
import { adaTableScrollX, getOptionLabel } from '@/utils/hotgo';
import { adaTableScrollX } from '@/utils/hotgo';
import Edit from './edit.vue';
import { useDictStore } from '@/store/modules/dict';
const dict = useDictStore();
const router = useRouter();
const dialog = useDialog();
const message = useMessage();
@@ -218,9 +220,6 @@
reloadTable();
});
},
onNegativeClick: () => {
// message.error('取消');
},
});
}
@@ -238,9 +237,6 @@
reloadTable();
});
},
onNegativeClick: () => {
// message.error('取消');
},
});
}
@@ -251,12 +247,16 @@
function handleStatus(record: Recordable, status: number) {
Status({ id: record.id, status: status }).then((_res) => {
message.success('设为' + getOptionLabel(options.value.sys_normal_disable, status) + '成功');
message.success('设为' + dict.getLabel('sys_normal_disable', status) + '成功');
setTimeout(() => {
reloadTable();
});
});
}
onMounted(() => {
loadOptions();
});
</script>
<style lang="less" scoped></style>

View File

@@ -2,14 +2,19 @@ import { h, ref } from 'vue';
import { NAvatar, NImage, NTag, NSwitch, NRate } from 'naive-ui';
import { cloneDeep } from 'lodash-es';
import { FormSchema } from '@/components/Form';
import { Dicts } from '@/api/dict/dict';
import { Switch } from '@/api/addons/hgexample/table';
import { isNullObject } from '@/utils/is';
import { getFileExt } from '@/utils/urlUtils';
import { defRangeShortcuts, defShortcuts, formatToDate } from '@/utils/dateUtil';
import { validate } from '@/utils/validateUtil';
import { errorImg, getOptionLabel, getOptionTag, Options } from '@/utils/hotgo';
import { fallbackSrc } from '@/utils/hotgo';
import { useDictStore } from '@/store/modules/dict';
import { renderOptionTag } from '@/utils';
import type { FormRules } from 'naive-ui/es/form/src/interface';
const dict = useDictStore();
const $message = window['$message'];
export interface State {
id: number;
memberId: number;
@@ -95,16 +100,7 @@ export function newState(state: State | null): State {
return cloneDeep(defaultState);
}
export const options = ref<Options>({
sys_normal_disable: [],
sys_user_sex: [],
sys_notice_type: [],
sys_user_channel: [],
sys_user_hobby: [],
sys_switch: [],
});
export const rules = {
export const rules: FormRules = {
title: {
required: true,
trigger: ['blur', 'input'],
@@ -207,7 +203,7 @@ export const schemas = ref<FormSchema[]>([
},
componentProps: {
placeholder: '请选择标签',
options: [],
options: dict.getOption('sys_notice_type'),
onUpdateChecked: (e: any) => {
console.log(e);
},
@@ -221,7 +217,7 @@ export const schemas = ref<FormSchema[]>([
//span: 24,
},
componentProps: {
options: [],
options: dict.getOption('sys_switch'),
onUpdateChecked: (e: any) => {
console.log(e);
},
@@ -235,7 +231,7 @@ export const schemas = ref<FormSchema[]>([
componentProps: {
multiple: true,
placeholder: '请选择爱好',
options: [],
options: dict.getOption('sys_user_hobby'),
onUpdateValue: (e: any) => {
console.log(e);
},
@@ -248,7 +244,7 @@ export const schemas = ref<FormSchema[]>([
defaultValue: null,
componentProps: {
placeholder: '请选择类型',
options: [],
options: dict.getOption('sys_normal_disable'),
onUpdateValue: (e: any) => {
console.log(e);
},
@@ -280,19 +276,7 @@ export const columns = [
return ``;
}
return row.flag.map((tagKey) => {
return h(
NTag,
{
style: {
marginRight: '6px',
},
type: getOptionTag(options.value.sys_notice_type, tagKey),
bordered: false,
},
{
default: () => getOptionLabel(options.value.sys_notice_type, tagKey),
}
);
return renderOptionTag('sys_notice_type', tagKey);
});
},
},
@@ -304,7 +288,7 @@ export const columns = [
width: 32,
height: 32,
src: row.image,
fallbackSrc: errorImg,
fallbackSrc: fallbackSrc(),
style: {
width: '32px',
height: '32px',
@@ -326,7 +310,7 @@ export const columns = [
width: 32,
height: 32,
src: image,
fallbackSrc: errorImg,
fallbackSrc: fallbackSrc(),
style: {
width: '32px',
height: '32px',
@@ -443,22 +427,7 @@ export const columns = [
title: '状态',
key: 'status',
render(row) {
if (isNullObject(row.status)) {
return ``;
}
return h(
NTag,
{
style: {
marginRight: '6px',
},
type: getOptionTag(options.value.sys_normal_disable, row.status),
bordered: false,
},
{
default: () => getOptionLabel(options.value.sys_normal_disable, row.status),
}
);
return renderOptionTag('sys_normal_disable', row.status);
},
},
{
@@ -469,19 +438,7 @@ export const columns = [
return ``;
}
return row.hobby.map((tagKey) => {
return h(
NTag,
{
style: {
marginRight: '6px',
},
type: getOptionTag(options.value.sys_user_hobby, tagKey),
bordered: false,
},
{
default: () => getOptionLabel(options.value.sys_user_hobby, tagKey),
}
);
return renderOptionTag('sys_user_hobby', tagKey);
});
},
},
@@ -497,33 +454,13 @@ export const columns = [
},
];
async function loadOptions() {
options.value = await Dicts({
types: [
'sys_normal_disable',
'sys_user_sex',
'sys_notice_type',
'sys_switch',
'sys_user_hobby',
'sys_user_channel',
],
});
for (const item of schemas.value) {
switch (item.field) {
case 'status':
item.componentProps.options = options.value.sys_normal_disable;
break;
case 'flag':
item.componentProps.options = options.value.sys_notice_type;
break;
case 'switch':
item.componentProps.options = options.value.sys_switch;
break;
case 'hobby':
item.componentProps.options = options.value.sys_user_hobby;
break;
}
}
export function loadOptions() {
dict.loadOptions([
'sys_normal_disable',
'sys_user_sex',
'sys_notice_type',
'sys_switch',
'sys_user_hobby',
'sys_user_channel',
]);
}
await loadOptions();

View File

@@ -4,7 +4,7 @@
<n-card :bordered="false" title="基础详情"> 基础详情有时也用于显示只读信息 </n-card>
</div>
<n-card :bordered="false" class="proCard mt-4" size="small" :segmented="{ content: true }">
<n-descriptions label-placement="left" class="py-2" column="4">
<n-descriptions label-placement="left" class="py-2" :column="4">
<n-descriptions-item>
<template #label>分类ID</template>
{{ formValue.categoryId }}
@@ -13,10 +13,10 @@
<n-descriptions-item label="标签">
<template v-for="(item, key) in formValue?.flag" :key="key">
<n-tag
:type="getOptionTag(options.sys_notice_type, item)"
:type="dict.getType('sys_notice_type', item)"
size="small"
class="min-left-space"
>{{ getOptionLabel(options.sys_notice_type, item) }}</n-tag
>{{ dict.getLabel('sys_notice_type', item) }}</n-tag
>
</template>
</n-descriptions-item>
@@ -37,19 +37,19 @@
</n-card>
<n-card :bordered="false" class="proCard mt-4" size="small" :segmented="{ content: true }">
<n-descriptions label-placement="top" title="内容" class="py-2" column="1">
<n-descriptions label-placement="top" title="内容" class="py-2" :column="1">
<n-descriptions-item><span v-html="formValue.content"></span></n-descriptions-item>
</n-descriptions>
</n-card>
<n-card :bordered="false" class="proCard mt-4" size="small" :segmented="{ content: true }">
<n-descriptions label-placement="top" title="单图" class="py-2" column="1">
<n-descriptions label-placement="top" title="单图" class="py-2" :column="1">
<n-descriptions-item>
<n-image style="margin-left: 10px; height: 100px; width: 100px" :src="formValue.image"
/></n-descriptions-item>
</n-descriptions>
<n-descriptions label-placement="top" title="多图" class="py-2" column="1">
<n-descriptions label-placement="top" title="多图" class="py-2" :column="1">
<n-descriptions-item>
<n-image-group>
<n-space>
@@ -61,7 +61,7 @@
</n-descriptions-item>
</n-descriptions>
<n-descriptions label-placement="top" title="附件" class="py-2" column="1">
<n-descriptions label-placement="top" title="附件" class="py-2" :column="1">
<n-descriptions-item>
<div
class="upload-card"
@@ -79,7 +79,7 @@
</n-descriptions-item>
</n-descriptions>
<n-descriptions label-placement="top" title="多附件" class="py-2" column="1">
<n-descriptions label-placement="top" title="多附件" class="py-2" :column="1">
<n-descriptions-item>
<div class="upload-card">
<n-space style="gap: 0px 0px">
@@ -110,10 +110,11 @@
import { useRouter } from 'vue-router';
import { useMessage } from 'naive-ui';
import { View } from '@/api/addons/hgexample/table';
import { newState, options } from './model';
import { getOptionLabel, getOptionTag } from '@/utils/hotgo';
import { newState } from './model';
import { getFileExt } from '@/utils/urlUtils';
import { useDictStore } from '@/store/modules/dict';
const dict = useDictStore();
const message = useMessage();
const router = useRouter();
const id = Number(router.currentRoute.value.params.id);

View File

@@ -71,7 +71,10 @@
</n-gi>
<n-gi span="1">
<n-form-item label="支付状态" path="status">
<n-select v-model:value="formValue.status" :options="options.payStatus" />
<n-select
v-model:value="formValue.status"
:options="dict.getOptionUnRef('payStatus')"
/>
</n-form-item>
</n-gi>
</n-grid>
@@ -91,13 +94,15 @@
<script lang="ts" setup>
import { ref, computed } from 'vue';
import { Edit, View } from '@/api/addons/hgexample/tenantOrder';
import { options, State, newState, rules } from './model';
import { State, newState, rules } from './model';
import { useProjectSettingStore } from '@/store/modules/projectSetting';
import { useMessage } from 'naive-ui';
import { adaModalWidth } from '@/utils/hotgo';
import { useUserStore } from '@/store/modules/user';
import { useDictStore } from '@/store/modules/dict';
const emit = defineEmits(['reloadTable']);
const dict = useDictStore();
const message = useMessage();
const settingStore = useProjectSettingStore();
const userStore = useUserStore();

View File

@@ -1,13 +1,13 @@
import { h, ref } from 'vue';
import { NTag } from 'naive-ui';
import { ref } from 'vue';
import { cloneDeep } from 'lodash-es';
import { FormSchema } from '@/components/Form';
import { Dicts } from '@/api/dict/dict';
import { isNullObject } from '@/utils/is';
import { defRangeShortcuts } from '@/utils/dateUtil';
import { Option, getOptionLabel, getOptionTag } from '@/utils/hotgo';
import { useUserStore } from '@/store/modules/user';
import { useDictStore } from '@/store/modules/dict';
import { renderOptionTag } from '@/utils';
import type { FormRules } from 'naive-ui/es/form/src/interface';
const dict = useDictStore();
const userStore = useUserStore();
export class State {
@@ -41,7 +41,7 @@ export function newState(state: State | Record<string, any> | null): State {
}
// 表单验证规则
export const rules = {
export const rules: FormRules = {
money: {
required: true,
trigger: ['blur', 'input'],
@@ -195,22 +195,7 @@ export const columns = [
align: 'left',
width: 100,
render(row) {
if (isNullObject(row.status)) {
return ``;
}
return h(
NTag,
{
style: {
marginRight: '6px',
},
type: getOptionTag(options.value.payStatus, row.status),
bordered: false,
},
{
default: () => getOptionLabel(options.value.payStatus, row.status),
}
);
return renderOptionTag('payStatus', row.status);
},
},
{
@@ -221,23 +206,7 @@ export const columns = [
},
];
// 字典数据选项
export const options = ref({
payStatus: [] as Option[],
});
// 加载字典数据选项
export function loadOptions() {
Dicts({
types: ['payStatus'],
}).then((res) => {
options.value = res;
for (const item of schemas.value) {
switch (item.field) {
case 'status':
item.componentProps.options = options.value.payStatus;
break;
}
}
});
dict.loadOptions(['payStatus']);
}

View File

@@ -37,7 +37,7 @@
<n-checkbox-group v-model:value="params.flag">
<n-space>
<n-checkbox
v-for="item in options.sys_notice_type"
v-for="item in dict.getOptionUnRef('sys_notice_type')"
:key="item.value"
:value="item.value"
:label="item.label"
@@ -104,7 +104,10 @@
</n-form-item>
<n-form-item label="用户渠道" path="channel">
<n-select v-model:value="params.channel" :options="options.sys_user_channel" />
<n-select
v-model:value="params.channel"
:options="dict.getOptionUnRef('sys_user_channel')"
/>
</n-form-item>
<n-form-item label="所在城市" path="cityId">
@@ -112,7 +115,11 @@
</n-form-item>
<n-form-item label="用户爱好" path="hobby">
<n-select multiple v-model:value="params.hobby" :options="options.sys_user_hobby" />
<n-select
multiple
v-model:value="params.hobby"
:options="dict.getOptionUnRef('sys_user_hobby')"
/>
</n-form-item>
<n-form-item label="QQ" path="qq">
@@ -134,7 +141,7 @@
<n-form-item label="状态" path="status">
<n-radio-group v-model:value="params.status" name="status">
<n-radio-button
v-for="status in options.sys_normal_disable"
v-for="status in dict.getOptionUnRef('sys_normal_disable')"
:key="Number(status.value)"
:value="Number(status.value)"
:label="status.label"
@@ -158,8 +165,8 @@
</template>
<script lang="ts" setup>
import { onMounted, ref, computed, watch } from 'vue';
import { rules, options, State, newState } from './model';
import { ref, computed, watch } from 'vue';
import { rules, State, newState } from './model';
import { Edit, MaxSort } from '@/api/addons/hgexample/treeTable';
import { useMessage } from 'naive-ui';
import { adaModalWidth } from '@/utils/hotgo';
@@ -169,6 +176,7 @@
import UploadFile from '@/components/Upload/uploadFile.vue';
import CitySelector from '@/components/CitySelector/citySelector.vue';
import FileChooser from '@/components/FileChooser/index.vue';
import { useDictStore } from '@/store/modules/dict';
const emit = defineEmits(['reloadTable', 'updateShowModal']);
interface Props {
@@ -198,6 +206,7 @@
return props.formParams;
});
const dict = useDictStore();
const message = useMessage();
const formRef = ref<any>({});
const formBtnLoading = ref(false);

View File

@@ -22,7 +22,7 @@
type="info"
icon-placement="left"
@click="openEditDrawer"
:disabled="formParams?.id === null || formParams?.id <= 0"
:disabled="!formParams?.id || formParams?.id < 1"
>
<template #icon>
<div class="flex items-center">
@@ -104,15 +104,15 @@
<List
:checkedId="checkedId"
:optionTreeData="optionTreeData"
@reloadTable="reloadTable"
@reload-table="reloadTable"
/>
</n-card>
</n-gi>
</n-grid>
<Edit
@reloadTable="reloadTable"
@updateShowModal="updateShowModal"
@reload-table="reloadTable"
@update-show-modal="updateShowModal"
:showModal="showModal"
:formParams="formParams"
:optionTreeData="optionTreeData"
@@ -133,7 +133,7 @@
import List from './list.vue';
import { Delete, Select } from '@/api/addons/hgexample/treeTable';
import Edit from './edit.vue';
import { newState } from './model';
import { newState, loadOptions } from './model';
const showModal = ref(false);
const message = useMessage();
@@ -228,4 +228,8 @@
function updateShowModal(value) {
showModal.value = value;
}
onMounted(() => {
loadOptions();
});
</script>

View File

@@ -71,8 +71,8 @@
</n-card>
<Edit
@reloadTable="reloadTable"
@updateShowModal="updateShowModal"
@reload-table="reloadTable"
@update-show-modal="updateShowModal"
:showModal="showModal"
:formParams="formParams"
:optionTreeData="optionTreeData"
@@ -87,10 +87,11 @@
import { BasicForm, useForm } from '@/components/Form/index';
import { useSorter } from '@/hooks/common';
import { Delete, List, Status, Export } from '@/api/addons/hgexample/treeTable';
import { State, columns, schemas, options, newState } from './model';
import { State, columns, schemas, newState } from './model';
import { DeleteOutlined, PlusOutlined, ExportOutlined } from '@vicons/antd';
import { adaTableScrollX, getOptionLabel } from '@/utils/hotgo';
import { adaTableScrollX } from '@/utils/hotgo';
import Edit from './edit.vue';
import { useDictStore } from '@/store/modules/dict';
interface Props {
checkedId?: number;
@@ -99,6 +100,7 @@
const props = withDefaults(defineProps<Props>(), { checkedId: 0, optionTreeData: [] });
const emit = defineEmits(['reloadTable']);
const dict = useDictStore();
const dialog = useDialog();
const message = useMessage();
const searchFormRef = ref<any>();
@@ -232,7 +234,7 @@
function handleStatus(record: Recordable, status: number) {
Status({ id: record.id, status: status }).then((_res) => {
message.success('设为' + getOptionLabel(options.value.sys_normal_disable, status) + '成功');
message.success('设为' + dict.getLabel('sys_normal_disable', status) + '成功');
setTimeout(() => {
reloadTable();
});

View File

@@ -2,14 +2,18 @@ import { h, ref } from 'vue';
import { NAvatar, NImage, NTag, NSwitch, NRate } from 'naive-ui';
import { cloneDeep } from 'lodash-es';
import { FormSchema } from '@/components/Form';
import { Dicts } from '@/api/dict/dict';
import { Switch } from '@/api/addons/hgexample/table';
import { isNullObject } from '@/utils/is';
import { getFileExt } from '@/utils/urlUtils';
import { defRangeShortcuts, defShortcuts, formatToDate } from '@/utils/dateUtil';
import { validate } from '@/utils/validateUtil';
import { errorImg, getOptionLabel, getOptionTag, Options } from '@/utils/hotgo';
import { fallbackSrc } from '@/utils/hotgo';
import { useDictStore } from '@/store/modules/dict';
import { renderOptionTag } from '@/utils';
const dict = useDictStore();
const $message = window['$message'];
export interface State {
id: number;
memberId: number;
@@ -21,7 +25,7 @@ export interface State {
images: string[] | null;
attachfile: string;
attachfiles: string[] | null;
map: unknown[] | null;
map: any | null;
star: number;
description: string;
price: number;
@@ -95,15 +99,6 @@ export function newState(state: State | null): State {
return cloneDeep(defaultState);
}
export const options = ref<Options>({
sys_normal_disable: [],
sys_user_sex: [],
sys_notice_type: [],
sys_user_channel: [],
sys_user_hobby: [],
sys_switch: [],
});
export const rules = {
title: {
required: true,
@@ -207,7 +202,7 @@ export const schemas = ref<FormSchema[]>([
},
componentProps: {
placeholder: '请选择标签',
options: [],
options: dict.getOption('sys_notice_type'),
onUpdateChecked: (e: any) => {
console.log(e);
},
@@ -221,7 +216,7 @@ export const schemas = ref<FormSchema[]>([
//span: 24,
},
componentProps: {
options: [],
options: dict.getOption('sys_switch'),
onUpdateChecked: (e: any) => {
console.log(e);
},
@@ -235,7 +230,7 @@ export const schemas = ref<FormSchema[]>([
componentProps: {
multiple: true,
placeholder: '请选择爱好',
options: [],
options: dict.getOption('sys_user_hobby'),
onUpdateValue: (e: any) => {
console.log(e);
},
@@ -248,7 +243,7 @@ export const schemas = ref<FormSchema[]>([
defaultValue: null,
componentProps: {
placeholder: '请选择类型',
options: [],
options: dict.getOption('sys_normal_disable'),
onUpdateValue: (e: any) => {
console.log(e);
},
@@ -280,19 +275,7 @@ export const columns = [
return ``;
}
return row.flag.map((tagKey) => {
return h(
NTag,
{
style: {
marginRight: '6px',
},
type: getOptionTag(options.value.sys_notice_type, tagKey),
bordered: false,
},
{
default: () => getOptionLabel(options.value.sys_notice_type, tagKey),
}
);
return renderOptionTag('sys_notice_type', tagKey);
});
},
},
@@ -304,7 +287,7 @@ export const columns = [
width: 32,
height: 32,
src: row.image,
fallbackSrc: errorImg,
fallbackSrc: fallbackSrc(),
style: {
width: '32px',
height: '32px',
@@ -326,7 +309,7 @@ export const columns = [
width: 32,
height: 32,
src: image,
fallbackSrc: errorImg,
fallbackSrc: fallbackSrc(),
style: {
width: '32px',
height: '32px',
@@ -443,46 +426,14 @@ export const columns = [
title: '状态',
key: 'status',
render(row) {
if (isNullObject(row.status)) {
return ``;
}
return h(
NTag,
{
style: {
marginRight: '6px',
},
type: getOptionTag(options.value.sys_normal_disable, row.status),
bordered: false,
},
{
default: () => getOptionLabel(options.value.sys_normal_disable, row.status),
}
);
return renderOptionTag('sys_normal_disable', row.status);
},
},
{
title: '爱好',
key: 'hobby',
render(row) {
if (isNullObject(row.hobby)) {
return ``;
}
return row.hobby.map((tagKey) => {
return h(
NTag,
{
style: {
marginRight: '6px',
},
type: getOptionTag(options.value.sys_user_hobby, tagKey),
bordered: false,
},
{
default: () => getOptionLabel(options.value.sys_user_hobby, tagKey),
}
);
});
return renderOptionTag('sys_user_hobby', row.hobby);
},
},
{
@@ -497,33 +448,13 @@ export const columns = [
},
];
async function loadOptions() {
options.value = await Dicts({
types: [
'sys_normal_disable',
'sys_user_sex',
'sys_notice_type',
'sys_switch',
'sys_user_hobby',
'sys_user_channel',
],
});
for (const item of schemas.value) {
switch (item.field) {
case 'status':
item.componentProps.options = options.value.sys_normal_disable;
break;
case 'flag':
item.componentProps.options = options.value.sys_notice_type;
break;
case 'switch':
item.componentProps.options = options.value.sys_switch;
break;
case 'hobby':
item.componentProps.options = options.value.sys_user_hobby;
break;
}
}
export function loadOptions() {
dict.loadOptions([
'sys_normal_disable',
'sys_user_sex',
'sys_notice_type',
'sys_switch',
'sys_user_hobby',
'sys_user_channel',
]);
}
await loadOptions();