From 5efd01db698683e95a63053da43aaa08fa35a185 Mon Sep 17 00:00:00 2001 From: 叶松 <2217086471@qq.com> Date: 星期五, 01 十二月 2023 11:20:28 +0800 Subject: [PATCH] Merge branch 'master' of http://111.30.93.211:10101/r/supipe --- hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java | 35 + hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MouldDto.java | 15 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/impl/WeighServiceImpl.java | 61 ++ web/src/views/GoodManage/MixingScreen.vue | 202 +++++++ web/src/router/index.js | 16 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/WeighService.java | 12 web/src/assets/mixing/container_40.png | 0 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MaterialStockRecordDto.java | 14 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/controller/WeighController.java | 30 + web/src/assets/mixing/container_10.png | 0 web/src/assets/mixing/list_r_bg.png | 0 web/src/assets/mixing/list_bg.png | 0 web/src/assets/mixing/container_100.png | 0 web/src/views/GoodManage/MixRatioScreen.vue | 11 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/SteelDto.java | 16 web/src/views/MixingInfo/mixRatio.vue | 247 +++++++++ web/src/assets/mixing/header.png | 0 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/AssistGoodDto.java | 16 web/src/api/modules/mixing.js | 5 web/src/assets/mixing/container_90.png | 0 web/src/assets/mixing/name_bg.png | 0 web/src/views/MixingInfo/mixing.vue | 314 ++++++++++++ web/src/assets/mixing/container_60.png | 0 hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml | 312 ++++++++++++ web/src/assets/mixing/list_l_bg.png | 0 web/src/assets/mixing/container_20.png | 0 web/src/assets/mixing/container_80.png | 0 hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/TSuMaterialWarehouseRecord.java | 103 +++ hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java | 28 + web/src/views/MixingInfo/components/List.vue | 91 +++ 30 files changed, 1,523 insertions(+), 5 deletions(-) diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java index c70f37a..e52fa33 100644 --- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java +++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/concret/controller/MixingPlantNewScheduled.java @@ -1,6 +1,7 @@ package com.thhy.materials.modules.biz.concret.controller; +import com.thhy.materials.modules.biz.concret.entity.SysSteel; import com.thhy.materials.modules.biz.concret.entity.dto.DicetName; import com.thhy.materials.modules.biz.concret.entity.dto.TMinxingPlant; import com.thhy.materials.modules.biz.concret.entity.dto.WeighDto; @@ -238,5 +239,39 @@ } + //苏州项目------- 地磅入库 记录,及库存修改 钢筋 + @Scheduled(fixedRate = 2000000) // 每隔3秒执行一次任务 + public void weighbridgeSteel() { + //查询搅拌 所有类型 + List<SysSteel> steels = weighService.steelType(); + + List<TWeighbridge> tWeighbridges = weighMapper.weighbridgeListType(); + for (SysSteel steel : steels){ + for (TWeighbridge weighbridge :tWeighbridges){ + if(steel.getSteelName().equals(weighbridge.getMatname())&&steel.getSteelModel().equals(weighbridge.getMatmodel())){ + //净重 + String jweight = weighbridge.getJweight(); + HashMap<String, Object> hashMap = new HashMap<>(); + hashMap.put("id",""); + hashMap.put("steelId",steel.getSteelId()); + hashMap.put("stockType",1); + hashMap.put("changeStock",jweight); + hashMap.put("companyId","031e3dd577e8ed28e96aa69b"); + BigDecimal b1 = new BigDecimal(jweight); + BigDecimal b2 = new BigDecimal(steel.getStock()); + RLock lock = redissonclient.getLock("materlock"); + if(!lock.isLocked()) { + lock.lock(10, TimeUnit.SECONDS); + //插入记录表//苏州项目(入库计入增加) + weighMapper.steelRecordIn(hashMap); + //更改记录值 + weighMapper.steelUp(steel.getSteelId(),b1.add(b2).doubleValue()); + lock.unlock(); + } + weighMapper.weighbridgeUpdateType(weighbridge.getWeighbridgeId()); + } + } + } + } } diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/controller/WeighController.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/controller/WeighController.java index c782925..2797868 100644 --- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/controller/WeighController.java +++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/controller/WeighController.java @@ -8,10 +8,7 @@ import com.thhy.materials.modules.biz.weigh.service.WeighService; import org.omg.CORBA.StringHolder; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.Map; @@ -40,6 +37,31 @@ return weighService.weighbridgeList(values); } + //原料库存 + @PostMapping("/headThingJsInventory") + public BasicResult headThingJsInventory(){ + return weighService.headThingJsInventory(); + } + //料仓列表 + @PostMapping("/materialWarehouseRecordList") + public BasicResult materialWarehouseRecordList(@RequestBody Map<String,Object> values){ + return weighService.materialWarehouseRecordList(values); + } + //料仓添加进仓 + @PostMapping("/materialWarehouseRecordInsert") + public BasicResult materialWarehouseRecordInsert(@RequestBody Map<String,Object> values){ + return weighService.materialWarehouseRecordInsert(values); + } + //料仓修改进仓 + @PostMapping("/materialWarehouseRecordUpdate") + public BasicResult materialWarehouseRecordUpdate(@RequestBody Map<String,Object> values){ + return weighService.materialWarehouseRecordUpdate(values); + } + //删除 + @GetMapping("/materialWarehouseRecordDel") + public BasicResult materialWarehouseRecordDel(@RequestParam String id){ + return weighService.materialWarehouseRecordDel(id); + } } diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/TSuMaterialWarehouseRecord.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/TSuMaterialWarehouseRecord.java new file mode 100644 index 0000000..fcbef74 --- /dev/null +++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/TSuMaterialWarehouseRecord.java @@ -0,0 +1,103 @@ +package com.thhy.materials.modules.biz.weigh.entity; + +import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +import java.io.Serializable; +import java.util.Date; + +@Data +@Getter +@Setter +@ToString +public class TSuMaterialWarehouseRecord implements Serializable { + /** + * + */ + private String id; + + /** + * 桌号 + */ + private Integer tableNum; + + /** + * 产地名称 + */ + private String nameOfOrigin; + + /** + * 物料名称 + */ + private String materialName; + + /** + * 进厂数量 + */ + private Double incomingQuantity; + + /** + * 进厂日期 + */ + private Date inTime; + + /** + * 检验状态 + */ + private Integer status; + + /** + * 检验日期 + */ + private Date inspectionDate; + + /** + * 报告编号 + */ + private String reportNumber; + + /** + * 创建日期 + */ + private Date createTime; + + /** + * + */ + private String createUser; + + /** + * + */ + private Date updateTime; + + /** + * + */ + private String updateUser; + + /** + * + */ + private Integer isUse; + + /** + * + */ + private String companyId; + + /** + * 入库方式 1手动 2自动 + */ + private Integer type; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table t_su_material_warehouse_record + * + * @mbg.generated Thu Nov 30 14:55:49 CST 2023 + */ + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/AssistGoodDto.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/AssistGoodDto.java new file mode 100644 index 0000000..f317633 --- /dev/null +++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/AssistGoodDto.java @@ -0,0 +1,16 @@ +package com.thhy.materials.modules.biz.weigh.entity.dto; + +import lombok.Data; + +import java.io.Serializable; +@Data +public class AssistGoodDto implements Serializable { + //辅材名称 + private String assistName; + //辅材类型 + private String assistType; + //辅材库存 + private String stock; + + +} diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MaterialStockRecordDto.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MaterialStockRecordDto.java new file mode 100644 index 0000000..a229fcc --- /dev/null +++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MaterialStockRecordDto.java @@ -0,0 +1,14 @@ +package com.thhy.materials.modules.biz.weigh.entity.dto; + +import lombok.Data; + +import java.io.Serializable; +@Data +public class MaterialStockRecordDto implements Serializable { + //原料名称 + private String materialName; + //原料值 + private String materialValue; + + +} diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MouldDto.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MouldDto.java new file mode 100644 index 0000000..b3b9fbc --- /dev/null +++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/MouldDto.java @@ -0,0 +1,15 @@ +package com.thhy.materials.modules.biz.weigh.entity.dto; + +import lombok.Data; + +import java.io.Serializable; +@Data +public class MouldDto implements Serializable { + //模具编号 + private String mouldNum; + //使用状态 + private String free; + //次数 + private String currentCycleTime; + +} diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/SteelDto.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/SteelDto.java new file mode 100644 index 0000000..dbc5e11 --- /dev/null +++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/entity/dto/SteelDto.java @@ -0,0 +1,16 @@ +package com.thhy.materials.modules.biz.weigh.entity.dto; + +import lombok.Data; + +import java.io.Serializable; +@Data +public class SteelDto implements Serializable { + //钢筋名 + private String steelName; + //钢筋型号 + private String steelModel; + //库存 + private String stock; + + +} diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java index 9b87258..af60e21 100644 --- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java +++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/mapper/WeighMapper.java @@ -1,13 +1,19 @@ package com.thhy.materials.modules.biz.weigh.mapper; import com.thhy.general.annotations.Idkey; +import com.thhy.materials.modules.biz.concret.entity.SysSteel; import com.thhy.materials.modules.biz.concret.entity.dto.DicetName; import com.thhy.materials.modules.biz.concret.entity.dto.TMinxingPlant; import com.thhy.materials.modules.biz.concret.entity.dto.WeighDto; import com.thhy.materials.modules.biz.video.entity.TVideoNo; import com.thhy.materials.modules.biz.weigh.dto.QueryWeighDto; +import com.thhy.materials.modules.biz.weigh.entity.TSuMaterialWarehouseRecord; import com.thhy.materials.modules.biz.weigh.entity.TWeighbridge; import com.thhy.materials.modules.biz.weigh.entity.WeighVo; +import com.thhy.materials.modules.biz.weigh.entity.dto.AssistGoodDto; +import com.thhy.materials.modules.biz.weigh.entity.dto.MaterialStockRecordDto; +import com.thhy.materials.modules.biz.weigh.entity.dto.MouldDto; +import com.thhy.materials.modules.biz.weigh.entity.dto.SteelDto; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.web.bind.annotation.PostMapping; @@ -81,4 +87,26 @@ void materialStockRecordIns(HashMap<String, Object> hashMap); void weighbridgeUpdateType(Integer weighbridgeId); + + List<MaterialStockRecordDto> materialStockInventory(); + + List<SteelDto> steelInventory(); + + List<AssistGoodDto> assistGoodInventory(); + + List<MouldDto> mouldInventory(); + + List<SysSteel> steelType(); + + void steelRecordIn(@Idkey("id") HashMap<String, Object> hashMap); + + void steelUp(@Param("steelId") String steelId,@Param("doubleValue") double doubleValue); + + List<TSuMaterialWarehouseRecord> materialWarehouseRecordList(Map<String, Object> values); + + void materialWarehouseRecordInsert(@Idkey("id") Map<String, Object> values); + + void materialWarehouseRecordUpdate(Map<String, Object> values); + + void materialWarehouseRecordDel(String id); } diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/WeighService.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/WeighService.java index 895dc22..1674876 100644 --- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/WeighService.java +++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/WeighService.java @@ -1,6 +1,7 @@ package com.thhy.materials.modules.biz.weigh.service; import com.thhy.general.common.BasicResult; +import com.thhy.materials.modules.biz.concret.entity.SysSteel; import com.thhy.materials.modules.biz.concret.entity.dto.DicetName; import com.thhy.materials.modules.biz.concret.entity.dto.TMinxingPlant; import com.thhy.materials.modules.biz.concret.entity.dto.WeighDto; @@ -40,4 +41,15 @@ BasicResult weighbridgeList(Map<String, Object> values); + BasicResult headThingJsInventory(); + + List<SysSteel> steelType(); + + BasicResult materialWarehouseRecordList(Map<String, Object> values); + + BasicResult materialWarehouseRecordInsert(Map<String, Object> values); + + BasicResult materialWarehouseRecordUpdate(Map<String, Object> values); + + BasicResult materialWarehouseRecordDel(String id); } diff --git a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/impl/WeighServiceImpl.java b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/impl/WeighServiceImpl.java index 3e1f773..b68da00 100644 --- a/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/impl/WeighServiceImpl.java +++ b/hd/pipe/materialsManage/src/main/java/com/thhy/materials/modules/biz/weigh/service/impl/WeighServiceImpl.java @@ -3,18 +3,25 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.thhy.general.common.BasicResult; +import com.thhy.materials.modules.biz.concret.entity.SysSteel; import com.thhy.materials.modules.biz.concret.entity.dto.DicetName; import com.thhy.materials.modules.biz.concret.entity.dto.TMinxingPlant; import com.thhy.materials.modules.biz.concret.entity.dto.WeighDto; import com.thhy.materials.modules.biz.weigh.dto.QueryWeighDto; +import com.thhy.materials.modules.biz.weigh.entity.TSuMaterialWarehouseRecord; import com.thhy.materials.modules.biz.weigh.entity.TWeighbridge; import com.thhy.materials.modules.biz.weigh.entity.WeighVo; +import com.thhy.materials.modules.biz.weigh.entity.dto.AssistGoodDto; +import com.thhy.materials.modules.biz.weigh.entity.dto.MaterialStockRecordDto; +import com.thhy.materials.modules.biz.weigh.entity.dto.MouldDto; +import com.thhy.materials.modules.biz.weigh.entity.dto.SteelDto; import com.thhy.materials.modules.biz.weigh.mapper.WeighMapper; import com.thhy.materials.modules.biz.weigh.service.WeighService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -95,4 +102,58 @@ PageInfo<TWeighbridge> tWeighbridgePageInfo = new PageInfo<>(weighbridges); return BasicResult.success(tWeighbridgePageInfo); } + + @Override + public BasicResult headThingJsInventory() { + + //原料库存 + List<MaterialStockRecordDto> materialStockDtos =weighMapper.materialStockInventory(); + //钢筋 + List<SteelDto> steelDtos = weighMapper.steelInventory(); + //辅材 + List<AssistGoodDto> assistGoodDtos = weighMapper.assistGoodInventory(); + + //模具 + List<MouldDto> mouldDtos = weighMapper.mouldInventory(); + HashMap<String, Object> map = new HashMap<>(); + map.put("materialStockDtos",materialStockDtos); + map.put("steelDtos",steelDtos); + map.put("assistGoodDtos",assistGoodDtos); + map.put("mouldDtos",mouldDtos); + return BasicResult.success(map); + } + + @Override + public List<SysSteel> steelType() { + return weighMapper.steelType(); + } + + @Override + public BasicResult materialWarehouseRecordList(Map<String, Object> values) { + Integer pageSize = Integer.valueOf(values.get("pageSize").toString()); + Integer pageNum = Integer.valueOf(values.get("pageNum").toString()); + PageHelper.startPage(pageNum,pageSize); + List<TSuMaterialWarehouseRecord> records = weighMapper.materialWarehouseRecordList(values); + PageInfo<TSuMaterialWarehouseRecord> recordPageInfo = new PageInfo<>(records); + return BasicResult.success(recordPageInfo); + } + + @Override + public BasicResult materialWarehouseRecordInsert(Map<String, Object> values) { + values.put("id",""); + weighMapper.materialWarehouseRecordInsert(values); + return BasicResult.success(); + } + + @Override + public BasicResult materialWarehouseRecordUpdate(Map<String, Object> values) { + weighMapper.materialWarehouseRecordUpdate(values); + return BasicResult.success(); + } + + @Override + public BasicResult materialWarehouseRecordDel(String id) { + weighMapper.materialWarehouseRecordDel(id); + return BasicResult.success(); + } } diff --git a/hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml b/hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml index 55cbeb7..ea28f6e 100644 --- a/hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml +++ b/hd/pipe/materialsManage/src/main/resources/mapping/WeighMapper.xml @@ -711,4 +711,316 @@ types=2 where weighbridge_id=#{weighbridgeId} </update> + + <select id="materialStockInventory" resultType="com.thhy.materials.modules.biz.weigh.entity.dto.MaterialStockRecordDto"> + SELECT + s.dict_name AS materialName, + t.material_value AS materialValue +FROM + t_material_stock t + LEFT JOIN sys_dict s ON t.material_name = s.dict_id + </select> + <select id="steelInventory" resultType="com.thhy.materials.modules.biz.weigh.entity.dto.SteelDto"> + select + steel_name as steelName, + steel_model as steelModel, + stock as stock + from sys_steel + </select> + <select id="assistGoodInventory" resultType="com.thhy.materials.modules.biz.weigh.entity.dto.AssistGoodDto"> + select s.assist_name as s.assistName, + d.dict_name as assistType, + s.stock as stock + from sys_assist_good s left join sys_dict d on s.assist_type=d.dict_id + </select> + <select id="mouldInventory" resultType="com.thhy.materials.modules.biz.weigh.entity.dto.MouldDto"> + select + mould_num as mouldNum, + free as free, + current_cycle_time as currentCycleTime + from sys_mould + </select> + <select id="steelType" resultType="com.thhy.materials.modules.biz.concret.entity.SysSteel"> + select + steel_id as steelId, + steel_name as steelName, + steel_model as steelModel, + stock as stock + from + sys_steel + </select> + <insert id="steelRecordIn" > + insert into sys_steel_record + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="steelId != null"> + steel_id, + </if> + <if test="stockType != null"> + stock_type, + </if> + <if test="createTime != null"> + create_time, + </if> + <if test="changeStock != null"> + change_stock, + </if> + <if test="supplierId != null"> + supplier_id, + </if> + <if test="factoryName != null"> + factory_name, + </if> + <if test="brand != null"> + brand, + </if> + <if test="lineCode != null"> + line_code, + </if> + <if test="proId != null"> + pro_id, + </if> + <if test="createUser != null"> + create_user, + </if> + <if test="companyId != null"> + company_id, + </if> + <if test="carName != null"> + car_name, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=VARCHAR}, + </if> + <if test="steelId != null"> + #{steelId,jdbcType=VARCHAR}, + </if> + <if test="stockType != null"> + #{stockType,jdbcType=INTEGER}, + </if> + <if test="createTime != null"> + #{createTime,jdbcType=TIMESTAMP}, + </if> + <if test="changeStock != null"> + #{changeStock,jdbcType=DOUBLE}, + </if> + <if test="supplierId != null"> + #{supplierId,jdbcType=VARCHAR}, + </if> + <if test="factoryName != null"> + #{factoryName,jdbcType=VARCHAR}, + </if> + <if test="brand != null"> + #{brand,jdbcType=VARCHAR}, + </if> + <if test="lineCode != null"> + #{lineCode,jdbcType=VARCHAR}, + </if> + <if test="proId != null"> + #{proId,jdbcType=VARCHAR}, + </if> + <if test="createUser != null"> + #{createUser,jdbcType=VARCHAR}, + </if> + <if test="companyId != null"> + #{companyId,jdbcType=VARCHAR}, + </if> + <if test="carName != null"> + #{carName,jdbcType=VARCHAR}, + </if> + </trim> + </insert> + <update id="steelUp" > + update sys_steel set + stock=#{doubleValue} + where steel_id=#{steelId} + </update> + + <select id="materialWarehouseRecordList" resultType="com.thhy.materials.modules.biz.weigh.entity.TSuMaterialWarehouseRecord"> + select + id, + table_num as tableNum, + name_of_origin as nameOfOrigin, + material_name as materialName, + incoming_quantity as incomingQuantity, + in_time as inTime, + status as status, + inspection_date as inspectionDate, + report_number as reportNumber, + create_time as createTime, + `type` + from t_su_material_warehouse_record + where 1=1 + <if test="tableNum!=null and tableNum!='' "> + and table_num=#{tableNum} + </if> + <if test="type!=null and type!='' "> + and `type`=#{type} + </if> + <if test="strTime!=null and strTime!='' and endTime!=null and endTime!='' "> + and create_time between #{strTime} and #{endTime} + </if> + order by create_time desc + </select> + <insert id="materialWarehouseRecordInsert" > + insert into t_su_material_warehouse_record + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="tableNum != null"> + table_num, + </if> + <if test="nameOfOrigin != null"> + name_of_origin, + </if> + <if test="materialName != null"> + material_name, + </if> + <if test="incomingQuantity != null"> + incoming_quantity, + </if> + <if test="inTime != null"> + in_time, + </if> + <if test="status != null"> + status, + </if> + <if test="inspectionDate != null"> + inspection_date, + </if> + <if test="reportNumber != null"> + report_number, + </if> + <if test="createTime != null"> + create_time, + </if> + <if test="createUser != null"> + create_user, + </if> + <if test="updateTime != null"> + update_time, + </if> + <if test="updateUser != null"> + update_user, + </if> + <if test="isUse != null"> + is_use, + </if> + <if test="companyId != null"> + company_id, + </if> + <if test="type != null"> + type, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=VARCHAR}, + </if> + <if test="tableNum != null"> + #{tableNum,jdbcType=INTEGER}, + </if> + <if test="nameOfOrigin != null"> + #{nameOfOrigin,jdbcType=VARCHAR}, + </if> + <if test="materialName != null"> + #{materialName,jdbcType=VARCHAR}, + </if> + <if test="incomingQuantity != null"> + #{incomingQuantity,jdbcType=DOUBLE}, + </if> + <if test="inTime != null"> + #{inTime,jdbcType=TIMESTAMP}, + </if> + <if test="status != null"> + #{status,jdbcType=INTEGER}, + </if> + <if test="inspectionDate != null"> + #{inspectionDate,jdbcType=TIMESTAMP}, + </if> + <if test="reportNumber != null"> + #{reportNumber,jdbcType=VARCHAR}, + </if> + <if test="createTime != null"> + #{createTime,jdbcType=TIMESTAMP}, + </if> + <if test="createUser != null"> + #{createUser,jdbcType=VARCHAR}, + </if> + <if test="updateTime != null"> + #{updateTime,jdbcType=TIMESTAMP}, + </if> + <if test="updateUser != null"> + #{updateUser,jdbcType=VARCHAR}, + </if> + <if test="isUse != null"> + #{isUse,jdbcType=INTEGER}, + </if> + <if test="companyId != null"> + #{companyId,jdbcType=VARCHAR}, + </if> + <if test="type != null"> + #{type,jdbcType=INTEGER}, + </if> + </trim> + </insert> + <update id="materialWarehouseRecordUpdate" > + update t_su_material_warehouse_record + <set> + <if test="tableNum != null"> + table_num = #{tableNum,jdbcType=INTEGER}, + </if> + <if test="nameOfOrigin != null"> + name_of_origin = #{nameOfOrigin,jdbcType=VARCHAR}, + </if> + <if test="materialName != null"> + material_name = #{materialName,jdbcType=VARCHAR}, + </if> + <if test="incomingQuantity != null"> + incoming_quantity = #{incomingQuantity,jdbcType=DOUBLE}, + </if> + <if test="inTime != null"> + in_time = #{inTime,jdbcType=TIMESTAMP}, + </if> + <if test="status != null"> + status = #{status,jdbcType=INTEGER}, + </if> + <if test="inspectionDate != null"> + inspection_date = #{inspectionDate,jdbcType=TIMESTAMP}, + </if> + <if test="reportNumber != null"> + report_number = #{reportNumber,jdbcType=VARCHAR}, + </if> + <if test="createTime != null"> + create_time = #{createTime,jdbcType=TIMESTAMP}, + </if> + <if test="createUser != null"> + create_user = #{createUser,jdbcType=VARCHAR}, + </if> + <if test="updateTime != null"> + update_time = #{updateTime,jdbcType=TIMESTAMP}, + </if> + <if test="updateUser != null"> + update_user = #{updateUser,jdbcType=VARCHAR}, + </if> + <if test="isUse != null"> + is_use = #{isUse,jdbcType=INTEGER}, + </if> + <if test="companyId != null"> + company_id = #{companyId,jdbcType=VARCHAR}, + </if> + <if test="type != null"> + type = #{type,jdbcType=INTEGER}, + </if> + </set> + where id = #{id,jdbcType=VARCHAR} + </update> + <delete id="materialWarehouseRecordDel" parameterType="java.lang.String"> + delete from t_su_material_warehouse_record where id=#{id} + </delete> </mapper> \ No newline at end of file diff --git a/web/src/api/modules/mixing.js b/web/src/api/modules/mixing.js index c017b66..d91fa20 100644 --- a/web/src/api/modules/mixing.js +++ b/web/src/api/modules/mixing.js @@ -6,5 +6,8 @@ // H5搅拌站大屏展示数据信息 showHmixings: params => axios.get('/materials/suMaterialWarehouse/selectNewOneByTableNum', {params}), - + getMixing: params => + axios.get('/materials/materialRelease/siloList', {params}), + getMixRatio: params => + axios.post('/materials/materialRelease/mixingConsumeList', params), } \ No newline at end of file diff --git a/web/src/assets/mixing/container_10.png b/web/src/assets/mixing/container_10.png new file mode 100644 index 0000000..15291b0 --- /dev/null +++ b/web/src/assets/mixing/container_10.png Binary files differ diff --git a/web/src/assets/mixing/container_100.png b/web/src/assets/mixing/container_100.png new file mode 100644 index 0000000..5b73dda --- /dev/null +++ b/web/src/assets/mixing/container_100.png Binary files differ diff --git a/web/src/assets/mixing/container_20.png b/web/src/assets/mixing/container_20.png new file mode 100644 index 0000000..2bbe0dc --- /dev/null +++ b/web/src/assets/mixing/container_20.png Binary files differ diff --git a/web/src/assets/mixing/container_40.png b/web/src/assets/mixing/container_40.png new file mode 100644 index 0000000..d2f52d3 --- /dev/null +++ b/web/src/assets/mixing/container_40.png Binary files differ diff --git a/web/src/assets/mixing/container_60.png b/web/src/assets/mixing/container_60.png new file mode 100644 index 0000000..5ced4a7 --- /dev/null +++ b/web/src/assets/mixing/container_60.png Binary files differ diff --git a/web/src/assets/mixing/container_80.png b/web/src/assets/mixing/container_80.png new file mode 100644 index 0000000..38348d1 --- /dev/null +++ b/web/src/assets/mixing/container_80.png Binary files differ diff --git a/web/src/assets/mixing/container_90.png b/web/src/assets/mixing/container_90.png new file mode 100644 index 0000000..47ee2ac --- /dev/null +++ b/web/src/assets/mixing/container_90.png Binary files differ diff --git a/web/src/assets/mixing/header.png b/web/src/assets/mixing/header.png new file mode 100644 index 0000000..be0a727 --- /dev/null +++ b/web/src/assets/mixing/header.png Binary files differ diff --git a/web/src/assets/mixing/list_bg.png b/web/src/assets/mixing/list_bg.png new file mode 100644 index 0000000..462f5e3 --- /dev/null +++ b/web/src/assets/mixing/list_bg.png Binary files differ diff --git a/web/src/assets/mixing/list_l_bg.png b/web/src/assets/mixing/list_l_bg.png new file mode 100644 index 0000000..d8c7dc5 --- /dev/null +++ b/web/src/assets/mixing/list_l_bg.png Binary files differ diff --git a/web/src/assets/mixing/list_r_bg.png b/web/src/assets/mixing/list_r_bg.png new file mode 100644 index 0000000..63add79 --- /dev/null +++ b/web/src/assets/mixing/list_r_bg.png Binary files differ diff --git a/web/src/assets/mixing/name_bg.png b/web/src/assets/mixing/name_bg.png new file mode 100644 index 0000000..cf1da41 --- /dev/null +++ b/web/src/assets/mixing/name_bg.png Binary files differ diff --git a/web/src/router/index.js b/web/src/router/index.js index 2d80873..fe7eda0 100644 --- a/web/src/router/index.js +++ b/web/src/router/index.js @@ -15,6 +15,22 @@ } }, { + path: '/mixing/*', + name: 'mixing', + meta: { + title: '管片场拌合站' + }, + component: () => import('../views/MixingInfo/mixing.vue'), + }, + { + path: '/mixratio/*', + name: 'mixratio', + meta: { + title: '管片场拌合站表格' + }, + component: () => import('../views/MixingInfo/mixRatio.vue'), + }, + { path: `/mixingInfo/num=1`, name: 'mixingInfo', meta: { diff --git a/web/src/views/GoodManage/MixRatioScreen.vue b/web/src/views/GoodManage/MixRatioScreen.vue new file mode 100644 index 0000000..74753ca --- /dev/null +++ b/web/src/views/GoodManage/MixRatioScreen.vue @@ -0,0 +1,11 @@ +<template> + <div>222222222222222</div> +</template> + +<script> + +</script> + +<style lang="sass" scoped> +@import '../../style/layout-main.scss'; +</style> \ No newline at end of file diff --git a/web/src/views/GoodManage/MixingScreen.vue b/web/src/views/GoodManage/MixingScreen.vue new file mode 100644 index 0000000..5e6d786 --- /dev/null +++ b/web/src/views/GoodManage/MixingScreen.vue @@ -0,0 +1,202 @@ +<!-- 设备管理 ==> 拌合站屏管理--> +<template> + <div class="main"> + <div class="main_header"> + <div class="header_item"> + <span class="header_label">拌合站屏:</span> + <el-select size="mini" v-model="queryInfo.screen" placeholder="请选择拌合站屏"> + <el-option v-for="item in queryInfoScreens" :key="item.value" :label="item.label" + :value="item.value"></el-option> + </el-select> + </div> + <div class="header_item"> + <span class="header_label">录入方式:</span> + <el-select size="mini" v-model="queryInfo.inmode" placeholder="请选择录入方式"> + <el-option v-for="item in queryInfoInmodes" :key="item.value" :label="item.label" + :value="item.value"></el-option> + </el-select> + </div> + <div class="header_item"> + <span class="header_label">创建时间:</span> + <el-date-picker type="daterange" v-model="times" value-format="yyyy-MM-dd" start-placeholder="起始时间" + end-placeholder="结束时间" @change="changeTime" clear></el-date-picker> + </div> + <div class="header_item"> + <el-button icon="el-icon-search" v-permission="'search'" @click="queryReset">查询</el-button> + <el-button icon="el-icon-plus" v-permission="'insert'" @click="addRow">新增</el-button> + </div> + </div> + <div class="main_content"> + <div class="main_content_item" v-for="(item, index) in ['', '', '', '', '',]" :key="index"> + + </div> + </div> + + <!-- 详情dialog --> + <el-dialog width="400px" class="prop_dialog" v-if="isRenderDialog" title="详情" :visible.sync="asyncVisible"> + + <el-form class="rule_form" label-width="auto"> + + <div class="divider"></div> + + <el-form-item label="巡检任务:">{{ info.task }}</el-form-item> + + <el-form-item label="巡检标准:">{{ info.standard }}</el-form-item> + + <el-form-item label="巡检人员:">{{ info.name }}</el-form-item> + + <div class="divider"><span>巡检路线</span></div> + + <div class="regions"> + <div class="region" v-for=" item in info.regions " :key="item.regionId">{{ + item.region }} + </div> + </div> + </el-form> + </el-dialog> + + </div> +</template> +<script> +export default { + data() { + return { + loading: false, + isRenderDialog: false, + asyncVisible: false, + + info: { // 详情信息 + task: '', + standard: '', + name: '', + regions: [], + }, + userId: '', // 存储点击后的用户id + taskId: '', // 存储点击后的巡检任务id + times: [], // 时间范围 + queryInfo: { + pageNum: 1, + pageSize: 10, + inmode: '', // 录入方式 + screen: '', // 拌合站屏 + startTime: '', + endTime: '', + }, + regionInfos: { // 巡检路线详情 + isRenderDialog: false, + asyncVisible: false, + time: '', // 巡检时间 + region: '', // 巡检区域 + res: '', // 巡检结果 + img: '', // 上传的图片 + location: '', // 位置 + } + } + }, + beforeCreate() { + this.queryInfoInmodes = [ + {value: '0', label: '手动'}, + {value: '1', label: '自动'}, + ] + this.queryInfoScreens = [ + {value: '0', label: '1-1'}, + {value: '1', label: '1-2'}, + ] + this.$http = this.$api.Safety.RiskGrad.polling + }, + created() { + this.setTableColumn() + this.getLists() + }, + methods: { + // 获取table列表数据 + getLists() { + let params = this.queryInfo + this.loading = true + this.$http.taskcardGetlists(params).then(res => { + if (res.statusMsg === 'ok') { + console.log(res) + } + this.loading = false + }) + }, + // 初始化 table 配置 + setTableColumn() { + }, + addRow() { }, + // 查询按钮列表信息 + queryReset() { + this.queryInfo.pageNum = 1 + this.queryInfo.pageSize = 10 + this.getLists() + }, + changeTime(times) { + times = times || ['', ''] + this.queryInfo.startTime = times[0] + this.queryInfo.endTime = times[1] + }, + } +} +</script> + +<style lang="scss" scoped> +@import '@/style/layout-main.scss'; + +.rule_form { + color: #fff; + + ::v-deep .el-form-item__content { + display: block; + } + + .image { + flex: none; + width: 91px; + height: 120px; + margin-right: 15px; + border-radius: 5px; + border: 1px solid #0c5983; + + img { + width: 100%; + } + } +} + +.regions { + text-align: center; + + .region { + line-height: 34px; + margin-bottom: 16px; + background: rgba(56, 175, 247, .25); + cursor: pointer; + } +} + +.divider { + position: relative; + margin-bottom: 30px; + text-indent: 10px; + color: #fff; + border-left: 3px solid #18F6F8; + + &::after { + content: ""; + position: absolute; + left: 0; + bottom: -8px; + width: 100%; + padding: 20px 0; + border-bottom: 1px solid #0C4D6F; + } +} + +.main_content .main_content_item { + float: left; + width: 48%; + height: 200px; + margin: 1%; + border: 1px solid red; +} +</style> \ No newline at end of file diff --git a/web/src/views/MixingInfo/components/List.vue b/web/src/views/MixingInfo/components/List.vue new file mode 100644 index 0000000..4642226 --- /dev/null +++ b/web/src/views/MixingInfo/components/List.vue @@ -0,0 +1,91 @@ +<template> + <div class="list"> + <div class="item" v-for="item in fieldMap" :key="item.name"> + <span class="name">{{ item.name }}:</span> + <template v-if="item.formatter"> + <span class="value" :class="item.class(data)">{{ item.formatter(data) }}</span> + </template> + <template v-else> + <span class="value">{{ data && data[item.type] || '' }}</span> + </template> + + </div> + </div> +</template> +<script> +export default { + data() { + return {} + }, + props: { + data: { + type: Object, + default: () => { } + } + }, + beforeCreate() { + // 字段映射表 + this.fieldMap = [ + {name: '规格型号', type: 'spec'}, + {name: '产地名称', type: 'producer'}, + {name: '炉(批)号', type: 'stove'}, + {name: '进场数量', type: 'inNum'}, + {name: '进场日期', type: 'inDate'}, + {name: '检验日期', type: 'inspectDate'}, + { + name: '检验状态', class(row) { + let state = row && row.inspectState + return {1: 'style1', 2: 'style2', 3: 'style3'}[state] || '' + }, formatter(row) { + let state = row && row.inspectState || '' + return {1: '合格', 2: '不合格', 3: '待检测'}[state] || '' + } + }, + {name: '报告编号', type: 'reportNumber'}, + ] + }, +} +</script> + +<style scoped> +.list { + display: flex; + flex-direction: column; + height: 100%; + + .item { + display: flex; + flex: 1; + margin-top: 4px; + + .name { + margin-right: 4px; + text-indent: 6px; + white-space: nowrap; + } + + .value { + color: #03F1FF; + + &.style1 { + font-size: 1.5rem; + line-height: 1.2rem; + color: #16F849; + } + + &.style2 { + font-size: 1.5rem; + line-height: 1.2rem; + color: red; + } + + &.style3 { + font-size: 1.5rem; + line-height: 1.2rem; + color: #FF6600; + } + } + + } +} +</style> diff --git a/web/src/views/MixingInfo/mixRatio.vue b/web/src/views/MixingInfo/mixRatio.vue new file mode 100644 index 0000000..075a28a --- /dev/null +++ b/web/src/views/MixingInfo/mixRatio.vue @@ -0,0 +1,247 @@ +<template> + <div class="wrap"> + <div class="header"> + <div class="header_name">中铁十四局通甬站前I标管片场拌合站</div> + </div> + <div class="table"> + <div class="row title">{{ info.signboardName }}</div> + + <div class="row"> + <div class="name">工程名称</div> + <div class="value">{{ info.proName }}</div> + </div> + + <div class="row"> + <div class="name">施工单位</div> + <div class="value">{{ info.constructionUnit }}</div> + </div> + + <div class="row line"> + <div> + <div class="name">施工日期</div> + <div class="value">{{ info.saveStamp }}</div> + </div> + <div> + <div class="name">施工部位</div> + <div class="value">{{ info.construction }}</div> + </div> + </div> + + <div class="row" v-for="item in dataLists" :key="item.name"> + <div class="name">{{ item.name }}</div> + <div class="column"> + <div class="column-item" v-for="(sub, index) in item.value" :key="index">{{ sub }}</div> + </div> + </div> + + </div> + </div> +</template> + +<script> +const interval = function (fn, Vue) { + let timer = setInterval( + (() => { + fn() + return fn + })(), + 1000 * 60 * 1 + ) + if (Vue) { + Vue.$once('hook:beforeDestroy', function () { + timer && clearInterval(timer) + }) + } +} +export default { + name: 'Page2', + data() { + return { + info: { + signboardName: '', // 标识排 + proName: '', // 工程名称 + constructionUnit: '', // 施工单位 + saveStamp: '', // 施工日期 + construction: '', // 施工部位 + }, + dataLists: [ + {name: '材料名称', type: 'dictName', value: []}, // 材料名称 + {name: '规格型号', type: 'spec', value: []}, // 规格型号 + {name: '生产厂家', type: 'manufacturer', value: []}, // 生产厂家 + {name: '材料含水率(%)', type: 'watFull', value: []}, // 含水率 + {name: '理论用量(kg/m³)', type: 'planAmnt', value: []}, // 理论用量 + {name: '实际用量(kg/m³)', type: 'factAmnt', value: []}, // 实际用量 + ] + } + }, + beforeCreate() { + this.$http = this.$api.Infos + }, + beforeRouteEnter(to, form, next) { + const {path} = to + + const type = path.slice(-1) + + next(vm => { + vm.type = type + interval(vm.getLists, vm) + }) + }, + mounted() { + let width = document.getElementsByClassName('wrap')[0].clientWidth + let $html = document.getElementsByTagName('html')[0] + let fontsize = width / 1920 * 35.2 + $html.style.fontSize = `${fontsize}px` + window.onresize = () => { + let width = document.getElementById('app').clientWidth + let fontsize = width / 1920 * 35.2 + $html.style.fontSize = `${fontsize}px` + } + }, + beforeDestroy() { + let $html = document.getElementsByTagName('html')[0] + $html.style.fontSize = '' + }, + methods: { + async getLists() { + const params = { + pageNum: --this.type, // 传 0 1对应两个页面 + pageSize: 1, + } + this.$api.Infos.getMixRatio(params).then(res => { + if (res.statusMsg === 'ok' && res.data) { + const {list} = res.data + if (list && list.length) { + const item = list[0] + const {tmixingConsumes} = item + + this.info.signboardName = item.signboardName + this.info.proName = item.proName + this.info.constructionUnit = item.constructionUnit + + if (tmixingConsumes && tmixingConsumes.length) { + this.info.saveStamp = tmixingConsumes[0].saveStamp + this.info.construction = tmixingConsumes[0].construction + + tmixingConsumes.forEach(item => { + this.dataLists.forEach(val => { + item[val.type] && val.value.push(item[val.type]) + }) + }) + } + } + } else { + this.$message.warning('请检查网络或联系管理员!!!') + } + }) + + }, + } +} +</script> +<style scoped> +.wrap { + position: absolute; + width: 100%; + height: 100%; + font-size: 1rem; + background: #040A3F; + overflow: hidden; +} + +.header { + position: absolute; + top: 0; + width: 100%; + height: 3rem; + text-align: center; + color: #fff; + background: url('../../assets/mixing/header.png') no-repeat center center; + background-size: 100% auto; + + .header_name { + font-size: 1.6rem; + font-weight: bold; + line-height: 3.2rem; + letter-spacing: 2px; + text-shadow: 0px 3px 3px rgba(25, 63, 95, 0.05); + background: -webkit-linear-gradient(90deg, #2AC0FF 0%, #FFFFFF 70%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } +} + +.table { + display: flex; + flex-direction: column; + position: absolute; + top: 4rem; + bottom: 2rem; + left: 2rem; + right: 2rem; + font-size: 0.8rem; + color: #fff; + + .title { + display: flex; + justify-content: center; + align-items: center; + color: #BEE2F0; + background: rgba(1, 142, 196, .35); + } + + .row { + flex: 1; + width: 100%; + height: 2rem; + margin: 0 -1px -1px 0; + text-align: center; + line-height: 2rem; + border: 1px solid #01B3EF; + + .name { + display: flex; + justify-content: center; + align-items: center; + float: left; + width: 8rem; + height: 100%; + margin: -1px -1px -1px 0; + color: #BEE2F0; + border: 1px solid #01B3EF; + background: rgba(1, 142, 196, .75); + box-sizing: unset; + } + + .value { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + overflow: hidden; + } + + .column { + display: flex; + height: 100%; + + .column-item { + display: flex; + justify-content: center; + align-items: center; + flex: 1; + margin: -1px -1px -1px 0; + border: 1px solid #01B3EF; + } + } + } + + .row.line { + display: flex; + + >div { + flex: 1; + } + } +} +</style> \ No newline at end of file diff --git a/web/src/views/MixingInfo/mixing.vue b/web/src/views/MixingInfo/mixing.vue new file mode 100644 index 0000000..55d42a7 --- /dev/null +++ b/web/src/views/MixingInfo/mixing.vue @@ -0,0 +1,314 @@ +<template> + <div class="wrap"> + <div class="header"> + <div class="header_name">中铁十四局通甬站前I标管片场拌合站</div> + </div> + <div class="container"> + <div class="con_name"> + <div class="line left"></div> + <div class="name"> + <p class="p">{{ infoL.siloName }}</p> + <p class="p">{{ infoR.siloName }}</p> + </div> + <div class="line right"></div> + </div> + <div class="con_main"> + <div class="con_main_item con_main_l"> + <div class="placeholder"></div> + <div class="list_wrap"> + <list :data="infoL.mixing"></list> + </div> + </div> + <div class="con_main_item con_main_c"> + <div :class="`image ${infoL.percentImgName || ''}`"> + <p>{{ infoL.siloName }}</p> + </div> + <div :class="`image ${infoR.percentImgName || ''}`"> + <p>{{ infoR.siloName }}</p> + </div> + </div> + <div class="con_main_item con_main_r"> + <div class="placeholder"></div> + <div class="list_wrap"> + <list :data="infoR.mixing"></list> + </div> + </div> + </div> + </div> + </div> +</template> + +<script> +import List from './components/List' +const interval = function (fn, Vue) { + let timer = setInterval( + (() => { + fn() + return fn + })(), + 1000 * 60 * 1 + ) + if (Vue) { + Vue.$once('hook:beforeDestroy', function () { + timer && clearInterval(timer) + }) + } +} +export default { + name: 'mixing', + data() { + return { + type: '', + infoL: {}, + infoR: {}, + percents: { + 0: 'container_10', + 10: 'container_10', + 20: 'container_20', + 40: 'container_40', + 60: 'container_60', + 80: 'container_80', + 90: 'container_90', + 100: 'container_100', + } + }; + }, + components: { + List + }, + beforeCreate() { + this.$http = this.$api.Infos + }, + beforeRouteEnter(to, form, next) { + const {path} = to + + const type = path.slice(-1) + + next(vm => { + vm.type = type + interval(vm.getLists, vm) + }) + }, + mounted() { + let width = document.getElementsByClassName('wrap')[0].clientWidth + let $html = document.getElementsByTagName('html')[0] + let fontsize = width / 1920 * 35.2 + $html.style.fontSize = `${fontsize}px` + window.onresize = () => { + let width = document.getElementById('app').clientWidth + let fontsize = width / 1920 * 35.2 + $html.style.fontSize = `${fontsize}px` + } + }, + beforeDestroy() { + let $html = document.getElementsByTagName('html')[0] + $html.style.fontSize = '' + }, + methods: { + getLists() { + const percentArr = Object.keys(this.percents) + this.$api.Infos.getMixing({types: this.type}).then(res => { + if (res.statusMsg === 'ok' && res.data && res.data.length) { + res.data.forEach((item, index) => { + if (item && item.mixing && item.mixing.percentage) { + let targetVal = +item.mixing.percentage + for (let index = 0; index < percentArr.length - 1; index++) { + const val = percentArr[index] + const valNext = percentArr[index + 1] + if (val <= targetVal && targetVal <= valNext) { + item.percentImgName = this.percents[val] + break + } + } + } else { + item.percentImgName = this.percents[0] + } + index === 0 && (this.infoL = item) + index === 1 && (this.infoR = item) + }) + } else { + this.$message.warning('请检查网络或联系管理员!!!') + } + }) + + + + }, + } +} +</script> +<style scoped> +li { + list-style: none; +} + +.wrap { + position: absolute; + width: 100%; + height: 100%; + font-size: 1rem; + background: #040A3F; + overflow: hidden; +} + +.header { + position: absolute; + width: 100%; + height: 3rem; + text-align: center; + font-family: 'Microsoft YaHei'; + color: #fff; + background: url('../../assets/mixing/header.png') no-repeat center center; + background-size: 100% auto; + + .header_name { + font-size: 1.6rem; + font-weight: bold; + line-height: 3.2rem; + letter-spacing: 2px; + text-shadow: 0px 3px 3px rgba(25, 63, 95, 0.05); + background: -webkit-linear-gradient(90deg, #2AC0FF 0%, #FFFFFF 70%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } +} + +.container { + flex: 1; + display: flex; + flex-direction: column; + position: absolute; + left: 20px; + right: 20px; + top: 3.6rem; + bottom: 20px; + color: #fff; + + .con_name { + display: flex; + align-items: center; + height: 2.2rem; + + .name { + width: 20rem; + display: flex; + justify-content: space-evenly; + + .p { + height: 2rem; + padding: 0 2rem; + line-height: 2rem; + font-size: 1.2rem; + font-weight: bold; + white-space: nowrap; + background: url(../../assets/mixing/name_bg.png) no-repeat; + background-size: 100% 100%; + } + } + + .line { + flex: 1; + height: 14px; + + &.left { + background: -webkit-linear-gradient(right, rgba(18, 99, 162, 1) 0, rgba(18, 99, 162, 0) 100%); + } + + &.right { + background: -webkit-linear-gradient(left, rgba(18, 99, 162, 1) 0, rgba(18, 99, 162, 0) 100%); + } + } + } + + .con_main { + margin-top: 10px; + flex: 1; + display: flex; + + .con_main_item { + padding: 15px 15px 0 15px; + position: relative; + flex: 1; + + &.con_main_l, + &.con_main_r { + background: url(../../assets/mixing/list_bg.png) no-repeat; + background-size: 100% 100%; + } + + &.con_main_l .placeholder { + width: 100%; + height: 8%; + background: url(../../assets/mixing/list_l_bg.png) no-repeat; + background-size: 100% 100%; + } + + &.con_main_r .placeholder { + width: 100%; + height: 8%; + background: url(../../assets/mixing/list_r_bg.png) no-repeat; + background-size: 100% 100%; + } + + &.con_main_c .image { + position: relative; + float: left; + width: 50%; + height: 100%; + min-height: 480px; + text-align: center; + + >p { + position: absolute; + left: 50%; + top: 21%; + white-space: nowrap; + transform: translate(-50%, -50%); + } + + &.container_10 { + background: url(../../assets/mixing/container_10.png) center 30% no-repeat; + background-size: auto 70%; + } + + &.container_20 { + background: url(../../assets/mixing/container_20.png) center 30% no-repeat; + background-size: auto 70%; + } + + &.container_40 { + background: url(../../assets/mixing/container_40.png) center 30% no-repeat; + background-size: auto 70%; + } + + &.container_60 { + background: url(../../assets/mixing/container_60.png) center 30% no-repeat; + background-size: auto 70%; + } + + &.container_80 { + background: url(../../assets/mixing/container_80.png) center 30% no-repeat; + background-size: auto 70%; + } + + &.container_90 { + background: url(../../assets/mixing/container_90.png) center 30% no-repeat; + background-size: auto 70%; + } + + &.container_100 { + background: url(../../assets/mixing/container_100.png) center 30% no-repeat; + background-size: auto 70%; + } + } + + .list_wrap { + position: absolute; + top: 12%; + bottom: 0; + } + + } + } +} +</style> \ No newline at end of file -- Gitblit v1.9.3