Parcourir la source

dev index page

allen il y a 2 jours
Parent
commit
44ba99b2c5
21 fichiers modifiés avec 590 ajouts et 309 suppressions
  1. 63 4
      mirs-admin/src/main/java/com/mirs/biz/controller/IndexController.java
  2. 12 12
      mirs-admin/src/main/java/com/mirs/biz/domain/BrdfData.java
  3. 5 110
      mirs-admin/src/main/java/com/mirs/biz/domain/EmiMeasurement.java
  4. 14 0
      mirs-admin/src/main/java/com/mirs/biz/domain/Sample.java
  5. 4 0
      mirs-admin/src/main/java/com/mirs/biz/dto/IndexSearchDTO.java
  6. 10 0
      mirs-admin/src/main/java/com/mirs/biz/mapper/BrdfDataMapper.java
  7. 3 0
      mirs-admin/src/main/java/com/mirs/biz/mapper/EmiMeasurementMapper.java
  8. 5 0
      mirs-admin/src/main/java/com/mirs/biz/mapper/SampleMapper.java
  9. 6 0
      mirs-admin/src/main/java/com/mirs/biz/service/IBrdfDataService.java
  10. 3 0
      mirs-admin/src/main/java/com/mirs/biz/service/IEmiMeasurementService.java
  11. 5 0
      mirs-admin/src/main/java/com/mirs/biz/service/ISampleService.java
  12. 21 0
      mirs-admin/src/main/java/com/mirs/biz/service/impl/BrdfDataServiceImpl.java
  13. 6 0
      mirs-admin/src/main/java/com/mirs/biz/service/impl/EmiMeasurementServiceImpl.java
  14. 12 0
      mirs-admin/src/main/java/com/mirs/biz/service/impl/SampleServiceImpl.java
  15. 20 0
      mirs-admin/src/main/resources/mapper/manage/BrdfDataMapper.xml
  16. 4 0
      mirs-admin/src/main/resources/mapper/manage/EmiMeasurementMapper.xml
  17. 17 4
      mirs-admin/src/main/resources/mapper/manage/SampleMapper.xml
  18. 55 0
      mirs-ui/src/api/manage/index.js
  19. 254 72
      mirs-ui/src/views/index.vue
  20. 66 103
      mirs-ui/src/views/manage/sample/index.vue
  21. 5 4
      sql/biz.sql

+ 63 - 4
mirs-admin/src/main/java/com/mirs/biz/controller/IndexController.java

@@ -10,16 +10,21 @@ import com.mirs.biz.service.IBrdfDataService;
 import com.mirs.biz.service.IEmiMeasurementService;
 import com.mirs.biz.service.IIntegratedDataService;
 import com.mirs.biz.service.ISampleService;
