|
@@ -5,8 +5,8 @@
|
|
|
<div class="view-summary__title">一级危险点:{{ viewDetail.checkVenue || '-' }}</div>
|
|
<div class="view-summary__title">一级危险点:{{ viewDetail.checkVenue || '-' }}</div>
|
|
|
<div class="view-summary__meta">
|
|
<div class="view-summary__meta">
|
|
|
<span>检查类别:{{ viewDetail.venueCategoryName || '-' }}</span>
|
|
<span>检查类别:{{ viewDetail.venueCategoryName || '-' }}</span>
|
|
|
- <span>创建人:{{ viewDetail.createdBy || '李小红' }}</span>
|
|
|
|
|
- <span>创建时间:{{ viewDetail.createdAt || '2026-01-06 12:20:30' }}</span>
|
|
|
|
|
|
|
+ <span>创建人:{{ viewDetail.createdBy || '-' }}</span>
|
|
|
|
|
+ <span>创建时间:{{ viewDetail.createdAt || '-' }}</span>
|
|
|
</div>
|
|
</div>
|
|
|
</section>
|
|
</section>
|
|
|
|
|
|
|
@@ -89,7 +89,7 @@
|
|
|
<div class="row">
|
|
<div class="row">
|
|
|
<div class="col">
|
|
<div class="col">
|
|
|
<div class="label">检查单所属类别名称:</div>
|
|
<div class="label">检查单所属类别名称:</div>
|
|
|
- <div class="value">{{ viewDetail.checklistCategoryName || '-' }}</div>
|
|
|
|
|
|
|
+ <div class="value">{{ viewDetail.categoryName || '-' }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="col">
|
|
<div class="col">
|
|
|
<div class="label">检查单模版名称:</div>
|
|
<div class="label">检查单模版名称:</div>
|
|
@@ -127,7 +127,7 @@
|
|
|
</div>
|
|
</div>
|
|
|
<div class="col">
|
|
<div class="col">
|
|
|
<div class="label">业务工作:</div>
|
|
<div class="label">业务工作:</div>
|
|
|
- <div class="value">{{ viewDetail.businessWork || '动火作业' }}</div>
|
|
|
|
|
|
|
+ <div class="value">{{ viewDetail.businessWork || '-' }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -313,7 +313,6 @@
|
|
|
AREA_CHECK_PLAN_FORM_DATA as AREA_CHECK_PLAN_FORM_DATA_IMPORT,
|
|
AREA_CHECK_PLAN_FORM_DATA as AREA_CHECK_PLAN_FORM_DATA_IMPORT,
|
|
|
AREA_CHECK_PLAN_FORM_RULES as AREA_CHECK_PLAN_FORM_RULES_IMPORT,
|
|
AREA_CHECK_PLAN_FORM_RULES as AREA_CHECK_PLAN_FORM_RULES_IMPORT,
|
|
|
CHECK_FREQUENCY_OPTIONS as CHECK_FREQUENCY_OPTIONS_IMPORT,
|
|
CHECK_FREQUENCY_OPTIONS as CHECK_FREQUENCY_OPTIONS_IMPORT,
|
|
|
- CHECKLIST_CATEGORY_OPTIONS as CHECKLIST_CATEGORY_OPTIONS_IMPORT,
|
|
|
|
|
} from '../configs/form';
|
|
} from '../configs/form';
|
|
|
import type { AreaCheckPlanRecord } from '../configs/types';
|
|
import type { AreaCheckPlanRecord } from '../configs/types';
|
|
|
import { AREA_CHECK_PLAN_STATUS_LABEL } from '../configs/status';
|
|
import { AREA_CHECK_PLAN_STATUS_LABEL } from '../configs/status';
|
|
@@ -331,6 +330,7 @@
|
|
|
queryCheckListTemplateNameList,
|
|
queryCheckListTemplateNameList,
|
|
|
type ChecklistTemplate,
|
|
type ChecklistTemplate,
|
|
|
} from '@/api/production-safety-system';
|
|
} from '@/api/production-safety-system';
|
|
|
|
|
+ import { queryDictTypeDetail } from '@/api/dict';
|
|
|
|
|
|
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
|
const route = useRoute();
|
|
const route = useRoute();
|
|
@@ -345,9 +345,6 @@
|
|
|
const AREA_CHECK_PLAN_FORM_DATA = AREA_CHECK_PLAN_FORM_DATA_IMPORT ?? {};
|
|
const AREA_CHECK_PLAN_FORM_DATA = AREA_CHECK_PLAN_FORM_DATA_IMPORT ?? {};
|
|
|
const AREA_CHECK_PLAN_FORM_RULES = AREA_CHECK_PLAN_FORM_RULES_IMPORT ?? {};
|
|
const AREA_CHECK_PLAN_FORM_RULES = AREA_CHECK_PLAN_FORM_RULES_IMPORT ?? {};
|
|
|
const CHECK_FREQUENCY_OPTIONS = CHECK_FREQUENCY_OPTIONS_IMPORT ?? [];
|
|
const CHECK_FREQUENCY_OPTIONS = CHECK_FREQUENCY_OPTIONS_IMPORT ?? [];
|
|
|
- const CHECKLIST_CATEGORY_OPTIONS = Array.isArray(CHECKLIST_CATEGORY_OPTIONS_IMPORT)
|
|
|
|
|
- ? CHECKLIST_CATEGORY_OPTIONS_IMPORT
|
|
|
|
|
- : [];
|
|
|
|
|
|
|
|
|
|
const { ruleFormData, formRules, ruleFormConfig, cloneRuleFormData, beforeRouteLeave } = useFormConfigHook(
|
|
const { ruleFormData, formRules, ruleFormConfig, cloneRuleFormData, beforeRouteLeave } = useFormConfigHook(
|
|
|
AREA_CHECK_PLAN_FORM_CONFIG,
|
|
AREA_CHECK_PLAN_FORM_CONFIG,
|
|
@@ -404,7 +401,21 @@
|
|
|
setDeptNameFromCascader(hospitalLeaderDeptCascaderRef.value, 'hospitalLeaderDeptName');
|
|
setDeptNameFromCascader(hospitalLeaderDeptCascaderRef.value, 'hospitalLeaderDeptName');
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- // 检查单模版类别:使用 form 静态选项,不请求接口
|
|
|
|
|
|
|
+ // 检查单模版类别:使用 admin/dict/queryDictTypeDetail 接口
|
|
|
|
|
+ const checklistCategoryOptions = ref<Array<{ label: string; value: string }>>([]);
|
|
|
|
|
+ const loadChecklistCategoryOptions = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await queryDictTypeDetail('checklist_template');
|
|
|
|
|
+ const list = res?.sysDictDataList ?? [];
|
|
|
|
|
+ checklistCategoryOptions.value = list.map((item) => ({
|
|
|
|
|
+ label: item.itemValue,
|
|
|
|
|
+ value: item.itemCode,
|
|
|
|
|
+ }));
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ console.error('获取检查单模版类别字典失败:', e);
|
|
|
|
|
+ checklistCategoryOptions.value = [];
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
// 检查单模版名称:来自接口,可按类别筛选
|
|
// 检查单模版名称:来自接口,可按类别筛选
|
|
|
const checklistTemplateOptions = ref<Array<{ label: string; value: string }>>([]);
|
|
const checklistTemplateOptions = ref<Array<{ label: string; value: string }>>([]);
|
|
|
const allChecklistTemplates = ref<ChecklistTemplate[]>([]);
|
|
const allChecklistTemplates = ref<ChecklistTemplate[]>([]);
|
|
@@ -429,7 +440,7 @@
|
|
|
const res = await queryCheckListTemplateNameList();
|
|
const res = await queryCheckListTemplateNameList();
|
|
|
const list = ((res as { data?: ChecklistTemplate[] })?.data ?? (res as ChecklistTemplate[] | undefined)) || [];
|
|
const list = ((res as { data?: ChecklistTemplate[] })?.data ?? (res as ChecklistTemplate[] | undefined)) || [];
|
|
|
allChecklistTemplates.value = list;
|
|
allChecklistTemplates.value = list;
|
|
|
- const currentCategoryName = ruleFormData.checklistCategoryName as string | undefined;
|
|
|
|
|
|
|
+ const currentCategoryName = ruleFormData.categoryName as string | undefined;
|
|
|
updateChecklistTemplateOptionsByCategory(currentCategoryName);
|
|
updateChecklistTemplateOptionsByCategory(currentCategoryName);
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
|
console.error('获取检查单模版名称列表失败:', e);
|
|
console.error('获取检查单模版名称列表失败:', e);
|
|
@@ -450,17 +461,19 @@
|
|
|
const computedFormConfig = computed(() => {
|
|
const computedFormConfig = computed(() => {
|
|
|
const base = isViewMode.value ? viewFormConfig.value : cloneDeep(AREA_CHECK_PLAN_FORM_CONFIG);
|
|
const base = isViewMode.value ? viewFormConfig.value : cloneDeep(AREA_CHECK_PLAN_FORM_CONFIG);
|
|
|
return base.map((item) => {
|
|
return base.map((item) => {
|
|
|
- if (item.prop === 'checklistCategoryName') {
|
|
|
|
|
|
|
+ if (item.prop === 'categoryCode') {
|
|
|
|
|
+ const opts = checklistCategoryOptions.value;
|
|
|
return {
|
|
return {
|
|
|
...item,
|
|
...item,
|
|
|
- selectOptions: CHECKLIST_CATEGORY_OPTIONS,
|
|
|
|
|
|
|
+ selectOptions: opts,
|
|
|
componentProps: {
|
|
componentProps: {
|
|
|
...(item.componentProps || {}),
|
|
...(item.componentProps || {}),
|
|
|
onChange: (val: string) => {
|
|
onChange: (val: string) => {
|
|
|
- ruleFormData.checklistCategoryName = val;
|
|
|
|
|
- (ruleFormData as Record<string, unknown>).checklistCategoryCode = val;
|
|
|
|
|
|
|
+ const opt = opts.find((o) => o.value === val);
|
|
|
|
|
+ ruleFormData.categoryName = opt?.label ?? '';
|
|
|
|
|
+ (ruleFormData as Record<string, unknown>).categoryCode = val;
|
|
|
ruleFormData.checklistTemplateName = '';
|
|
ruleFormData.checklistTemplateName = '';
|
|
|
- updateChecklistTemplateOptionsByCategory(val);
|
|
|
|
|
|
|
+ updateChecklistTemplateOptionsByCategory(opt?.label);
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
};
|
|
};
|
|
@@ -480,7 +493,7 @@
|
|
|
|
|
|
|
|
const basicFormRef = ref<InstanceType<typeof BasicForm>>();
|
|
const basicFormRef = ref<InstanceType<typeof BasicForm>>();
|
|
|
|
|
|
|
|
- // 查看页:详情数据(含列表假数据中的完整字段)
|
|
|
|
|
|
|
+ // 查看页:详情数据
|
|
|
const viewDetailData = ref<Record<string, unknown>>({});
|
|
const viewDetailData = ref<Record<string, unknown>>({});
|
|
|
const viewDetail = computed(() => {
|
|
const viewDetail = computed(() => {
|
|
|
const d = viewDetailData.value;
|
|
const d = viewDetailData.value;
|
|
@@ -503,29 +516,21 @@
|
|
|
hospitalLeaderCheckFrequency: d?.hospitalLeaderCheckFrequency ?? ruleFormData.hospitalLeaderCheckFrequency ?? '-',
|
|
hospitalLeaderCheckFrequency: d?.hospitalLeaderCheckFrequency ?? ruleFormData.hospitalLeaderCheckFrequency ?? '-',
|
|
|
hospitalLeaderExecutorGroupName: d?.hospitalLeaderExecutorGroupName ?? '-',
|
|
hospitalLeaderExecutorGroupName: d?.hospitalLeaderExecutorGroupName ?? '-',
|
|
|
hospitalLeaderResponsiblePerson: d?.hospitalLeaderResponsiblePerson ?? '-',
|
|
hospitalLeaderResponsiblePerson: d?.hospitalLeaderResponsiblePerson ?? '-',
|
|
|
- checklistCategoryName: d?.checklistCategoryName ?? ruleFormData.checklistCategoryName ?? '-',
|
|
|
|
|
|
|
+ categoryName: d?.categoryName ?? ruleFormData.categoryName ?? '-',
|
|
|
checklistTemplateName: d?.checklistTemplateName ?? ruleFormData.checklistTemplateName ?? '-',
|
|
checklistTemplateName: d?.checklistTemplateName ?? ruleFormData.checklistTemplateName ?? '-',
|
|
|
needOverallDesc: d?.needOverallDesc ?? ruleFormData.needOverallDesc,
|
|
needOverallDesc: d?.needOverallDesc ?? ruleFormData.needOverallDesc,
|
|
|
needInspectedSign: d?.needInspectedSign ?? ruleFormData.needInspectedSign,
|
|
needInspectedSign: d?.needInspectedSign ?? ruleFormData.needInspectedSign,
|
|
|
planStartTime: d?.planStartTime ?? ruleFormData.planStartTime ?? '-',
|
|
planStartTime: d?.planStartTime ?? ruleFormData.planStartTime ?? '-',
|
|
|
planEndTime: d?.planEndTime ?? ruleFormData.planEndTime ?? '-',
|
|
planEndTime: d?.planEndTime ?? ruleFormData.planEndTime ?? '-',
|
|
|
- createdBy: d?.createdBy ?? '李小红',
|
|
|
|
|
- createdAt: d?.createdAt ?? '2026-01-06 12:20:30',
|
|
|
|
|
- businessWork: d?.businessWork ?? '动火作业',
|
|
|
|
|
|
|
+ createdBy: d?.createdBy ?? '-',
|
|
|
|
|
+ createdAt: d?.createdAt ?? '-',
|
|
|
|
|
+ businessWork: d?.businessWork ?? '-',
|
|
|
};
|
|
};
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
const inspectionContentList = computed(() => {
|
|
const inspectionContentList = computed(() => {
|
|
|
const content = (viewDetailData.value?.checkKeyContent ?? ruleFormData.checkKeyContent) as string;
|
|
const content = (viewDetailData.value?.checkKeyContent ?? ruleFormData.checkKeyContent) as string;
|
|
|
- if (!content || typeof content !== 'string') {
|
|
|
|
|
- return [
|
|
|
|
|
- '工作场所布局是否合理,通道是否畅通;',
|
|
|
|
|
- '各种机械、电力、电气等设备的安装和使用是否符合安全技术要求;',
|
|
|
|
|
- '安全防护装置是否齐全、灵敏、有效;',
|
|
|
|
|
- '易燃易爆、有限空间和高处作业等作业场所是否符合安全条件;',
|
|
|
|
|
- '有较大危险因素和职业危害因素的科研试验场所和有关;',
|
|
|
|
|
- ];
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!content || typeof content !== 'string') return [];
|
|
|
return content.split(/[;;]/).map((s) => s.trim()).filter(Boolean);
|
|
return content.split(/[;;]/).map((s) => s.trim()).filter(Boolean);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
@@ -685,11 +690,11 @@
|
|
|
ruleFormData.hospitalLeaderDeptName = detail.hospitalLeaderDeptName ?? '';
|
|
ruleFormData.hospitalLeaderDeptName = detail.hospitalLeaderDeptName ?? '';
|
|
|
ruleFormData.hospitalLeaderDeptId = findDeptIdByName(deptTree.value, ruleFormData.hospitalLeaderDeptName as string) ?? null;
|
|
ruleFormData.hospitalLeaderDeptId = findDeptIdByName(deptTree.value, ruleFormData.hospitalLeaderDeptName as string) ?? null;
|
|
|
ruleFormData.hospitalLeaderCheckFrequency = detail.hospitalLeaderCheckFrequency ?? '';
|
|
ruleFormData.hospitalLeaderCheckFrequency = detail.hospitalLeaderCheckFrequency ?? '';
|
|
|
- (ruleFormData as Record<string, unknown>).checklistCategoryCode = detail.checklistCategoryCode ?? '';
|
|
|
|
|
- ruleFormData.checklistCategoryName = detail.checklistCategoryName ?? '';
|
|
|
|
|
|
|
+ (ruleFormData as Record<string, unknown>).categoryCode = detail.categoryCode ?? '';
|
|
|
|
|
+ ruleFormData.categoryName = detail.categoryName ?? '';
|
|
|
ruleFormData.checklistTemplateName = detail.checklistTemplateName ?? '';
|
|
ruleFormData.checklistTemplateName = detail.checklistTemplateName ?? '';
|
|
|
ruleFormData.checkKeyContent = detail.checkKeyContent ?? '';
|
|
ruleFormData.checkKeyContent = detail.checkKeyContent ?? '';
|
|
|
- updateChecklistTemplateOptionsByCategory(ruleFormData.checklistCategoryName as string | undefined);
|
|
|
|
|
|
|
+ updateChecklistTemplateOptionsByCategory(ruleFormData.categoryName as string | undefined);
|
|
|
cloneRuleFormData();
|
|
cloneRuleFormData();
|
|
|
if (isViewMode.value) {
|
|
if (isViewMode.value) {
|
|
|
loadRecordList();
|
|
loadRecordList();
|
|
@@ -720,6 +725,7 @@
|
|
|
cloneRuleFormData();
|
|
cloneRuleFormData();
|
|
|
beforeRouteLeave();
|
|
beforeRouteLeave();
|
|
|
await getDeptTreeData();
|
|
await getDeptTreeData();
|
|
|
|
|
+ await loadChecklistCategoryOptions();
|
|
|
await loadChecklistTemplateOptions();
|
|
await loadChecklistTemplateOptions();
|
|
|
if (isEditMode.value || isViewMode.value) {
|
|
if (isEditMode.value || isViewMode.value) {
|
|
|
getDetail();
|
|
getDetail();
|