Browse Source

优化:修复已知问题

dev
科技小王子 5 months ago
parent
commit
d27cc2e5c9
  1. BIN
      public/favicon2.ico
  2. 7
      src/api/bszx/bszxClass/model/index.ts
  3. 5
      src/api/bszx/bszxGrade/model/index.ts
  4. 28
      src/views/bszx/bszxClass/components/bszxClassEdit.vue
  5. 118
      src/views/bszx/bszxClass/components/search.vue
  6. 20
      src/views/bszx/bszxClass/index.vue
  7. 7
      src/views/bszx/bszxGrade/components/bszxGradeEdit.vue
  8. 18
      src/views/bszx/bszxGrade/components/search.vue
  9. 16
      src/views/bszx/bszxGrade/index.vue

BIN
public/favicon2.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 B

7
src/api/bszx/bszxClass/model/index.ts

@ -10,6 +10,10 @@ export interface BszxClass {
eraId?: number; eraId?: number;
// 年级ID // 年级ID
gradeId?: number; gradeId?: number;
// 年级
gradeName?: string;
// 分部
branch?: number;
// 班级 // 班级
name?: string; name?: string;
// 排序(数字越小越靠前) // 排序(数字越小越靠前)
@ -29,5 +33,8 @@ export interface BszxClass {
*/ */
export interface BszxClassParam extends PageParam { export interface BszxClassParam extends PageParam {
id?: number; id?: number;
gradeId?: number;
eraId?: number;
branch?: number;
keywords?: string; keywords?: string;
} }

5
src/api/bszx/bszxGrade/model/index.ts

@ -10,6 +10,8 @@ export interface BszxGrade {
name?: string; name?: string;
// 年代 // 年代
eraId?: number; eraId?: number;
// 分部
branch?: number;
// 排序(数字越小越靠前) // 排序(数字越小越靠前)
sortNumber?: number; sortNumber?: number;
// 备注 // 备注
@ -20,7 +22,7 @@ export interface BszxGrade {
tenantId?: number; tenantId?: number;
// 创建时间 // 创建时间
createTime?: string; createTime?: string;
value?: string;
value?: number;
label?: string; label?: string;
} }
@ -29,5 +31,6 @@ export interface BszxGrade {
*/ */
export interface BszxGradeParam extends PageParam { export interface BszxGradeParam extends PageParam {
id?: number; id?: number;
branch?: number;
keywords?: string; keywords?: string;
} }

28
src/views/bszx/bszxClass/components/bszxClassEdit.vue

@ -19,6 +19,12 @@
styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' }
" "
> >
<a-form-item label="初高中部" name="branch">
<a-radio-group v-model:value="form.branch" @change="handleBranch">
<a-radio-button :value="1">初中部</a-radio-button>
<a-radio-button :value="2">高中部</a-radio-button>
</a-radio-group>
</a-form-item>
<a-form-item label="选择年级" name="gradeId"> <a-form-item label="选择年级" name="gradeId">
<a-select <a-select
v-model:value="form.gradeName" v-model:value="form.gradeName"
@ -105,6 +111,7 @@
name: undefined, name: undefined,
gradeId: undefined, gradeId: undefined,
gradeName: undefined, gradeName: undefined,
branch: 2,
sortNumber: 100, sortNumber: 100,
comments: undefined, comments: undefined,
status: undefined, status: undefined,
@ -134,6 +141,19 @@
form.gradeId = item.id; form.gradeId = item.id;
}; };
const handleBranch = () => {
getBszxGradeList();
}
const getBszxGradeList = () => {
listBszxGrade({branch: form.branch}).then((list) => {
options.value = list.map(d => {
d.value = d.name;
d.label = d.name;
return d;
});
})
}
const { resetFields } = useForm(form, rules); const { resetFields } = useForm(form, rules);
/* 保存编辑 */ /* 保存编辑 */
@ -168,13 +188,7 @@
() => props.visible, () => props.visible,
(visible) => { (visible) => {
if (visible) { if (visible) {
listBszxGrade({}).then((list) => {
options.value = list.map(d => {
d.value = d.name;
d.label = d.name;
return d;
});
})
getBszxGradeList()
images.value = []; images.value = [];
if (props.data) { if (props.data) {
assignObject(form, props.data); assignObject(form, props.data);

118
src/views/bszx/bszxClass/components/search.vue

@ -3,40 +3,100 @@
<a-space :size="10" style="flex-wrap: wrap"> <a-space :size="10" style="flex-wrap: wrap">
<a-button type="primary" class="ele-btn-icon" @click="add"> <a-button type="primary" class="ele-btn-icon" @click="add">
<template #icon> <template #icon>
<PlusOutlined />
<PlusOutlined/>
</template> </template>
<span>添加</span> <span>添加</span>
</a-button> </a-button>
<a-radio-group v-model:value="where.branch" @change="handleSearch">
<a-radio-button :value="1">初中部</a-radio-button>
<a-radio-button :value="2">高中部</a-radio-button>
</a-radio-group>
<a-select
show-search
v-model:value="where.gradeId"
style="width: 240px"
placeholder="选择年级"
:options="gradeList"
@change="onGrade"
></a-select>
<a-input-search
allow-clear
placeholder="请输入关键词"
style="width: 240px"
v-model:value="where.keywords"
@search="handleSearch"
/>
<a-button @click="reset">重置</a-button>
</a-space> </a-space>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { PlusOutlined } from '@ant-design/icons-vue';
import type { GradeParam } from '@/api/user/grade/model';
import { watch } from 'vue';
const props = withDefaults(
defineProps<{
//
selection?: [];
}>(),
{}
);
const emit = defineEmits<{
(e: 'search', where?: GradeParam): void;
(e: 'add'): void;
(e: 'remove'): void;
(e: 'batchMove'): void;
}>();
//
const add = () => {
emit('add');
};
watch(
() => props.selection,
() => {}
);
import {PlusOutlined} from '@ant-design/icons-vue';
import {watch,ref} from 'vue';
import useSearch from "@/utils/use-search";
import {BszxClassParam} from "@/api/bszx/bszxClass/model";
import {listBszxGrade} from "@/api/bszx/bszxGrade";
const props = withDefaults(
defineProps<{
//
selection?: [];
}>(),
{}
);
const gradeList = ref<BszxClassParam[]>([]);
const emit = defineEmits<{
(e: 'search', where?: BszxClassParam): void;
(e: 'add'): void;
(e: 'remove'): void;
(e: 'batchMove'): void;
}>();
//
const {where, resetFields} = useSearch<BszxClassParam>({
gradeId: undefined,
eraId: undefined,
branch: undefined,
keywords: ''
});
//
const add = () => {
emit('add');
};
const handleSearch = () => {
emit('search', where);
}
/* 重置 */
const reset = () => {
resetFields();
handleSearch();
};
const onGrade = (gradeId: number) => {
where.gradeId = gradeId;
handleSearch();
}
const reload = () => {
listBszxGrade({}).then(res => {
gradeList.value = res.map(d => {
d.value = Number(d.id);
d.label = d.name;
return d;
});
})
}
reload();
watch(
() => props.selection,
() => {
},
{ immediate: true }
);
</script> </script>

20
src/views/bszx/bszxClass/index.vue

@ -119,19 +119,27 @@ const columns = ref<ColumnItem[]>([
title: 'ID', title: 'ID',
dataIndex: 'id', dataIndex: 'id',
key: 'id', key: 'id',
align: 'center',
width: 90,
width: 120,
}, },
{ {
title: '年代',
dataIndex: 'eraName',
key: 'eraName'
title: '初高中',
dataIndex: 'branch',
key: 'branch',
width: 120,
customRender: ({ text }) => ['','初中','高中'][text]
}, },
{ {
title: '年级', title: '年级',
dataIndex: 'gradeName', dataIndex: 'gradeName',
key: 'gradeName'
key: 'gradeName',
width: 120
}, },
// {
// title: '',
// dataIndex: 'gradeId',
// key: 'gradeId',
// width: 120
// },
{ {
title: '班级', title: '班级',
dataIndex: 'name', dataIndex: 'name',

7
src/views/bszx/bszxGrade/components/bszxGradeEdit.vue

@ -19,6 +19,12 @@
styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' }
" "
> >
<a-form-item label="分部" name="branch">
<a-radio-group v-model:value="form.branch">
<a-radio-button :value="1">初中部</a-radio-button>
<a-radio-button :value="2">高中部</a-radio-button>
</a-radio-group>
</a-form-item>
<a-form-item label="年级" name="name"> <a-form-item label="年级" name="name">
<a-input <a-input
allow-clear allow-clear
@ -88,6 +94,7 @@
// //
const form = reactive<BszxGrade>({ const form = reactive<BszxGrade>({
id: undefined, id: undefined,
branch: 2,
name: undefined, name: undefined,
comments: undefined, comments: undefined,
status: undefined, status: undefined,

18
src/views/bszx/bszxGrade/components/search.vue

@ -7,13 +7,18 @@
</template> </template>
<span>添加</span> <span>添加</span>
</a-button> </a-button>
<a-radio-group v-model:value="where.branch" @change="handleSearch">
<a-radio-button :value="1">初中部</a-radio-button>
<a-radio-button :value="2">高中部</a-radio-button>
</a-radio-group>
</a-space> </a-space>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { PlusOutlined } from '@ant-design/icons-vue'; import { PlusOutlined } from '@ant-design/icons-vue';
import type { GradeParam } from '@/api/user/grade/model';
import useSearch from "@/utils/use-search";
import { watch } from 'vue'; import { watch } from 'vue';
import {BszxGradeParam} from "@/api/bszx/bszxGrade/model";
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
@ -24,17 +29,26 @@
); );
const emit = defineEmits<{ const emit = defineEmits<{
(e: 'search', where?: GradeParam): void;
(e: 'search', where?: BszxGradeParam): void;
(e: 'add'): void; (e: 'add'): void;
(e: 'remove'): void; (e: 'remove'): void;
(e: 'batchMove'): void; (e: 'batchMove'): void;
}>(); }>();
//
const {where} = useSearch<BszxGradeParam>({
branch: undefined,
keywords: ''
});
// //
const add = () => { const add = () => {
emit('add'); emit('add');
}; };
const handleSearch = () => {
emit('search', where);
}
watch( watch(
() => props.selection, () => props.selection,
() => {} () => {}

16
src/views/bszx/bszxGrade/index.vue

@ -119,11 +119,25 @@
// align: 'center', // align: 'center',
// width: 90, // width: 90,
// }, // },
{
title: '初高中',
dataIndex: 'branch',
key: 'branch',
width: 120,
customRender: ({ text }) => ['','初中','高中'][text]
},
{ {
title: '年级', title: '年级',
dataIndex: 'name', dataIndex: 'name',
key: 'name' key: 'name'
}, },
{
title: '排序',
dataIndex: 'sortNumber',
key: 'sortNumber',
align: 'center',
width: 120,
},
{ {
title: '操作', title: '操作',
key: 'action', key: 'action',
@ -154,7 +168,7 @@
/* 删除单个 */ /* 删除单个 */
const remove = (row: BszxGrade) => { const remove = (row: BszxGrade) => {
const hide = message.loading('请求中..', 0); const hide = message.loading('请求中..', 0);
removeBszxGrade(row.appBszxGradeId)
removeBszxGrade(row.id)
.then((msg) => { .then((msg) => {
hide(); hide();
message.success(msg); message.success(msg);

Loading…
Cancel
Save