+import com.mirs.common.core.controller.BaseController;
+import com.mirs.common.core.domain.AjaxResult;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping("/index/search")
-public class IndexController {
+public class IndexController extends BaseController {
     @Autowired
     private IBrdfDataService brdfDataService;
     @Autowired
@@ -35,16 +40,70 @@ public class IndexController {
      */
 
     @GetMapping("/getIndexInfo")
-    public IndexResultDTO getIndexInfo(IndexSearchDTO dto) {
+    public AjaxResult getIndexInfo(IndexSearchDTO dto) {
         IndexResultDTO indexResultDTO = new IndexResultDTO();
+        Sample sample = sampleService.getOne(dto.getSample());
+
+        if (sample == null) {
+            indexResultDTO.setBrdfDataList(new ArrayList<>());
+            indexResultDTO.setEmiMeasurementList(new ArrayList<>());
+            indexResultDTO.setIntegratedDataList(new ArrayList<>());
+            return success(indexResultDTO);
+        }
         List<BrdfData> brdfData = brdfDataService.selectBrdfDataList(dto.getBrdfData());
         List<EmiMeasurement> emiMeasurementList = emiMeasurementService.selectEmiMeasurementList(dto.getEmiMeasurement());
         List<IntegratedData> integratedDataList = integratedDataService.selectIntegratedDataList(dto.getIntegratedData());
-        Sample sample = sampleService.getOne(dto.getSample());
+
         indexResultDTO.setSample(sample);
         indexResultDTO.setBrdfDataList(brdfData);
         indexResultDTO.setEmiMeasurementList(emiMeasurementList);
         indexResultDTO.setIntegratedDataList(integratedDataList);
-        return indexResultDTO;
+
+        return success(indexResultDTO);
+    }
+
+    @GetMapping("/getSampleType")
+    public AjaxResult getSampleType(IndexSearchDTO dto) {
+        return success(sampleService.getSampleType(dto.getDataType()));
+    }
+
+    @GetMapping("/getSampleModel")
+    public AjaxResult getSampleModel(IndexSearchDTO dto) {
+        return success(sampleService.getSampleModel(dto));
+    }
+
+    @GetMapping("/getTemperatureK")
+    public AjaxResult getTemperatureK(IndexSearchDTO dto) {
+        if("1".equals(dto.getDataType())){
+            return success(emiMeasurementService.getTemperatureK());
+        } else {
+            return success(brdfDataService.getTemperatureK());
+        }
+    }
+
+    @GetMapping("/getAllAngle")
+    public AjaxResult getAllAngle() {
+        return success(brdfDataService.getAllAngle());
+    }
+    @GetMapping("/getOthersOptions")
+    public AjaxResult getOthersOptions(IndexSearchDTO dto) {
+        Map<String, Object> result = new HashMap<>(4);
+        result.put("sampleTypeOptions", sampleService.getSampleType(dto.getDataType()));
+        result.put("sampleModelOptions", sampleService.getSampleModel(dto));
+        if("1".equals(dto.getDataType())){
+            result.put("temperatureKOptions", emiMeasurementService.getTemperatureK());
+
+            Map<String, Object> resultMap = new HashMap<>(4);
+            resultMap.put("thetaIncidentOptions", new ArrayList<>());
+            resultMap.put("phiIncidentOptions", new ArrayList<>());
+            resultMap.put("thetaReflectedOptions", new ArrayList<>());
+            resultMap.put("phiReflectedOptions", new ArrayList<>());
+            result.put("allAngleOptions", resultMap);
+        } else {
+            result.put("temperatureKOptions", brdfDataService.getTemperatureK());
+
+            result.put("allAngleOptions", brdfDataService.getAllAngle());
+        }
+        return success(result);
     }
 }

+ 12 - 12
mirs-admin/src/main/java/com/mirs/biz/domain/BrdfData.java

@@ -33,19 +33,19 @@ public class BrdfData extends BaseEntity
 
     /** 入射天顶角θi */
     @Excel(name = "入射天顶角θi")
-    private BigDecimal thetaIncident;
+    private Integer thetaIncident;
 
     /** 入射方位角φi */
     @Excel(name = "入射方位角φi")
-    private BigDecimal phiIncident;
+    private Integer phiIncident;
 
     /** 反射天顶角θr */
     @Excel(name = "反射天顶角θr")
-    private BigDecimal thetaReflected;
+    private Integer thetaReflected;
 
     /** 反射方位角φr */
     @Excel(name = "反射方位角φr")
-    private BigDecimal phiReflected;
+    private Integer phiReflected;
 
     /** 重复测量1 */
     @Excel(name = "重复测量1")
@@ -111,39 +111,39 @@ public class BrdfData extends BaseEntity
     {
         return wavelengthUm;
     }
-    public void setThetaIncident(BigDecimal thetaIncident) 
+    public void setThetaIncident(Integer thetaIncident)
     {
         this.thetaIncident = thetaIncident;
     }
 
-    public BigDecimal getThetaIncident() 
+    public Integer getThetaIncident()
     {
         return thetaIncident;
     }
-    public void setPhiIncident(BigDecimal phiIncident) 
+    public void setPhiIncident(Integer phiIncident)
     {
         this.phiIncident = phiIncident;
     }
 
-    public BigDecimal getPhiIncident() 
+    public Integer getPhiIncident()
     {
         return phiIncident;
     }
-    public void setThetaReflected(BigDecimal thetaReflected) 
+    public void setThetaReflected(Integer thetaReflected)
     {
         this.thetaReflected = thetaReflected;
     }
 
-    public BigDecimal getThetaReflected() 
+    public Integer getThetaReflected()
     {
         return thetaReflected;
     }
-    public void setPhiReflected(BigDecimal phiReflected) 
+    public void setPhiReflected(Integer phiReflected)
     {
         this.phiReflected = phiReflected;
     }
 
-    public BigDecimal getPhiReflected() 
+    public Integer getPhiReflected()
     {
         return phiReflected;
     }

+ 5 - 110
mirs-admin/src/main/java/com/mirs/biz/domain/EmiMeasurement.java

@@ -1,6 +1,8 @@
 package com.mirs.biz.domain;
 
 import java.math.BigDecimal;
+
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.mirs.common.annotation.Excel;
@@ -12,6 +14,7 @@ import com.mirs.common.core.domain.BaseEntity;
  * @author kk
  * @date 2025-04-24
  */
+@Data
 public class EmiMeasurement extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
@@ -31,6 +34,8 @@ public class EmiMeasurement extends BaseEntity
     @Excel(name = "波段(μm)")
     private BigDecimal wavelengthUm;
 
+    private String wavelengthUmStr;
+
     /** EMI-修正1 */
     @Excel(name = "EMI-修正1")
     private BigDecimal emiCorrection1;
@@ -55,114 +60,4 @@ public class EmiMeasurement extends BaseEntity
     @Excel(name = "均值")
     private BigDecimal meanValue;
 
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-    public void setSampleModel(String sampleModel) 
-    {
-        this.sampleModel = sampleModel;
-    }
-
-    public String getSampleModel() 
-    {
-        return sampleModel;
-    }
-    public void setTemperatureK(Long temperatureK) 
-    {
-        this.temperatureK = temperatureK;
-    }
-
-    public Long getTemperatureK() 
-    {
-        return temperatureK;
-    }
-    public void setWavelengthUm(BigDecimal wavelengthUm) 
-    {
-        this.wavelengthUm = wavelengthUm;
-    }
-
-    public BigDecimal getWavelengthUm() 
-    {
-        return wavelengthUm;
-    }
-    public void setEmiCorrection1(BigDecimal emiCorrection1) 
-    {
-        this.emiCorrection1 = emiCorrection1;
-    }
-
-    public BigDecimal getEmiCorrection1() 
-    {
-        return emiCorrection1;
-    }
-    public void setEmiCorrection2(BigDecimal emiCorrection2) 
-    {
-        this.emiCorrection2 = emiCorrection2;
-    }
-
-    public BigDecimal getEmiCorrection2() 
-    {
-        return emiCorrection2;
-    }
-    public void setEmiCorrection3(BigDecimal emiCorrection3) 
-    {
-        this.emiCorrection3 = emiCorrection3;
-    }
-
-    public BigDecimal getEmiCorrection3() 
-    {
-        return emiCorrection3;
-    }
-    public void setEmiCorrection4(BigDecimal emiCorrection4) 
-    {
-        this.emiCorrection4 = emiCorrection4;
-    }
-
-    public BigDecimal getEmiCorrection4() 
-    {
-        return emiCorrection4;
-    }
-    public void setEmiCorrection5(BigDecimal emiCorrection5) 
-    {
-        this.emiCorrection5 = emiCorrection5;
-    }
-
-    public BigDecimal getEmiCorrection5() 
-    {
-        return emiCorrection5;
-    }
-    public void setMeanValue(BigDecimal meanValue) 
-    {
-        this.meanValue = meanValue;
-    }
-
-    public BigDecimal getMeanValue() 
-    {
-        return meanValue;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("sampleModel", getSampleModel())
-            .append("temperatureK", getTemperatureK())
-            .append("wavelengthUm", getWavelengthUm())
-            .append("emiCorrection1", getEmiCorrection1())
-            .append("emiCorrection2", getEmiCorrection2())
-            .append("emiCorrection3", getEmiCorrection3())
-            .append("emiCorrection4", getEmiCorrection4())
-            .append("emiCorrection5", getEmiCorrection5())
-            .append("meanValue", getMeanValue())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .toString();
-    }
 }

+ 14 - 0
mirs-admin/src/main/java/com/mirs/biz/domain/Sample.java

@@ -18,6 +18,10 @@ public class Sample extends BaseEntity
     /** 编号 */
     private Long id;
 
+    /** 数据类型 */
+    @Excel(name = "数据类型")
+    private String dataType;
+
     /** 样片类型 */
     @Excel(name = "样片类型")
     private String sampleType;
@@ -39,6 +43,15 @@ public class Sample extends BaseEntity
     {
         return id;
     }
+    public void setDataType(String dataType) 
+    {
+        this.dataType = dataType;
+    }
+
+    public String getDataType() 
+    {
+        return dataType;
+    }
     public void setSampleType(String sampleType) 
     {
         this.sampleType = sampleType;
@@ -71,6 +84,7 @@ public class Sample extends BaseEntity
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
             .append("id", getId())
+            .append("dataType", getDataType())
             .append("sampleType", getSampleType())
             .append("sampleModel", getSampleModel())
             .append("sampleImage", getSampleImage())

+ 4 - 0
mirs-admin/src/main/java/com/mirs/biz/dto/IndexSearchDTO.java

@@ -19,6 +19,9 @@ public class IndexSearchDTO extends BaseEntity {
     /** 数据类型 */
     private String dataType;
 
+    /** 样片类型 */
+    private String sampleType;
+
     /** 样片型号 */
     private String sampleModel;
 
@@ -48,6 +51,7 @@ public class IndexSearchDTO extends BaseEntity {
     public EmiMeasurement getEmiMeasurement(){
         EmiMeasurement data = new EmiMeasurement();
         BeanUtils.copyProperties(this, data);
+        data.setWavelengthUmStr(this.wavelengthUm);
         return data;
     }
     public IntegratedData getIntegratedData(){

+ 10 - 0
mirs-admin/src/main/java/com/mirs/biz/mapper/BrdfDataMapper.java

@@ -58,4 +58,14 @@ public interface BrdfDataMapper
      * @return 结果
      */
     public int deleteBrdfDataByIds(Long[] ids);
+
+    List getThetaIncident();
+
+    List getPhiIncident();
+
+    List getThetaReflected();
+
+    List getPhiReflected();
+
+    List getTemperatureK();
 }

+ 3 - 0
mirs-admin/src/main/java/com/mirs/biz/mapper/EmiMeasurementMapper.java

@@ -2,6 +2,7 @@ package com.mirs.biz.mapper;
 
 import java.util.List;
 import com.mirs.biz.domain.EmiMeasurement;
+import com.mirs.biz.dto.IndexSearchDTO;
 
 /**
  * 测量数据Mapper接口
@@ -58,4 +59,6 @@ public interface EmiMeasurementMapper
      * @return 结果
      */
     public int deleteEmiMeasurementByIds(Long[] ids);
+
+    List getTemperatureK();
 }

+ 5 - 0
mirs-admin/src/main/java/com/mirs/biz/mapper/SampleMapper.java

@@ -2,6 +2,7 @@ package com.mirs.biz.mapper;
 
 import java.util.List;
 import com.mirs.biz.domain.Sample;
+import com.mirs.biz.dto.IndexSearchDTO;
 
 /**
  * 样片管理Mapper接口
@@ -60,4 +61,8 @@ public interface SampleMapper
     public int deleteSampleByIds(Long[] ids);
 
     Sample getOne(Sample sample);
+
+    List getSampleType(String dataType);
+
+    List getSampleModel(IndexSearchDTO dto);
 }

+ 6 - 0
mirs-admin/src/main/java/com/mirs/biz/service/IBrdfDataService.java

@@ -1,6 +1,8 @@
 package com.mirs.biz.service;
 
 import java.util.List;
+import java.util.Map;
+
 import com.mirs.biz.domain.BrdfData;
 
 /**
@@ -60,4 +62,8 @@ public interface IBrdfDataService
     public int deleteBrdfDataById(Long id);
 
     String importBrdfData(List<BrdfData> brdfDataList, boolean updateSupport, String operName);
+
+    Map getAllAngle();
+
+    List getTemperatureK();
 }

+ 3 - 0
mirs-admin/src/main/java/com/mirs/biz/service/IEmiMeasurementService.java

@@ -2,6 +2,7 @@ package com.mirs.biz.service;
 
 import java.util.List;
 import com.mirs.biz.domain.EmiMeasurement;
+import com.mirs.biz.dto.IndexSearchDTO;
 
 /**
  * 测量数据Service接口
@@ -60,4 +61,6 @@ public interface IEmiMeasurementService
     public int deleteEmiMeasurementById(Long id);
 
     String importEmiMeasurement(List<EmiMeasurement> emiMeasurementList, boolean updateSupport, String operName);
+
+    List getTemperatureK();
 }

+ 5 - 0
mirs-admin/src/main/java/com/mirs/biz/service/ISampleService.java

@@ -2,6 +2,7 @@ package com.mirs.biz.service;
 
 import java.util.List;
 import com.mirs.biz.domain.Sample;
+import com.mirs.biz.dto.IndexSearchDTO;
 
 /**
  * 样片管理Service接口
@@ -60,4 +61,8 @@ public interface ISampleService
     public int deleteSampleById(Long id);
 
     Sample getOne(Sample sample);
+
+    List getSampleType(String dataType);
+
+    List getSampleModel(IndexSearchDTO dto);
 }

+ 21 - 0
mirs-admin/src/main/java/com/mirs/biz/service/impl/BrdfDataServiceImpl.java

@@ -1,6 +1,8 @@
 package com.mirs.biz.service.impl;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import com.mirs.common.core.domain.entity.SysUser;
 import com.mirs.common.exception.ServiceException;
@@ -150,4 +152,23 @@ public class BrdfDataServiceImpl implements IBrdfDataService
         }
         return successMsg.toString();
     }
+
+    @Override
+    public Map getAllAngle() {
+        Map<String, List> resultMap = new HashMap<>(8);
+        List thetaIncidentOptions = brdfDataMapper.getThetaIncident();
+        List phiIncidentOptions = brdfDataMapper.getPhiIncident();
+        List thetaReflectedOptions = brdfDataMapper.getThetaReflected();
+        List phiReflectedOptions = brdfDataMapper.getPhiReflected();
+        resultMap.put("thetaIncidentOptions", thetaIncidentOptions);
+        resultMap.put("phiIncidentOptions", phiIncidentOptions);
+        resultMap.put("thetaReflectedOptions", thetaReflectedOptions);
+        resultMap.put("phiReflectedOptions", phiReflectedOptions);
+        return resultMap;
+    }
+
+    @Override
+    public List getTemperatureK() {
+        return brdfDataMapper.getTemperatureK();
+    }
 }

+ 6 - 0
mirs-admin/src/main/java/com/mirs/biz/service/impl/EmiMeasurementServiceImpl.java

@@ -3,6 +3,7 @@ package com.mirs.biz.service.impl;
 import java.util.List;
 
 import com.mirs.biz.domain.BrdfData;
+import com.mirs.biz.dto.IndexSearchDTO;
 import com.mirs.common.exception.ServiceException;
 import com.mirs.common.utils.DateUtils;
 import com.mirs.common.utils.StringUtils;
@@ -147,4 +148,9 @@ public class EmiMeasurementServiceImpl implements IEmiMeasurementService
         }
         return successMsg.toString();
     }
+
+    @Override
+    public List getTemperatureK() {
+        return emiMeasurementMapper.getTemperatureK();
+    }
 }

+ 12 - 0
mirs-admin/src/main/java/com/mirs/biz/service/impl/SampleServiceImpl.java

@@ -1,6 +1,8 @@
 package com.mirs.biz.service.impl;
 
 import java.util.List;
+
+import com.mirs.biz.dto.IndexSearchDTO;
 import com.mirs.common.utils.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -98,4 +100,14 @@ public class SampleServiceImpl implements ISampleService
     public Sample getOne(Sample sample) {
         return sampleMapper.getOne(sample);
     }
+
+    @Override
+    public List getSampleType(String dataType) {
+        return sampleMapper.getSampleType(dataType);
+    }
+
+    @Override
+    public List getSampleModel(IndexSearchDTO dto) {
+        return sampleMapper.getSampleModel(dto);
+    }
 }

+ 20 - 0
mirs-admin/src/main/resources/mapper/manage/BrdfDataMapper.xml

@@ -123,4 +123,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+
+    <select id="getTemperatureK" parameterType="String" resultType="HashMap">
+        select distinct temperature_k name, temperature_k value from biz_brdf_data_t ORDER BY temperature_k asc
+    </select>
+
+    <select id="getThetaIncident" resultType="HashMap">
+        select distinct theta_incident name, theta_incident value from biz_brdf_data_t order by theta_incident asc
+    </select>
+
+    <select id="getPhiIncident" resultType="HashMap">
+        select distinct phi_incident name, phi_incident value from biz_brdf_data_t order by phi_incident asc
+    </select>
+
+    <select id="getThetaReflected" resultType="HashMap">
+        select distinct theta_reflected name, theta_reflected value from biz_brdf_data_t order by theta_reflected asc
+    </select>
+
+    <select id="getPhiReflected" resultType="HashMap">
+        select distinct phi_reflected name, phi_reflected value from biz_brdf_data_t order by phi_reflected asc
+    </select>
 </mapper>

+ 4 - 0
mirs-admin/src/main/resources/mapper/manage/EmiMeasurementMapper.xml

@@ -103,4 +103,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+    <select id="getTemperatureK" parameterType="String" resultType="HashMap">
+        select distinct temperature_k name, temperature_k value from biz_emi_measurement_t ORDER BY temperature_k asc
+    </select>
+
 </mapper>

+ 17 - 4
mirs-admin/src/main/resources/mapper/manage/SampleMapper.xml

@@ -6,6 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     
     <resultMap type="Sample" id="SampleResult">
         <result property="id"    column="id"    />
+        <result property="dataType"    column="data_type"    />
         <result property="sampleType"    column="sample_type"    />
         <result property="sampleModel"    column="sample_model"    />
         <result property="sampleImage"    column="sample_image"    />
@@ -16,16 +17,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectSampleVo">
-        select id, sample_type, sample_model, sample_image, create_by, create_time, update_by, update_time from biz_sample_t
+        select id, data_type, sample_type, sample_model, sample_image, create_by, create_time, update_by, update_time from biz_sample_t
     </sql>
 
     <select id="selectSampleList" parameterType="Sample" resultMap="SampleResult">
         <include refid="selectSampleVo"/>
         <where>  
-            <if test="sampleType != null  and sampleType != ''"> and sample_type = #{sampleType}</if>
-            <if test="sampleModel != null  and sampleModel != ''"> and sample_model = #{sampleModel}</if>
+            <if test="dataType != null  and dataType != ''"> and data_type = #{dataType}</if>
+            <if test="sampleType != null  and sampleType != ''"> and sample_type like concat('%', #{sampleType}, '%')</if>
+            <if test="sampleModel != null  and sampleModel != ''"> and sample_model like concat('%', #{sampleModel}, '%')</if>
         </where>
     </select>
+
     <select id="getOne" parameterType="Sample" resultMap="SampleResult">
         <include refid="selectSampleVo"/>
         <where>
@@ -34,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         limit 1
     </select>
-
+    
     <select id="selectSampleById" parameterType="Long" resultMap="SampleResult">
         <include refid="selectSampleVo"/>
         where id = #{id}
@@ -43,6 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <insert id="insertSample" parameterType="Sample" useGeneratedKeys="true" keyProperty="id">
         insert into biz_sample_t
         <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="dataType != null">data_type,</if>
             <if test="sampleType != null">sample_type,</if>
             <if test="sampleModel != null">sample_model,</if>
             <if test="sampleImage != null">sample_image,</if>
@@ -52,6 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateTime != null">update_time,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="dataType != null">#{dataType},</if>
             <if test="sampleType != null">#{sampleType},</if>
             <if test="sampleModel != null">#{sampleModel},</if>
             <if test="sampleImage != null">#{sampleImage},</if>
@@ -65,6 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateSample" parameterType="Sample">
         update biz_sample_t
         <trim prefix="SET" suffixOverrides=",">
+            <if test="dataType != null">data_type = #{dataType},</if>
             <if test="sampleType != null">sample_type = #{sampleType},</if>
             <if test="sampleModel != null">sample_model = #{sampleModel},</if>
             <if test="sampleImage != null">sample_image = #{sampleImage},</if>
@@ -86,4 +92,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+
+    <select id="getSampleType" parameterType="String" resultType="HashMap">
+        select sample_type name, sample_type value from biz_sample_t where data_type = #{value}
+    </select>
+    <select id="getSampleModel" parameterType="Sample" resultType="HashMap">
+        select sample_model name, sample_model value from biz_sample_t where data_type = #{dataType}
+    </select>
 </mapper>

+ 55 - 0
mirs-ui/src/api/manage/index.js

@@ -0,0 +1,55 @@
+import request from "@/utils/request";
+
+// 查询主页数据列表
+export function getIndexInfo(query) {
+  return request({
+    url: "/index/search/getIndexInfo",
+    method: "get",
+    params: query,
+  });
+}
+
+// 查询主页样本类型
+export function getSampleType(query) {
+  return request({
+    url: "/index/search/getSampleType",
+    method: "get",
+    params: query,
+  });
+}
+
+// 查询主页样本类型
+export function getSampleModel(query) {
+  return request({
+    url: "/index/search/getSampleModel",
+    method: "get",
+    params: query,
+  });
+}
+
+// 查询主页表面温度
+export function getTemperatureK(query) {
+  return request({
+    url: "/index/search/getTemperatureK",
+    method: "get",
+    params: query,
+  });
+}
+
+// 查询主页BRDF所有角
+export function getAllAngle(query) {
+  return request({
+    url: "/index/search/getAllAngle",
+    method: "get",
+    params: query,
+  });
+}
+
+// 查询主页BRDF所有角
+export function getOthersOptions(query) {
+  return request({
+    url: "/index/search/getOthersOptions",
+    method: "get",
+    params: query,
+  });
+}

+ 254 - 72
mirs-ui/src/views/index.vue

@@ -9,82 +9,191 @@
       label-width="100px"
     >
       <el-form-item label="数据类型" prop="dataType">
-        <el-radio
-          v-for="dict in dict.type.biz_data_type"
-          :key="dict.value"
-          v-model="queryParams.dataType"
-          :label="dict.value"
-          @change="changeDataType"
-          >{{ dict.label }}</el-radio
-        >
+        <el-radio-group v-model="queryParams.dataType" @change="changeDataType">
+          <el-radio
+            v-for="item in dict.type.biz_data_type"
+            :key="item.value"
+            :label="item.value"
+          >
+            {{ item.label }}
+          </el-radio>
+        </el-radio-group>
       </el-form-item>
       <el-form-item label="类型" prop="sampleType">
-        <el-input
+        <!-- <el-input
           v-model="queryParams.sampleType"
           placeholder="请输入类型"
           clearable
           @keyup.enter.native="handleQuery"
-        />
+        /> -->
+        <el-select
+          v-model="queryParams.sampleType"
+          placeholder="请选择"
+          clearable
+          @keyup.enter.native="handleQuery"
+        >
+          <el-option
+            v-for="item in options.sampleTypeOption"
+            :key="item.value"
+            :label="item.name"
+            :value="item.value"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="型号" prop="sampleModel">
-        <el-input
+        <!-- <el-input
           v-model="queryParams.sampleModel"
           placeholder="请输入型号"
           clearable
           @keyup.enter.native="handleQuery"
-        />
+        /> -->
+        <el-select
+          v-model="queryParams.sampleModel"
+          placeholder="请选择"
+          clearable
+          @keyup.enter.native="handleQuery"
+        >
+          <el-option
+            v-for="item in options.sampleModelOption"
+            :key="item.value"
+            :label="item.name"
+            :value="item.value"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="表面温度" prop="temperatureK">
-        <el-input
+        <!-- <el-input
           v-model="queryParams.temperatureK"
           placeholder="请输入表面温度"
           clearable
           @keyup.enter.native="handleQuery"
-        />
+        /> -->
+        <el-select
+          v-model="queryParams.temperatureK"
+          placeholder="请选择"
+          clearable
+          @keyup.enter.native="handleQuery"
+        >
+          <el-option
+            v-for="item in options.temperatureKOption"
+            :key="item.value"
+            :label="item.name"
+            :value="item.value"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="光谱波段" prop="wavelengthUm">
-        <el-input
+        <!-- <el-input
           v-model="queryParams.wavelengthUm"
           placeholder="请输入光谱波段"
           clearable
           @keyup.enter.native="handleQuery"
-        />
+        /> -->
+        <el-select
+          v-model="queryParams.wavelengthUm"
+          placeholder="请选择"
+          clearable
+          @keyup.enter.native="handleQuery"
+        >
+          <el-option
+            v-for="item in dict.type.biz_wavelength_um"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="入射天顶角θi" prop="thetaIncident">
-        <el-input
+        <!-- <el-input
           v-model="queryParams.thetaIncident"
           placeholder="请输入射天顶角θi"
           clearable
           :disabled="queryParams.dataType == 1"
           @keyup.enter.native="handleQuery"
-        />
+        /> -->
+        <el-select
+          v-model="queryParams.thetaIncident"
+          placeholder="请选择"
+          clearable
+          :disabled="queryParams.dataType == 1"
+          @keyup.enter.native="handleQuery"
+        >
+          <el-option
+            v-for="item in options.allAngleOption.thetaIncidentOptions"
+            :key="item.value"
+            :label="item.name"
+            :value="item.value"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="入射方位角φi" prop="phiIncident">
-        <el-input
+        <!-- <el-input
           v-model="queryParams.phiIncident"
           placeholder="请输入入射方位角φi"
           clearable
           :disabled="queryParams.dataType == 1"
           @keyup.enter.native="handleQuery"
-        />
+        /> -->
+        <el-select
+          v-model="queryParams.phiIncident"
+          placeholder="请选择"
+          clearable
+          :disabled="queryParams.dataType == 1"
+          @keyup.enter.native="handleQuery"
+        >
+          <el-option
+            v-for="item in options.allAngleOption.phiIncidentOptions"
+            :key="item.value"
+            :label="item.name"
+            :value="item.value"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="反射天顶角θr" prop="thetaReflected">
-        <el-input
+        <!-- <el-input
           v-model="queryParams.thetaReflected"
           placeholder="请输入反射天顶角θr"
           clearable
           :disabled="queryParams.dataType == 1"
           @keyup.enter.native="handleQuery"
-        />
+        /> -->
+        <el-select
+          v-model="queryParams.thetaReflected"
+          placeholder="请选择"
+          clearable
+          :disabled="queryParams.dataType == 1"
+          @keyup.enter.native="handleQuery"
+        >
+          <el-option
+            v-for="item in options.allAngleOption.thetaReflectedOptions"
+            :key="item.value"
+            :label="item.name"
+            :value="item.value"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="反射方位角φr" prop="phiReflected">
-        <el-input
+        <!-- <el-input
           v-model="queryParams.phiReflected"
           placeholder="请输入反射方位角φr"
           clearable
           :disabled="queryParams.dataType == 1"
           @keyup.enter.native="handleQuery"
-        />
+        /> -->
+        <el-select
+          v-model="queryParams.phiReflected"
+          placeholder="请选择"
+          clearable
+          :disabled="queryParams.dataType == 1"
+          @keyup.enter.native="handleQuery"
+        >
+          <el-option
+            v-for="item in options.allAngleOption.phiReflectedOptions"
+            :key="item.value"
+            :label="item.name"
+            :value="item.value"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button
@@ -118,11 +227,7 @@
                 fit="contain"
                 :preview-src-list="[sampleImage]"
                 style="width: 100%; height: 100%"
-              >
-                <!-- <div slot="placeholder" class="image-slot">
-                <i class="el-icon-picture-outline"></i>
-              </div> -->
-              </el-image>
+              />
             </div>
           </el-card>
 
@@ -131,7 +236,7 @@
             <div slot="header" class="clearfix">
               <span>EMI修正折线图</span>
             </div>
-            <div ref="chart"></div>
+            <div ref="chart" />
           </el-card>
         </div>
 
@@ -142,8 +247,13 @@
             <div slot="header" class="clearfix">
               <span>测量数据表</span>
             </div>
-            <div>
-              <el-table :data="emiMeasurementList" style="width: 100%">
+            <div class="table-container">
+              <el-table
+                :data="emiMeasurementList"
+                style="width: 100%"
+                height="100%"
+                lazy
+              >
                 <el-table-column prop="sampleModel" label="样片型号" />
                 <el-table-column prop="temperatureK" label="温度(K)" />
                 <el-table-column prop="wavelengthUm" label="波段(μm)" />
@@ -162,8 +272,13 @@
             <div slot="header" class="clearfix">
               <span>积分数据表</span>
             </div>
-            <div>
-              <el-table :data="integratedDataList" style="width: 100%">
+            <div class="table-container">
+              <el-table
+                :data="integratedDataList"
+                style="width: 100%"
+                height="100%"
+                lazy
+              >
                 <el-table-column prop="sampleModel" label="样片型号" />
                 <el-table-column prop="temperatureK" label="温度(K)" />
                 <el-table-column prop="wavelengthUm" label="波段(μm)" />
@@ -194,11 +309,7 @@
                 fit="contain"
                 :preview-src-list="[sampleImage]"
                 style="width: 100%; height: 100%"
-              >
-                <!-- <div slot="placeholder" class="image-slot">
-                <i class="el-icon-picture-outline"></i>
-              </div> -->
-              </el-image>
+              />
             </div>
           </el-card>
         </div>
@@ -209,8 +320,13 @@
             <div slot="header" class="clearfix">
               <span>测量数据表</span>
             </div>
-            <div>
-              <el-table :data="brdfDataList" style="width: 100%">
+            <div class="table-container">
+              <el-table
+                :data="brdfDataList"
+                style="width: 100%"
+                height="100%"
+                lazy
+              >
                 <el-table-column prop="sampleModel" label="样片型号" />
                 <el-table-column prop="temperatureK" label="温度(K)" />
                 <el-table-column prop="wavelengthUm" label="光谱(μm)" />
@@ -236,10 +352,10 @@
 
 <script>
 import * as echarts from "echarts";
-import { getIndexInfo } from "@/api/manage/index";
+import { getIndexInfo, getOthersOptions } from "@/api/manage/index";
 export default {
   name: "Index",
-  dicts: ["biz_data_type"],
+  dicts: ["biz_data_type", "biz_wavelength_um"],
   data() {
     return {
       // 遮罩层
@@ -249,8 +365,6 @@ export default {
       // 版本号
       queryParams: {
         dataType: "1",
-        pageNum: 1,
-        pageSize: 10,
         sampleType: null,
         sampleModel: null,
         temperatureK: null,
@@ -260,6 +374,17 @@ export default {
         thetaReflected: null,
         phiReflected: null,
       },
+      options: {
+        sampleTypeOption: [],
+        sampleModelOption: [],
+        temperatureKOption: [],
+        allAngleOption: {
+          thetaIncidentOptions: [],
+          phiIncidentOptions: [],
+          thetaReflectedOptions: [],
+          phiReflectedList: [],
+        },
+      },
       showResult: false,
       sampleImage: null,
       chart: null,
@@ -269,31 +394,51 @@ export default {
     };
   },
   created() {},
-  mounted() {},
+  mounted() {
+    this.changeDataType("1");
+  },
 
   methods: {
     // 查询按钮
     handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.loading = true;
-      this.getList();
+      if (!this.queryParams.sampleType || !this.queryParams.sampleModel) {
+        this.$message({
+          message: "请选择类型和型号",
+          type: "warning",
+        });
+      } else {
+        this.loading = true;
+        this.getList();
+      }
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.resetForm("queryForm");
+      const dataType = this.queryParams.dataType;
+      // this.resetForm("queryForm");
       this.showResult = false;
+      this.changeDataType(dataType);
     },
     getList() {
       console.info(
         "process.env.VUE_APP_BASE_API:" + process.env.VUE_APP_BASE_API
       );
       getIndexInfo(this.queryParams).then((response) => {
-        this.sample = response.sample;
-        this.sampleImage =
-          process.env.VUE_APP_BASE_API + response.sample.sampleImage;
-        this.brdfDataList = response.brdfDataList;
-        this.emiMeasurementList = response.emiMeasurementList;
-        this.integratedDataList = response.integratedDataList;
+        const data = response.data;
+        this.sample = data.sample;
+        if (data.sample == null) {
+          this.$message({
+            message: "没有查到相关数据",
+            type: "warning",
+          });
+          this.sampleImage = require("@/assets/404_images/404.png");
+        } else {
+          this.sampleImage =
+            process.env.VUE_APP_BASE_API + data.sample.sampleImage;
+        }
+
+        this.brdfDataList = data.brdfDataList;
+        this.emiMeasurementList = data.emiMeasurementList;
+        this.integratedDataList = data.integratedDataList;
         this.showResult = true;
         this.$nextTick(() => {
           this.initChart();
@@ -301,12 +446,28 @@ export default {
         this.loading = false;
       });
     },
-    changeDataType() {
+    changeDataType(val) {
       this.showResult = false;
-      this.queryParams.thetaIncident = null;
-      this.queryParams.phiIncident = null;
-      this.queryParams.thetaReflected = null;
-      this.queryParams.phiReflected = null;
+      this.queryParams = {
+        dataType: val,
+        sampleType: null,
+        sampleModel: null,
+        temperatureK: null,
+        wavelengthUm: null,
+        thetaIncident: null,
+        phiIncident: null,
+        thetaReflected: null,
+        phiReflected: null,
+      };
+      const params = {
+        dataType: this.queryParams.dataType,
+      };
+      getOthersOptions(params).then((resp) => {
+        this.options.sampleTypeOption = resp.data.sampleTypeOptions;
+        this.options.sampleModelOption = resp.data.sampleModelOptions;
+        this.options.temperatureKOption = resp.data.temperatureKOptions;
+        this.options.allAngleOption = resp.data.allAngleOptions;
+      });
     },
     // 修改 initChart 方法
     initChart() {
@@ -331,18 +492,18 @@ export default {
       // 准备系列数据
       const series = [];
       const emiFields = [
-        "emiCorrection1",
-        "emiCorrection2",
-        "emiCorrection3",
-        "emiCorrection4",
-        "emiCorrection5",
+        { field: "emiCorrection1", name: "EMI-修正1" },
+        { field: "emiCorrection2", name: "EMI-修正2" },
+        { field: "emiCorrection3", name: "EMI-修正3" },
+        { field: "emiCorrection4", name: "EMI-修正4" },
+        { field: "emiCorrection5", name: "EMI-修正5" },
       ];
 
-      emiFields.forEach((field) => {
+      emiFields.forEach((item) => {
         series.push({
-          name: field,
+          name: item.name, // 使用中文名称
           type: "line",
-          data: this.emiMeasurementList.map((item) => item[field]),
+          data: this.emiMeasurementList.map((row) => row[item.field]),
           smooth: true,
           symbol: "circle",
           symbolSize: 8,
@@ -352,6 +513,9 @@ export default {
         });
       });
 
+      // 准备图例数据(使用中文名称)
+      const legendData = emiFields.map((item) => item.name);
+
       const option = {
         title: {
           text: "Emi Correction 折线图",
@@ -364,7 +528,7 @@ export default {
           },
         },
         legend: {
-          data: emiFields,
+          data: legendData, // 使用中文名称的图例
           bottom: 10,
         },
         grid: {
@@ -487,12 +651,30 @@ export default {
       overflow: hidden;
 
       ::v-deep .el-card__body {
-        height: calc(100% - 57px);
-        padding: 0;
+        // height: calc(100% - 57px);
+        // padding: 0;
 
         > div {
           height: 100%;
         }
+        height: calc(100% - 57px);
+        padding: 0;
+        display: flex;
+        flex-direction: column;
+
+        > .table-container {
+          flex: 1;
+          min-height: 0;
+          overflow: hidden;
+
+          .el-table {
+            height: 100%;
+
+            ::v-deep .el-table__body-wrapper {
+              overflow-y: auto;
+            }
+          }
+        }
       }
 
       &.block-1 {

+ 66 - 103
mirs-ui/src/views/manage/sample/index.vue

@@ -1,20 +1,15 @@
 <template>
   <div class="app-container">
-    <el-form
-      :model="queryParams"
-      ref="queryForm"
-      size="small"
-      :inline="true"
-      v-show="showSearch"
-      label-width="68px"
-    >
-      <el-form-item label="样片类型" prop="sampleType">
-        <el-input
-          v-model="queryParams.sampleType"
-          placeholder="请输入样片类型"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
+      <el-form-item label="数据类型" prop="dataType">
+        <el-select v-model="queryParams.dataType" placeholder="请选择数据类型" clearable>
+          <el-option
+            v-for="dict in dict.type.biz_data_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="样片型号" prop="sampleModel">
         <el-input
@@ -25,16 +20,8 @@
         />
       </el-form-item>
       <el-form-item>
-        <el-button
-          type="primary"
-          icon="el-icon-search"
-          size="mini"
-          @click="handleQuery"
-          >搜索</el-button
-        >
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
-          >重置</el-button
-        >
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
 
@@ -47,8 +34,7 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['manage:sample:add']"
-          >新增</el-button
-        >
+        >新增</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -59,8 +45,7 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['manage:sample:edit']"
-          >修改</el-button
-        >
+        >修改</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -71,8 +56,7 @@
           :disabled="multiple"
           @click="handleDelete"
           v-hasPermi="['manage:sample:remove']"
-          >删除</el-button
-        >
+        >删除</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -82,43 +66,27 @@
           size="mini"
           @click="handleExport"
           v-hasPermi="['manage:sample:export']"
-          >导出</el-button
-        >
+        >导出</el-button>
       </el-col>
-      <right-toolbar
-        :showSearch.sync="showSearch"
-        @queryTable="getList"
-      ></right-toolbar>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
-    <el-table
-      v-loading="loading"
-      :data="sampleList"
-      @selection-change="handleSelectionChange"
-    >
+    <el-table v-loading="loading" :data="sampleList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="编号" align="center" prop="id" />
+      <el-table-column label="数据类型" align="center" prop="dataType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.biz_data_type" :value="scope.row.dataType"/>
+        </template>
+      </el-table-column>
       <el-table-column label="样片类型" align="center" prop="sampleType" />
       <el-table-column label="样片型号" align="center" prop="sampleModel" />
-      <el-table-column
-        label="样片图片"
-        align="center"
-        prop="sampleImage"
-        width="100"
-      >
+      <el-table-column label="样片图片" align="center" prop="sampleImage" width="100">
         <template slot-scope="scope">
-          <image-preview
-            :src="scope.row.sampleImage"
-            :width="50"
-            :height="50"
-          />
+          <image-preview :src="scope.row.sampleImage" :width="50" :height="50"/>
         </template>
       </el-table-column>
-      <el-table-column
-        label="操作"
-        align="center"
-        class-name="small-padding fixed-width"
-      >
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -126,22 +94,20 @@
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['manage:sample:edit']"
-            >修改</el-button
-          >
+          >修改</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
             v-hasPermi="['manage:sample:remove']"
-            >删除</el-button
-          >
+          >删除</el-button>
         </template>
       </el-table-column>
     </el-table>
 
     <pagination
-      v-show="total > 0"
+      v-show="total>0"
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
@@ -151,14 +117,21 @@
     <!-- 添加或修改样片管理对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="样片类型" prop="sampleType">
-          <el-input v-model="form.sampleType" placeholder="请输入样片类型" />
+        <el-form-item label="数据类型" prop="dataType">
+          <el-select v-model="form.dataType" placeholder="请选择数据类型">
+            <el-option
+              v-for="dict in dict.type.biz_data_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="样片型号" prop="sampleModel">
           <el-input v-model="form.sampleModel" placeholder="请输入样片型号" />
         </el-form-item>
         <el-form-item label="样片图片" prop="sampleImage">
-          <image-upload v-model="form.sampleImage" />
+          <image-upload v-model="form.sampleImage"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -170,16 +143,11 @@
 </template>
 
 <script>
-import {
-  listSample,
-  getSample,
-  delSample,
-  addSample,
-  updateSample,
-} from "@/api/manage/sample";
+import { listSample, getSample, delSample, addSample, updateSample } from "@/api/manage/sample";
 
 export default {
   name: "Sample",
+  dicts: ['biz_data_type'],
   data() {
     return {
       // 遮罩层
@@ -204,13 +172,15 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 10,
+        dataType: null,
         sampleType: null,
         sampleModel: null,
       },
       // 表单参数
       form: {},
       // 表单校验
-      rules: {},
+      rules: {
+      }
     };
   },
   created() {
@@ -220,7 +190,7 @@ export default {
     /** 查询样片管理列表 */
     getList() {
       this.loading = true;
-      listSample(this.queryParams).then((response) => {
+      listSample(this.queryParams).then(response => {
         this.sampleList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -235,13 +205,14 @@ export default {
     reset() {
       this.form = {
         id: null,
+        dataType: null,
         sampleType: null,
         sampleModel: null,
         sampleImage: null,
         createBy: null,
         createTime: null,
         updateBy: null,
-        updateTime: null,
+        updateTime: null
       };
       this.resetForm("form");
     },
@@ -257,9 +228,9 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.id);
-      this.single = selection.length !== 1;
-      this.multiple = !selection.length;
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
     },
     /** 新增按钮操作 */
     handleAdd() {
@@ -270,8 +241,8 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const id = row.id || this.ids;
-      getSample(id).then((response) => {
+      const id = row.id || this.ids
+      getSample(id).then(response => {
         this.form = response.data;
         this.open = true;
         this.title = "修改样片管理";
@@ -279,16 +250,16 @@ export default {
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate((valid) => {
+      this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.id != null) {
-            updateSample(this.form).then((response) => {
+            updateSample(this.form).then(response => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            addSample(this.form).then((response) => {
+            addSample(this.form).then(response => {
               this.$modal.msgSuccess("新增成功");
               this.open = false;
               this.getList();
@@ -300,27 +271,19 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$modal
-        .confirm('是否确认删除样片管理编号为"' + ids + '"的数据项?')
-        .then(function () {
-          return delSample(ids);
-        })
-        .then(() => {
-          this.getList();
-          this.$modal.msgSuccess("删除成功");
-        })
-        .catch(() => {});
+      this.$modal.confirm('是否确认删除样片管理编号为"' + ids + '"的数据项?').then(function() {
+        return delSample(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download(
-        "manage/sample/export",
-        {
-          ...this.queryParams,
-        },
-        `sample_${new Date().getTime()}.xlsx`
-      );
-    },
-  },
+      this.download('manage/sample/export', {
+        ...this.queryParams
+      }, `sample_${new Date().getTime()}.xlsx`)
+    }
+  }
 };
 </script>

+ 5 - 4
sql/biz.sql

@@ -1,6 +1,7 @@
 drop table if exists biz_sample_t;
 create table biz_sample_t (
   id           bigint(20)      not null auto_increment    comment '编号',
+  data_type       varchar(15)      default ''                 comment '数据类型',
   sample_type       varchar(127)      default ''                 comment '样片类型',
   sample_model      varchar(127)     default ''                 comment '样片型号',
   sample_image      varchar(255)     default ''                 comment '样片图片',
@@ -55,10 +56,10 @@ create table biz_brdf_data_t (
   sample_model       varchar(127)                     comment '样片型号',
   temperature_k      INT                             comment '温度(K)',
   wavelength_um      varchar(63)                  comment '波段(μm)',
-  theta_incident     DECIMAL(10,4)                  comment '入射天顶角θi',
-  phi_incident       DECIMAL(10,4)                    comment '入射方位角φi',
-  theta_reflected    DECIMAL(10,4)                  comment '反射天顶角θr',
-  phi_reflected      DECIMAL(10,4)                    comment '反射方位角φr',
+  theta_incident     DECIMAL(3,0)                  comment '入射天顶角θi',
+  phi_incident       DECIMAL(3,0)                    comment '入射方位角φi',
+  theta_reflected    DECIMAL(3,0)                  comment '反射天顶角θr',
+  phi_reflected      DECIMAL(3,0)                    comment '反射方位角φr',
   measurement_1      DECIMAL(10,3)                   comment '重复测量1',
   measurement_2      DECIMAL(10,3)                   comment '重复测量2',
   measurement_3      DECIMAL(10,3)                   comment '重复测量3',