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

@@ -44,7 +44,7 @@
</n-gi>
<n-gi span="1">
<n-form-item label="状态" path="status">
<n-select v-model:value="formValue.status" :options="options.sys_normal_disable" />
<n-select v-model:value="formValue.status" :options="dict.getOptionUnRef('sys_normal_disable')" />
</n-form-item>
</n-gi>
<n-gi span="2">
@@ -72,8 +72,9 @@
<script lang="ts" setup>
import { ref, computed } from 'vue';
import { useDictStore } from '@/store/modules/dict';
import { Edit, View, MaxSort } from '@/api/testCategory';
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';
@@ -81,6 +82,7 @@
const emit = defineEmits(['reloadTable']);
const message = useMessage();
const settingStore = useProjectSettingStore();
const dict = useDictStore();
const loading = ref(false);
const showModal = ref(false);
const formValue = ref<State>(newState(null));
@@ -119,25 +121,28 @@
});
}
// 提交表单
function confirmForm(e) {
e.preventDefault();
formBtnLoading.value = true;
formRef.value.validate((errors) => {
if (!errors) {
Edit(formValue.value).then((_res) => {
message.success('操作成功');
setTimeout(() => {
formBtnLoading.value = true;
Edit(formValue.value)
.then((_res) => {
message.success('操作成功');
closeForm();
emit('reloadTable');
})
.finally(() => {
formBtnLoading.value = false;
});
});
} else {
message.error('请填写完整信息');
}
formBtnLoading.value = false;
});
}
// 关闭表单
function closeForm() {
showModal.value = false;
loading.value = false;

View File

@@ -42,10 +42,11 @@
import { BasicTable, TableAction } from '@/components/Table';
import { BasicForm, useForm } from '@/components/Form/index';
import { usePermission } from '@/hooks/web/usePermission';
import { useDictStore } from '@/store/modules/dict';
import { List, Delete, Status } from '@/api/testCategory';
import { PlusOutlined, DeleteOutlined } from '@vicons/antd';
import { columns, schemas, options, loadOptions } from './model';
import { adaTableScrollX, getOptionLabel } from '@/utils/hotgo';
import { columns, schemas, loadOptions } from './model';
import { adaTableScrollX } from '@/utils/hotgo';
import Edit from './edit.vue';
const dialog = useDialog();
@@ -54,6 +55,7 @@
const actionRef = ref();
const searchFormRef = ref<any>({});
const editRef = ref();
const dict = useDictStore();
const checkedIds = ref([]);
@@ -175,7 +177,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();
});
@@ -184,6 +186,7 @@
onMounted(() => {
loadOptions();
});
</script>

View File

@@ -2,10 +2,12 @@ import { h, ref } from 'vue';
import { NTag } from 'naive-ui';
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 { useDictStore } from '@/store/modules/dict';
import type { FormRules } from 'naive-ui/es/form/src/interface';
const dict = useDictStore();
export class State {
public id = 0; // 分类ID
@@ -37,7 +39,7 @@ export function newState(state: State | Record<string, any> | null): State {
}
// 表单验证规则
export const rules = {
export const rules: FormRules = {
name: {
required: true,
trigger: ['blur', 'input'],
@@ -83,7 +85,7 @@ export const schemas = ref<FormSchema[]>([
defaultValue: null,
componentProps: {
placeholder: '请选择状态',
options: [],
options: dict.getOption('sys_normal_disable'),
onUpdateValue: (e: any) => {
console.log(e);
},
@@ -145,11 +147,11 @@ export const columns = [
style: {
marginRight: '6px',
},
type: getOptionTag(options.value.sys_normal_disable, row.status),
type: dict.getType('sys_normal_disable', row.status),
bordered: false,
},
{
default: () => getOptionLabel(options.value.sys_normal_disable, row.status),
default: () => dict.getLabel('sys_normal_disable', row.status),
}
);
},
@@ -162,23 +164,7 @@ export const columns = [
},
];
// 字典数据选项
export const options = ref({
sys_normal_disable: [] as Option[],
});
// 加载字典数据选项
export function loadOptions() {
Dicts({
types: ['sys_normal_disable'],
}).then((res) => {
options.value = res;
for (const item of schemas.value) {
switch (item.field) {
case 'status':
item.componentProps.options = options.value.sys_normal_disable;
break;
}
}
});
}
dict.loadOptions(['sys_normal_disable']);
}