diff --git a/frontend/src/views/home/tabs/model.vue b/frontend/src/views/home/tabs/model.vue index c8bd443..d29c3a3 100644 --- a/frontend/src/views/home/tabs/model.vue +++ b/frontend/src/views/home/tabs/model.vue @@ -84,6 +84,7 @@ const modeList = [ const handelOpen = async (item: any) => { modeStore.setCurrentMode(item.code); // 将模式code存入 store const {data:scene} = await getCurrentScene(); // 获取当前场景 + // AppSceneStore.setCurrentMode(scene+'');//0:省级平台,1:设备出厂,2:研发自测 AppSceneStore.setCurrentMode(scene+'');//0:省级平台,1:设备出厂,2:研发自测 await authStore.setShowMenu(); diff --git a/frontend/src/views/machine/devType/components/devTypePopup.vue b/frontend/src/views/machine/devType/components/devTypePopup.vue index d8051e8..ba17887 100644 --- a/frontend/src/views/machine/devType/components/devTypePopup.vue +++ b/frontend/src/views/machine/devType/components/devTypePopup.vue @@ -46,7 +46,7 @@ /> - + ([]) function useMetaInfo() { const dialogVisible = ref(false) @@ -138,8 +139,19 @@ const resetFormContent = () => { //定义规则 const formRuleRef = ref() + + // 使用计算属性根据 scene 动态生成规则 + const rules = computed(() => { + const dynamicRules = { ...baseRules }; + + if (scene.value === '1'){//只有楼下出厂需要展示 + dynamicRules.reportName = [{ required: true, message: '报告模版名称必选!', trigger: 'change' }]; + } + return dynamicRules; + }); + //定义校验规则 - const rules: Ref>> = ref({ + const baseRules: Record> = { name: [{ required: true, message: '设备类型名称必填!', trigger: 'blur' }], power: [ { required: true, message: '工作电源必选!', trigger: 'change' } @@ -153,13 +165,10 @@ const resetFormContent = () => { devCurr: [ { required: true, message: '额定电流必选!', trigger: 'change' } ], - reportName: [ - { required: true, message: '报告模版名称必选!', trigger: 'change' } - ], icd: [ { required: true, message: '设备关联ICD必选!', trigger: 'change' } - ], - }) + ] +}; // 关闭弹窗 @@ -193,12 +202,12 @@ const close = () => { } // 打开弹窗,可能是新增,也可能是编辑 - const open = async (sign: string, data: DevType.ResPqDevType,icd: ICD.ResICD[]) => { + const open = async (sign: string, data: DevType.ResPqDevType,icd: ICD.ResICD[],currentScene: string) => { // 重置表单 dialogFormRef.value?.resetFields() titleType.value = sign dialogVisible.value = true - + scene.value = currentScene icdOptions.value = icd if (data.id) { diff --git a/frontend/src/views/machine/devType/index.vue b/frontend/src/views/machine/devType/index.vue index b436b16..06694e9 100644 --- a/frontend/src/views/machine/devType/index.vue +++ b/frontend/src/views/machine/devType/index.vue @@ -51,6 +51,7 @@ import type { ICD } from '@/api/device/interface/icd' // }) const modeStore = useModeStore() const dictStore = useDictStore() + const appSceneStore = useAppSceneStore() // ProTable 实例 const proTable = ref() const devTypePopup = ref() @@ -96,6 +97,7 @@ import type { ICD } from '@/api/device/interface/icd' prop: 'reportName', label: '报告模版名称', minWidth: 150, + isShow: appSceneStore.currentScene == '1', enum: dictStore.getDictData('Report_Template'), fieldNames: { label: 'name', value: 'id' }, }, @@ -134,7 +136,7 @@ import type { ICD } from '@/api/device/interface/icd' // 打开 drawer(新增、编辑) const openDialog = (titleType: string, row: Partial = {}) => { - devTypePopup.value?.open(titleType, row,icdOptions.value) + devTypePopup.value?.open(titleType, row,icdOptions.value,appSceneStore.currentScene) }