refactor: 合并 biz_support_unit/biz_execution_unit/biz_service_org 为 biz_org, 删除 2 张孤儿表, 改 biz_person.work_unit → org_id FK
主要改动: - SQL: biz_support_unit → biz_org, 加 org_type, 加 business_nature; 删 biz_execution_unit, biz_service_org - SQL: biz_project.support_unit_id/name + service_org_id/name → org_id/name/type - SQL: biz_meeting.support_unit_name → org_name - SQL: biz_person.work_unit → org_id (FK) - 后端: 新 BizOrg entity/mapper/service/controller - 后端: BizProject/BizMeeting 字段重命名 - 后端: 删 12 个 BizSupportUnit/BizExecutionUnit/BizServiceOrg Java 文件 - 后端: BizPersonImportVO.workUnit → orgName (导入时查 biz_org 取 org_id) - 后端: BizAuthController.registerExecutor 完整实现 (原 registerSupplier stub) - 前端: 新 admin/Orgs.vue + manager/Orgs.vue (原 SupportUnits) - 前端: RegisterExecutor.vue (原 RegisterSupplier, 单页 2 步) - 前端: sponsor/executor/manager 多个文件 workUnit → orgId/orgName 重命名 - 前端: 统一 supplier → executor, 业务命名 sponsor(赞助方) / executor(执行方=供应商) - 前端: 全工程 execution → executor (company type / role / person unit_type)
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
<template>
|
||||
<dict-select
|
||||
v-model="selected"
|
||||
:dict-type="DICT_TYPE.DEPARTMENT"
|
||||
:value-field="valueField"
|
||||
:placeholder="placeholder"
|
||||
:disabled="disabled"
|
||||
:clearable="clearable"
|
||||
:filterable="filterable"
|
||||
:multiple="multiple"
|
||||
class="doctor-dept-select"
|
||||
@change="handleChange"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, watch } from 'vue'
|
||||
import DictSelect from '@/components/DictSelect.vue'
|
||||
import { DICT_TYPE } from '@/api/dict'
|
||||
|
||||
/**
|
||||
* 公共科室下拉控件 (医生/科室字典, 与 RuoYi sys_dept 区分)
|
||||
* v-model 默认绑 ID (deptId), 也可改为绑 name 字符串
|
||||
*
|
||||
* 用法:
|
||||
* <dept-select v-model="form.deptId" />
|
||||
* <dept-select v-model="form.department" value-field="label" filterable placeholder="搜索科室" />
|
||||
*/
|
||||
const props = defineProps({
|
||||
modelValue: { type: [String, Number, Array], default: null },
|
||||
/** 'value' (deptId) 或 'label' (科室名称) */
|
||||
valueField: { type: String, default: 'value' },
|
||||
placeholder: { type: String, default: '请选择科室' },
|
||||
disabled: { type: Boolean, default: false },
|
||||
clearable: { type: Boolean, default: true },
|
||||
filterable: { type: Boolean, default: false },
|
||||
multiple: { type: Boolean, default: false }
|
||||
})
|
||||
|
||||
const emit = defineEmits(['update:modelValue', 'change'])
|
||||
|
||||
const selected = ref(props.modelValue ?? (props.multiple ? [] : null))
|
||||
watch(() => props.modelValue, v => {
|
||||
selected.value = v ?? (props.multiple ? [] : null)
|
||||
})
|
||||
|
||||
function handleChange(val, opt) {
|
||||
emit('update:modelValue', val)
|
||||
emit('change', val, opt)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.doctor-dept-select { width: 100%; }
|
||||
</style>
|
||||
Reference in New Issue
Block a user