Merge branch 'master' of http://111.30.93.211:10101/r/supipe
| | |
| | | |
| | | /** |
| | | * 导出模板 |
| | | * @param embedmentRecordDto |
| | | * @param |
| | | * @param response |
| | | */ |
| | | @PostMapping(value = "recordExportTemplate") |
| | | void recordExportTemplate(@RequestBody EmbedmentRecordDto embedmentRecordDto, HttpServletResponse response){ |
| | | this.sysEmbedmentRecordService.recordExportTemplate(embedmentRecordDto,response); |
| | | void recordExportTemplate(HttpServletResponse response){ |
| | | this.sysEmbedmentRecordService.recordExportTemplate(null,response); |
| | | } |
| | | |
| | | /** |
| | |
| | | package com.thhy.materials.modules.biz.embedment.service; |
| | | |
| | | import com.thhy.general.common.BasicResult; |
| | | import com.thhy.materials.modules.biz.embedment.dto.EmbedmentGoodsDto; |
| | | import com.thhy.materials.modules.biz.embedment.dto.EmbedmentRecordDto; |
| | | import com.thhy.materials.modules.biz.embedment.entity.SysEmbedmentRecordEntity; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | |
| | | |
| | | void export(EmbedmentRecordDto embedmentRecordDto, HttpServletResponse response); |
| | | |
| | | void recordExportTemplate(EmbedmentRecordDto embedmentRecordDto, HttpServletResponse response); |
| | | void recordExportTemplate(EmbedmentGoodsDto embedmentGoodsDto, HttpServletResponse response); |
| | | |
| | | BasicResult variateExcel(MultipartFile file, HttpServletRequest request); |
| | | } |
| | |
| | | import com.thhy.general.exception.BasicException; |
| | | import com.thhy.general.utils.ExcelUtils; |
| | | import com.thhy.general.utils.UserInfoUtils; |
| | | import com.thhy.materials.modules.biz.embedment.dto.EmbedmentGoodsDto; |
| | | import com.thhy.materials.modules.biz.embedment.dto.EmbedmentRecordDto; |
| | | import com.thhy.materials.modules.biz.embedment.entity.SysEmbedmentGoodsEntity; |
| | | import com.thhy.materials.modules.biz.embedment.entity.SysEmbedmentRecordEntity; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void recordExportTemplate(EmbedmentRecordDto embedmentRecordDto, HttpServletResponse response) { |
| | | public void recordExportTemplate(EmbedmentGoodsDto embedmentGoodsDto, HttpServletResponse response) { |
| | | embedmentGoodsDto = new EmbedmentGoodsDto(); |
| | | SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); |
| | | String companyId = sysUserInfo.getCompanyId(); |
| | | XSSFWorkbook book = new XSSFWorkbook(); |
| | |
| | | row.createCell(2).setCellValue("单价"); |
| | | row.createCell(3).setCellValue("金额"); |
| | | row.createCell(4).setCellValue("备注"); |
| | | embedmentRecordDto.setCompanyId(companyId); |
| | | List<String> lx = sysEmbedmentRecordMapper.embedmentRecordList(embedmentRecordDto).stream().map(s -> s.getEmbedmentNameAndModel()).collect(Collectors.toList()); |
| | | embedmentGoodsDto.setCompanyId(companyId); |
| | | List<String> lx = sysEmbedmentGoodsMapper.findAll(embedmentGoodsDto).stream().map(s -> s.getEmbedmentName()+"-"+s.getEmbedmentModel()).collect(Collectors.toList()); |
| | | String[] gjlx = lx.toArray(new String[lx.size()]); |
| | | |
| | | //物品名称-规格型号 |
| | |
| | | <if test="companyId!=null and companyId!='' "> |
| | | and ser.company_id=#{companyId} |
| | | </if> |
| | | <if test="supplierId!=null and supplierId!='' "> |
| | | and ser.supplier_id=#{supplierId} |
| | | <if test="embedmentModel!=null and embedmentModel!='' "> |
| | | and seg.embedment_model=#{embedmentModel} |
| | | </if> |
| | | <if test="getDepart!=null and getDepart!='' "> |
| | | and sd.depart_name like concat('%',#{getDepart},'%') |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionHazardInform.controller; |
| | | |
| | | import com.thhy.general.common.BasicResult; |
| | | import com.thhy.secure.modules.biz.regionHazardInform.dto.TRegionHazardInformDto; |
| | | import com.thhy.secure.modules.biz.regionHazardInform.entity.TRegionHazardInformEntity; |
| | | import com.thhy.secure.modules.biz.regionHazardInform.service.TRegionHazardInformService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 13:32:08 |
| | | * 危险源告知控制层 |
| | | */ |
| | | @RestController |
| | | @RequestMapping(value = "regionHazardInform") |
| | | public class TRegionHazardInformController { |
| | | |
| | | @Autowired |
| | | private TRegionHazardInformService service; |
| | | |
| | | @PostMapping(value = "findAll") |
| | | public BasicResult findAll(TRegionHazardInformDto tRegionHazardInformDto){ |
| | | return service.findAll(tRegionHazardInformDto); |
| | | } |
| | | |
| | | @GetMapping(value = "findEntity") |
| | | public BasicResult findEntity(String id){ |
| | | return service.findEntity(id); |
| | | } |
| | | |
| | | @PostMapping(value = "insert") |
| | | public BasicResult insert(TRegionHazardInformEntity tRegionHazardInformEntity){ |
| | | return service.insert(tRegionHazardInformEntity); |
| | | } |
| | | |
| | | @PostMapping(value = "update") |
| | | public BasicResult update(TRegionHazardInformEntity tRegionHazardInformEntity){ |
| | | return service.update(tRegionHazardInformEntity); |
| | | } |
| | | |
| | | @GetMapping(value = "delete") |
| | | public BasicResult delete(String id){ |
| | | return service.delete(id); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionHazardInform.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 13:33:54 |
| | | * 危险源告知dto |
| | | */ |
| | | @Data |
| | | public class TRegionHazardInformDto { |
| | | private Integer level;//安全等级 |
| | | private Integer pageNum; |
| | | private Integer pageSize; |
| | | private String companyId; |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionHazardInform.entity; |
| | | |
| | | import com.thhy.general.annotations.Idkey; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 13:35:42 |
| | | * 危险告知实体 |
| | | */ |
| | | @Data |
| | | public class TRegionHazardInformEntity implements Serializable { |
| | | @Idkey(value = "id") |
| | | private String id; |
| | | private String region; |
| | | private Integer level; |
| | | private String regionColor; |
| | | private String companyId; |
| | | private String createUser; |
| | | private Date createTime; |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionHazardInform.mapper; |
| | | |
| | | import com.thhy.secure.modules.biz.regionHazardInform.dto.TRegionHazardInformDto; |
| | | import com.thhy.secure.modules.biz.regionHazardInform.entity.TRegionHazardInformEntity; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 13:39:01 |
| | | * 危险告知mapper |
| | | */ |
| | | @Mapper |
| | | public interface TRegionHazardInformMapper { |
| | | |
| | | List<TRegionHazardInformEntity> findAll(TRegionHazardInformDto tRegionHazardInformDto); |
| | | |
| | | TRegionHazardInformEntity findEntity(String id); |
| | | |
| | | void insert(TRegionHazardInformEntity tRegionHazardInformEntity); |
| | | |
| | | void update(TRegionHazardInformEntity tRegionHazardInformEntity); |
| | | |
| | | void delete(String id); |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionHazardInform.service; |
| | | |
| | | import com.thhy.general.common.BasicResult; |
| | | import com.thhy.secure.modules.biz.regionHazardInform.dto.TRegionHazardInformDto; |
| | | import com.thhy.secure.modules.biz.regionHazardInform.entity.TRegionHazardInformEntity; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 13:42:53 |
| | | * 危险告知源接口 |
| | | */ |
| | | public interface TRegionHazardInformService { |
| | | |
| | | BasicResult findAll(TRegionHazardInformDto tRegionHazardInformDto); |
| | | |
| | | BasicResult findEntity(String id); |
| | | |
| | | BasicResult insert(TRegionHazardInformEntity tRegionHazardInformEntity); |
| | | |
| | | BasicResult update(TRegionHazardInformEntity tRegionHazardInformEntity); |
| | | |
| | | BasicResult delete(String id); |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionHazardInform.service.impl; |
| | | |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.thhy.general.common.BasicResult; |
| | | import com.thhy.general.config.SysUserInfo; |
| | | import com.thhy.general.utils.UserInfoUtils; |
| | | import com.thhy.secure.modules.biz.regionHazardInform.dto.TRegionHazardInformDto; |
| | | import com.thhy.secure.modules.biz.regionHazardInform.entity.TRegionHazardInformEntity; |
| | | import com.thhy.secure.modules.biz.regionHazardInform.mapper.TRegionHazardInformMapper; |
| | | import com.thhy.secure.modules.biz.regionHazardInform.service.TRegionHazardInformService; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 13:44:04 |
| | | * 危险告知源逻辑实现 |
| | | */ |
| | | @Service |
| | | public class TRegionHazardInformServiceImpl implements TRegionHazardInformService { |
| | | |
| | | @Autowired |
| | | private TRegionHazardInformMapper tRegionHazardInformMapper; |
| | | |
| | | @Override |
| | | public BasicResult findAll(TRegionHazardInformDto tRegionHazardInformDto) { |
| | | SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(); |
| | | tRegionHazardInformDto.setCompanyId(userInfo.getCompanyId()); |
| | | PageHelper.startPage(tRegionHazardInformDto.getPageNum(), tRegionHazardInformDto.getPageSize()); |
| | | List<TRegionHazardInformEntity> all = this.tRegionHazardInformMapper.findAll(tRegionHazardInformDto); |
| | | PageInfo<TRegionHazardInformEntity> pageInfo = new PageInfo<>(all); |
| | | return BasicResult.success(pageInfo); |
| | | } |
| | | |
| | | @Override |
| | | public BasicResult findEntity(String id) { |
| | | TRegionHazardInformEntity entity = this.tRegionHazardInformMapper.findEntity(id); |
| | | return BasicResult.success(entity); |
| | | } |
| | | |
| | | @Override |
| | | public BasicResult insert(TRegionHazardInformEntity tRegionHazardInformEntity) { |
| | | SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(); |
| | | tRegionHazardInformEntity.setCompanyId(userInfo.getCompanyId()); |
| | | tRegionHazardInformEntity.setCreateUser(userInfo.getRealName()); |
| | | this.tRegionHazardInformMapper.insert(tRegionHazardInformEntity); |
| | | return BasicResult.success(); |
| | | } |
| | | |
| | | @Override |
| | | public BasicResult update(TRegionHazardInformEntity tRegionHazardInformEntity) { |
| | | this.tRegionHazardInformMapper.update(tRegionHazardInformEntity); |
| | | return BasicResult.success(); |
| | | } |
| | | |
| | | @Override |
| | | public BasicResult delete(String id) { |
| | | this.tRegionHazardInformMapper.delete(id); |
| | | return BasicResult.success(); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionWarranty.controller; |
| | | |
| | | import com.thhy.general.common.BasicResult; |
| | | import com.thhy.secure.modules.biz.regionWarranty.dto.TRegionWarrantyDto; |
| | | import com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyEntity; |
| | | import com.thhy.secure.modules.biz.regionWarranty.service.TRegionWarrantyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 14:20:54 |
| | | * 区域包保控制层 |
| | | */ |
| | | |
| | | @RestController |
| | | @RequestMapping(value = "tRegionWarranty") |
| | | public class TRegionWarrantyController { |
| | | |
| | | |
| | | @Autowired |
| | | private TRegionWarrantyService tRegionWarrantyService; |
| | | |
| | | @PostMapping(value = "insert") |
| | | BasicResult insert(@RequestBody TRegionWarrantyEntity tRegionWarrantyEntity){ |
| | | return tRegionWarrantyService.insert(tRegionWarrantyEntity); |
| | | } |
| | | |
| | | @GetMapping(value = "delete") |
| | | BasicResult delete(@RequestParam String id){ |
| | | return tRegionWarrantyService.delete(id); |
| | | } |
| | | |
| | | @PostMapping(value = "update") |
| | | BasicResult update(@RequestBody TRegionWarrantyEntity tRegionWarrantyEntity){ |
| | | return tRegionWarrantyService.update(tRegionWarrantyEntity); |
| | | } |
| | | |
| | | @PostMapping(value = "findAll") |
| | | BasicResult findAll(@RequestBody TRegionWarrantyDto tRegionWarrantyDto){ |
| | | return tRegionWarrantyService.findAll(tRegionWarrantyDto); |
| | | } |
| | | |
| | | @GetMapping(value = "findEntity") |
| | | BasicResult findEntity(@RequestParam String id){ |
| | | return tRegionWarrantyService.findEntity(id); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionWarranty.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 14:22:22 |
| | | * 区域包保dto |
| | | */ |
| | | @Data |
| | | public class TRegionWarrantyDto { |
| | | private Integer pageNum; |
| | | private Integer pageSize; |
| | | private String regionHazardInformId;//区域名称id |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionWarranty.entity; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 14:28:10 |
| | | * 区域包保实体 |
| | | */ |
| | | @Data |
| | | public class TRegionWarrantyEntity implements Serializable { |
| | | |
| | | private String id; |
| | | |
| | | private String regionHazardInformId;//区域id |
| | | private String region;//区域名称 |
| | | |
| | | private String riskSourceSituation;//危险情况 |
| | | private String countermeasures;//应对措施 |
| | | private String createUser; |
| | | private String companyId; |
| | | private Date createTime; |
| | | |
| | | private List<String> leader;//领导id集合 |
| | | private List<String> staff;//员工id集合 |
| | | |
| | | private List<TRegionWarrantyUserEntity> leaderList;//领导集合 |
| | | private List<TRegionWarrantyUserEntity> staffList;//领导集合 |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionWarranty.entity; |
| | | |
| | | import com.thhy.general.annotations.Idkey; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 14:39:29 |
| | | * 中间表 |
| | | */ |
| | | @Data |
| | | public class TRegionWarrantyUserEntity { |
| | | @Idkey("id") |
| | | private String id; |
| | | private String regionWarrantyId;//区域包保表id |
| | | private Integer userType; |
| | | private String userId;//1是领导 2是小组成员 |
| | | private String realName;//姓名 |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionWarranty.mapper; |
| | | |
| | | import com.thhy.secure.modules.biz.regionWarranty.dto.TRegionWarrantyDto; |
| | | import com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyEntity; |
| | | import com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyUserEntity; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 14:38:26 |
| | | * 区域包保mapper |
| | | */ |
| | | @Mapper |
| | | public interface TRegionWarrantyMapper { |
| | | |
| | | void insert(TRegionWarrantyEntity tRegionWarrantyEntity); |
| | | |
| | | /** |
| | | * 添加中间表 |
| | | * @param tRegionWarrantyUserEntity |
| | | */ |
| | | void insertMiddleTable(TRegionWarrantyUserEntity tRegionWarrantyUserEntity); |
| | | void delete(String id); |
| | | |
| | | /** |
| | | * 删除中间表 |
| | | * @param id |
| | | */ |
| | | void deleteMiddleTable(String id); |
| | | |
| | | void update(TRegionWarrantyEntity tRegionWarrantyEntity); |
| | | |
| | | List<TRegionWarrantyEntity> findAll(TRegionWarrantyDto tRegionWarrantyDto); |
| | | TRegionWarrantyEntity findEntity(String id); |
| | | |
| | | /** |
| | | * 查询中间表 |
| | | * @param regionWarrantyId |
| | | * @param userType |
| | | * @return |
| | | */ |
| | | List<TRegionWarrantyUserEntity> findMiddleTable(@Param("regionWarrantyId") String regionWarrantyId, |
| | | @Param("userType") Integer userType); |
| | | |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionWarranty.service; |
| | | |
| | | import com.thhy.general.common.BasicResult; |
| | | import com.thhy.secure.modules.biz.regionWarranty.dto.TRegionWarrantyDto; |
| | | import com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyEntity; |
| | | import com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyUserEntity; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 14:48:39 |
| | | * 区域包保interface |
| | | */ |
| | | public interface TRegionWarrantyService { |
| | | |
| | | BasicResult insert(TRegionWarrantyEntity tRegionWarrantyEntity); |
| | | BasicResult delete(String id); |
| | | |
| | | BasicResult update(TRegionWarrantyEntity tRegionWarrantyEntity); |
| | | |
| | | BasicResult findAll(TRegionWarrantyDto tRegionWarrantyDto); |
| | | BasicResult findEntity(String id); |
| | | } |
对比新文件 |
| | |
| | | package com.thhy.secure.modules.biz.regionWarranty.service.impl; |
| | | |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.github.pagehelper.PageInfo; |
| | | import com.thhy.general.common.BasicResult; |
| | | import com.thhy.general.utils.UUIDUtils; |
| | | import com.thhy.secure.modules.biz.regionWarranty.dto.TRegionWarrantyDto; |
| | | import com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyEntity; |
| | | import com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyUserEntity; |
| | | import com.thhy.secure.modules.biz.regionWarranty.mapper.TRegionWarrantyMapper; |
| | | import com.thhy.secure.modules.biz.regionWarranty.service.TRegionWarrantyService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author QiuYuHao |
| | | * @CreateDate 2023-09-26 14:49:45 |
| | | * 区域包保实现 |
| | | */ |
| | | @Service |
| | | public class TRegionWarrantyServiceImpl implements TRegionWarrantyService { |
| | | |
| | | @Autowired |
| | | private TRegionWarrantyMapper tRegionWarrantyMapper; |
| | | |
| | | @Override |
| | | public BasicResult insert(TRegionWarrantyEntity tRegionWarrantyEntity) { |
| | | String id = UUIDUtils.create();// |
| | | tRegionWarrantyEntity.setId(id); |
| | | tRegionWarrantyMapper.insert(tRegionWarrantyEntity); |
| | | |
| | | //新增领导 |
| | | List<String> leader = tRegionWarrantyEntity.getLeader(); |
| | | leader.forEach(s->{ |
| | | TRegionWarrantyUserEntity t = new TRegionWarrantyUserEntity(); |
| | | t.setRegionWarrantyId(id); |
| | | t.setUserId(s); |
| | | t.setUserType(1); |
| | | tRegionWarrantyMapper.insertMiddleTable(t); |
| | | }); |
| | | |
| | | //员工 |
| | | List<String> staff = tRegionWarrantyEntity.getStaff(); |
| | | staff.forEach(s -> { |
| | | TRegionWarrantyUserEntity t = new TRegionWarrantyUserEntity(); |
| | | t.setRegionWarrantyId(id); |
| | | t.setUserId(s); |
| | | t.setUserType(2); |
| | | tRegionWarrantyMapper.insertMiddleTable(t); |
| | | }); |
| | | return BasicResult.success(); |
| | | } |
| | | |
| | | @Override |
| | | public BasicResult delete(String id) { |
| | | tRegionWarrantyMapper.delete(id); |
| | | tRegionWarrantyMapper.deleteMiddleTable(id); |
| | | return BasicResult.success(); |
| | | } |
| | | |
| | | @Override |
| | | public BasicResult update(TRegionWarrantyEntity tRegionWarrantyEntity) { |
| | | tRegionWarrantyMapper.deleteMiddleTable(tRegionWarrantyEntity.getId()); |
| | | //领导 |
| | | List<String> leader = tRegionWarrantyEntity.getLeader(); |
| | | leader.forEach(s->{ |
| | | TRegionWarrantyUserEntity t = new TRegionWarrantyUserEntity(); |
| | | t.setRegionWarrantyId(tRegionWarrantyEntity.getId()); |
| | | t.setUserId(s); |
| | | t.setUserType(1); |
| | | tRegionWarrantyMapper.insertMiddleTable(t); |
| | | }); |
| | | |
| | | //员工 |
| | | List<String> staff = tRegionWarrantyEntity.getStaff(); |
| | | staff.forEach(s -> { |
| | | TRegionWarrantyUserEntity t = new TRegionWarrantyUserEntity(); |
| | | t.setRegionWarrantyId(tRegionWarrantyEntity.getId()); |
| | | t.setUserId(s); |
| | | t.setUserType(2); |
| | | tRegionWarrantyMapper.insertMiddleTable(t); |
| | | }); |
| | | tRegionWarrantyMapper.update(tRegionWarrantyEntity); |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public BasicResult findAll(TRegionWarrantyDto tRegionWarrantyDto) { |
| | | PageHelper.startPage(tRegionWarrantyDto.getPageNum(), tRegionWarrantyDto.getPageSize()); |
| | | List<TRegionWarrantyEntity> all = tRegionWarrantyMapper.findAll(tRegionWarrantyDto); |
| | | all.forEach(tRegionWarrantyEntity -> { |
| | | tRegionWarrantyEntity.setLeaderList(tRegionWarrantyMapper.findMiddleTable(tRegionWarrantyEntity.getId(),1)); |
| | | tRegionWarrantyEntity.setStaffList(tRegionWarrantyMapper.findMiddleTable(tRegionWarrantyEntity.getId(),2)); |
| | | }); |
| | | PageInfo<TRegionWarrantyEntity> info = new PageInfo(all); |
| | | return BasicResult.success(info); |
| | | } |
| | | |
| | | @Override |
| | | public BasicResult findEntity(String id) { |
| | | TRegionWarrantyEntity entity = tRegionWarrantyMapper.findEntity(id); |
| | | List<TRegionWarrantyUserEntity> leaderList = tRegionWarrantyMapper.findMiddleTable(id,1); |
| | | entity.setLeaderList(leaderList); |
| | | List<TRegionWarrantyUserEntity> staffList= tRegionWarrantyMapper.findMiddleTable(id,2); |
| | | entity.setStaffList(staffList); |
| | | return BasicResult.success(entity); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.thhy.secure.modules.biz.regionHazardInform.mapper.TRegionHazardInformMapper"> |
| | | <resultMap id="BaseResultMap" type="com.thhy.secure.modules.biz.regionHazardInform.entity.TRegionHazardInformEntity"> |
| | | <!-- |
| | | WARNING - @mbg.generated |
| | | This element is automatically generated by MyBatis Generator, do not modify. |
| | | This element was generated on Fri Jun 02 10:07:36 CST 2023. |
| | | --> |
| | | <id column="id" jdbcType="VARCHAR" property="id" /> |
| | | <result column="region" jdbcType="VARCHAR" property="region" /> |
| | | <result column="level" jdbcType="INTEGER" property="level" /> |
| | | <result column="region_color" jdbcType="VARCHAR" property="regionColor" /> |
| | | <result column="company_id" jdbcType="VARCHAR" property="companyId" /> |
| | | <result column="create_user" jdbcType="VARCHAR" property="createUser" /> |
| | | <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> |
| | | </resultMap> |
| | | |
| | | |
| | | <insert id="insert" > |
| | | insert into t_region_hazard_inform |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | id, |
| | | </if> |
| | | <if test="region != null"> |
| | | region, |
| | | </if> |
| | | <if test="level != null"> |
| | | `level`, |
| | | </if> |
| | | <if test="regionColor != null"> |
| | | region_color, |
| | | </if> |
| | | |
| | | <if test="createTime != null"> |
| | | create_time, |
| | | </if> |
| | | <if test="createUser != null"> |
| | | create_user, |
| | | </if> |
| | | <if test="companyId != null"> |
| | | company_id, |
| | | </if> |
| | | </trim> |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | #{id,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="region != null"> |
| | | #{region,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="level != null"> |
| | | #{level,jdbcType=INTEGER}, |
| | | </if> |
| | | <if test="regionColor != null"> |
| | | #{regionColor,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="createTime != null"> |
| | | #{createTime,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="createUser != null"> |
| | | #{createUser,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="companyId != null"> |
| | | #{companyId,jdbcType=VARCHAR}, |
| | | </if> |
| | | </trim> |
| | | </insert> |
| | | <select id="findAll" parameterType="com.thhy.secure.modules.biz.regionHazardInform.dto.TRegionHazardInformDto" resultMap="BaseResultMap"> |
| | | SELECT |
| | | id, |
| | | region, |
| | | `level`, |
| | | region_color, |
| | | company_id, |
| | | create_user, |
| | | create_time, |
| | | is_use |
| | | FROM |
| | | t_region_hazard_inform |
| | | WHERE |
| | | is_use = 1 |
| | | <if test="companyId!=null and companyId!='' "> |
| | | and company_id=#{companyId} |
| | | </if> |
| | | <if test="level!=null and level!='' "> |
| | | and `level`=#{level} |
| | | </if> |
| | | order by create_time desc |
| | | </select> |
| | | <select id="findEntity" parameterType="java.lang.String" resultType="com.thhy.secure.modules.biz.regionHazardInform.entity.TRegionHazardInformEntity"> |
| | | SELECT |
| | | id, |
| | | region, |
| | | `level`, |
| | | region_color, |
| | | company_id, |
| | | create_user, |
| | | create_time, |
| | | is_use |
| | | FROM |
| | | t_region_hazard_inform |
| | | WHERE |
| | | is_use = 1 and id = #{id,jdbcType=VARCHAR} |
| | | </select> |
| | | <update id="update"> |
| | | update t_region_hazard_inform |
| | | <set> |
| | | <if test="level != null"> |
| | | level = #{level,jdbcType=INTEGER}, |
| | | </if> |
| | | <if test="region != null"> |
| | | region = #{region,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="regionColor != null"> |
| | | region_color = #{regionColor,jdbcType=VARCHAR}, |
| | | </if> |
| | | </set> |
| | | where id = #{id,jdbcType=VARCHAR} |
| | | </update> |
| | | <delete id="delete"> |
| | | update t_region_hazard_inform set is_use = 2 where id = #{id,jdbcType=VARCHAR} |
| | | </delete> |
| | | </mapper> |
对比新文件 |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.thhy.secure.modules.biz.regionWarranty.mapper.TRegionWarrantyMapper"> |
| | | |
| | | <resultMap id="BaseResultMap" |
| | | type="com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyEntity"> |
| | | <result column="region" jdbcType="VARCHAR" property="region" /> |
| | | <result column="region_hazard_inform_id" jdbcType="VARCHAR" property="regionHazardInformId" /> |
| | | <result column="risk_source_situation" jdbcType="VARCHAR" property="riskSourceSituation" /> |
| | | <result column="countermeasures" jdbcType="VARCHAR" property="countermeasures" /> |
| | | <result column="company_id" jdbcType="VARCHAR" property="companyId" /> |
| | | <result column="create_user" jdbcType="VARCHAR" property="createUser" /> |
| | | <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> |
| | | </resultMap> |
| | | |
| | | <insert id="insert" > |
| | | insert into t_region_warranty |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | id, |
| | | </if> |
| | | <if test="regionHazardInformId != null"> |
| | | region_hazard_inform_id, |
| | | </if> |
| | | <if test="riskSourceSituation != null"> |
| | | risk_source_situation, |
| | | </if> |
| | | <if test="countermeasures != null"> |
| | | countermeasures, |
| | | </if> |
| | | |
| | | <if test="createTime != null"> |
| | | create_time, |
| | | </if> |
| | | <if test="createUser != null"> |
| | | create_user, |
| | | </if> |
| | | <if test="companyId != null"> |
| | | company_id, |
| | | </if> |
| | | </trim> |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | #{id,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="regionHazardInformId != null"> |
| | | #{regionHazardInformId,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="riskSourceSituation != null"> |
| | | #{riskSourceSituation,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="countermeasures != null"> |
| | | #{countermeasures,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="createTime != null"> |
| | | #{createTime,jdbcType=TIMESTAMP}, |
| | | </if> |
| | | <if test="createUser != null"> |
| | | #{createUser,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="companyId != null"> |
| | | #{companyId,jdbcType=VARCHAR}, |
| | | </if> |
| | | </trim> |
| | | </insert> |
| | | |
| | | <select id="findAll" parameterType="com.thhy.secure.modules.biz.regionWarranty.dto.TRegionWarrantyDto" resultMap="com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyEntity"> |
| | | SELECT |
| | | a.id, |
| | | a.region_hazard_inform_id regionHazardInformId, |
| | | a.risk_source_situation riskSourceSituation, |
| | | a.countermeasures countermeasures, |
| | | a.create_time createTime, |
| | | a.create_user createUser, |
| | | b.region |
| | | FROM |
| | | t_region_warranty a |
| | | LEFT JOIN t_region_hazard_inform b ON b.id = a.region_hazard_inform_id |
| | | WHERE is_use = 1 |
| | | <if test="companyId!=null and companyId!='' "> |
| | | and a.company_id=#{companyId} |
| | | </if> |
| | | <if test="regionHazardInformId!=null and regionHazardInformId!='' "> |
| | | and b.id = #{regionHazardInformId} |
| | | </if> |
| | | order by a.create_time desc |
| | | </select> |
| | | <select id="findEntity" parameterType="java.lang.String" resultType="com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyEntity"> |
| | | SELECT |
| | | a.id, |
| | | a.region_hazard_inform_id regionHazardInformId, |
| | | a.risk_source_situation riskSourceSituation, |
| | | a.countermeasures countermeasures, |
| | | a.create_time createTime, |
| | | a.create_user createUser, |
| | | b.region |
| | | FROM |
| | | t_region_warranty a |
| | | LEFT JOIN t_region_hazard_inform b ON b.id = a.region_hazard_inform_id |
| | | WHERE is_use = 1 and a.id = #{id,jdbcType=VARCHAR} |
| | | </select> |
| | | <update id="update"> |
| | | update t_region_warranty |
| | | <set> |
| | | <if test="regionHazardInformId != null"> |
| | | #{regionHazardInformId,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="riskSourceSituation != null"> |
| | | #{riskSourceSituation,jdbcType=VARCHAR}, |
| | | </if> |
| | | <if test="countermeasures != null"> |
| | | #{countermeasures,jdbcType=VARCHAR}, |
| | | </if> |
| | | </set> |
| | | where id = #{id,jdbcType=VARCHAR} |
| | | </update> |
| | | <delete id="delete"> |
| | | update t_region_warranty set is_use = 2 where id = #{id,jdbcType=VARCHAR} |
| | | </delete> |
| | | |
| | | <insert id="insertMiddleTable" > |
| | | insert into t_region_warranty_user |
| | | <trim prefix="(" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | id, |
| | | </if> |
| | | <if test="regionWarrantyId != null"> |
| | | region_warranty_id, |
| | | </if> |
| | | <if test="userType != null"> |
| | | user_type, |
| | | </if> |
| | | <if test="userId != null"> |
| | | user_id, |
| | | </if> |
| | | </trim> |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | | <if test="id != null"> |
| | | #{id}, |
| | | </if> |
| | | <if test="regionWarrantyId != null"> |
| | | #{regionWarrantyId}, |
| | | </if> |
| | | <if test="userType != null"> |
| | | #{userType}, |
| | | </if> |
| | | <if test="userId != null"> |
| | | #{userId}, |
| | | </if> |
| | | </trim> |
| | | </insert> |
| | | |
| | | <delete id="deleteMiddleTable"> |
| | | delete from t_region_warranty_user where region_warranty_id = #{id,jdbcType=VARCHAR} |
| | | </delete> |
| | | |
| | | <select id="findMiddleTable" parameterType="java.lang.String" resultType="com.thhy.secure.modules.biz.regionWarranty.entity.TRegionWarrantyUserEntity"> |
| | | SELECT |
| | | a.id, |
| | | a.region_warranty_id regionWarrantyId, |
| | | a.user_id userId, |
| | | a.user_type userType, |
| | | b.real_name as realName |
| | | FROM t_region_warranty_user a |
| | | LEFT JOIN sys_plat_user b ON b.user_id = a.user_id |
| | | WHERE a.region_warranty_id = #{regionWarrantyId} and a.user_type = #{userType} |
| | | </select> |
| | | </mapper> |
| | |
| | | "version": "7.17.2", |
| | | "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.2.tgz", |
| | | "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==", |
| | | "dev": true, |
| | | "requires": { |
| | | "regenerator-runtime": "^0.13.4" |
| | | } |
| | |
| | | "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", |
| | | "dev": true |
| | | }, |
| | | "@transloadit/prettier-bytes": { |
| | | "version": "0.0.7", |
| | | "resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", |
| | | "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==" |
| | | }, |
| | | "@types/body-parser": { |
| | | "version": "1.19.2", |
| | | "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz", |
| | |
| | | "@types/express-serve-static-core": "*", |
| | | "@types/node": "*" |
| | | } |
| | | }, |
| | | "@types/event-emitter": { |
| | | "version": "0.3.3", |
| | | "resolved": "https://registry.npmjs.org/@types/event-emitter/-/event-emitter-0.3.3.tgz", |
| | | "integrity": "sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q==" |
| | | }, |
| | | "@types/express": { |
| | | "version": "4.17.13", |
| | |
| | | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "@uppy/companion-client": { |
| | | "version": "2.2.2", |
| | | "resolved": "https://registry.npmjs.org/@uppy/companion-client/-/companion-client-2.2.2.tgz", |
| | | "integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==", |
| | | "requires": { |
| | | "@uppy/utils": "^4.1.2", |
| | | "namespace-emitter": "^2.0.1" |
| | | } |
| | | }, |
| | | "@uppy/core": { |
| | | "version": "2.3.4", |
| | | "resolved": "https://registry.npmjs.org/@uppy/core/-/core-2.3.4.tgz", |
| | | "integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==", |
| | | "requires": { |
| | | "@transloadit/prettier-bytes": "0.0.7", |
| | | "@uppy/store-default": "^2.1.1", |
| | | "@uppy/utils": "^4.1.3", |
| | | "lodash.throttle": "^4.1.1", |
| | | "mime-match": "^1.0.2", |
| | | "namespace-emitter": "^2.0.1", |
| | | "nanoid": "^3.1.25", |
| | | "preact": "^10.5.13" |
| | | } |
| | | }, |
| | | "@uppy/store-default": { |
| | | "version": "2.1.1", |
| | | "resolved": "https://registry.npmjs.org/@uppy/store-default/-/store-default-2.1.1.tgz", |
| | | "integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==" |
| | | }, |
| | | "@uppy/utils": { |
| | | "version": "4.1.3", |
| | | "resolved": "https://registry.npmjs.org/@uppy/utils/-/utils-4.1.3.tgz", |
| | | "integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==", |
| | | "requires": { |
| | | "lodash.throttle": "^4.1.1" |
| | | } |
| | | }, |
| | | "@uppy/xhr-upload": { |
| | | "version": "2.1.3", |
| | | "resolved": "https://registry.npmjs.org/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz", |
| | | "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==", |
| | | "requires": { |
| | | "@uppy/companion-client": "^2.2.2", |
| | | "@uppy/utils": "^4.1.2", |
| | | "nanoid": "^3.1.25" |
| | | } |
| | | }, |
| | | "@videojs/http-streaming": { |
| | | "version": "3.5.3", |
| | | "resolved": "https://registry.npmjs.org/@videojs/http-streaming/-/http-streaming-3.5.3.tgz", |
| | | "integrity": "sha512-dty8lsZk9QPc0i4It79tjWsmPiaC3FpgARFM0vJGko4k3yKNZIYkAk8kjiDRfkAQH/HZ3rYi5dDTriFNzwSsIg==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "@videojs/vhs-utils": "4.0.0", |
| | | "aes-decrypter": "4.0.1", |
| | | "global": "^4.4.0", |
| | | "m3u8-parser": "^7.1.0", |
| | | "mpd-parser": "^1.1.1", |
| | | "mux.js": "7.0.0", |
| | | "video.js": "^7 || ^8" |
| | | }, |
| | | "dependencies": { |
| | | "m3u8-parser": { |
| | | "version": "7.1.0", |
| | | "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-7.1.0.tgz", |
| | | "integrity": "sha512-7N+pk79EH4oLKPEYdgRXgAsKDyA/VCo0qCHlUwacttQA0WqsjZQYmNfywMvjlY9MpEBVZEt0jKFd73Kv15EBYQ==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "@videojs/vhs-utils": "^3.0.5", |
| | | "global": "^4.4.0" |
| | | }, |
| | | "dependencies": { |
| | | "@videojs/vhs-utils": { |
| | | "version": "3.0.5", |
| | | "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz", |
| | | "integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "global": "^4.4.0", |
| | | "url-toolkit": "^2.2.1" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "mux.js": { |
| | | "version": "7.0.0", |
| | | "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-7.0.0.tgz", |
| | | "integrity": "sha512-DeZmr+3NDrO02k4SREtl4VB5GyGPCz2fzMjDxBIlamkxffSTLge97rtNMoonnmFHTp96QggDucUtKv3fmyObrA==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.11.2", |
| | | "global": "^4.4.0" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "@videojs/vhs-utils": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-4.0.0.tgz", |
| | | "integrity": "sha512-xJp7Yd4jMLwje2vHCUmi8MOUU76nxiwII3z4Eg3Ucb+6rrkFVGosrXlMgGnaLjq724j3wzNElRZ71D/CKrTtxg==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "global": "^4.4.0", |
| | | "url-toolkit": "^2.2.1" |
| | | } |
| | | }, |
| | | "@videojs/xhr": { |
| | | "version": "2.6.0", |
| | | "resolved": "https://registry.npmjs.org/@videojs/xhr/-/xhr-2.6.0.tgz", |
| | | "integrity": "sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.5.5", |
| | | "global": "~4.4.0", |
| | | "is-function": "^1.0.1" |
| | | } |
| | | }, |
| | | "@vue/babel-helper-vue-jsx-merge-props": { |
| | |
| | | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", |
| | | "dev": true |
| | | }, |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", |
| | | "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "ssri": { |
| | | "version": "8.0.1", |
| | | "resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz", |
| | |
| | | "dev": true, |
| | | "requires": { |
| | | "minipass": "^3.1.1" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | } |
| | | } |
| | | } |
| | |
| | | "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", |
| | | "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", |
| | | "dev": true |
| | | }, |
| | | "@wangeditor/basic-modules": { |
| | | "version": "1.1.7", |
| | | "resolved": "https://registry.npmjs.org/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", |
| | | "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", |
| | | "requires": { |
| | | "is-url": "^1.2.4" |
| | | } |
| | | }, |
| | | "@wangeditor/code-highlight": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmjs.org/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", |
| | | "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", |
| | | "requires": { |
| | | "prismjs": "^1.23.0" |
| | | } |
| | | }, |
| | | "@wangeditor/core": { |
| | | "version": "1.1.19", |
| | | "resolved": "https://registry.npmjs.org/@wangeditor/core/-/core-1.1.19.tgz", |
| | | "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", |
| | | "requires": { |
| | | "@types/event-emitter": "^0.3.3", |
| | | "event-emitter": "^0.3.5", |
| | | "html-void-elements": "^2.0.0", |
| | | "i18next": "^20.4.0", |
| | | "scroll-into-view-if-needed": "^2.2.28", |
| | | "slate-history": "^0.66.0" |
| | | } |
| | | }, |
| | | "@wangeditor/editor": { |
| | | "version": "5.1.23", |
| | | "resolved": "https://registry.npmjs.org/@wangeditor/editor/-/editor-5.1.23.tgz", |
| | | "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", |
| | | "requires": { |
| | | "@uppy/core": "^2.1.1", |
| | | "@uppy/xhr-upload": "^2.0.3", |
| | | "@wangeditor/basic-modules": "^1.1.7", |
| | | "@wangeditor/code-highlight": "^1.0.3", |
| | | "@wangeditor/core": "^1.1.19", |
| | | "@wangeditor/list-module": "^1.0.5", |
| | | "@wangeditor/table-module": "^1.1.4", |
| | | "@wangeditor/upload-image-module": "^1.0.2", |
| | | "@wangeditor/video-module": "^1.1.4", |
| | | "dom7": "^3.0.0", |
| | | "is-hotkey": "^0.2.0", |
| | | "lodash.camelcase": "^4.3.0", |
| | | "lodash.clonedeep": "^4.5.0", |
| | | "lodash.debounce": "^4.0.8", |
| | | "lodash.foreach": "^4.5.0", |
| | | "lodash.isequal": "^4.5.0", |
| | | "lodash.throttle": "^4.1.1", |
| | | "lodash.toarray": "^4.4.0", |
| | | "nanoid": "^3.2.0", |
| | | "slate": "^0.72.0", |
| | | "snabbdom": "^3.1.0" |
| | | } |
| | | }, |
| | | "@wangeditor/editor-for-vue": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmjs.org/@wangeditor/editor-for-vue/-/editor-for-vue-1.0.2.tgz", |
| | | "integrity": "sha512-BOENvAXJVtVXlE2X50AAvjV82YlCUeu5cbeR0cvEQHQjYtiVnJtq7HSoj85r2kTgGouI5OrpJG9BBEjSjUSPyA==" |
| | | }, |
| | | "@wangeditor/list-module": { |
| | | "version": "1.0.5", |
| | | "resolved": "https://registry.npmjs.org/@wangeditor/list-module/-/list-module-1.0.5.tgz", |
| | | "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==" |
| | | }, |
| | | "@wangeditor/table-module": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmjs.org/@wangeditor/table-module/-/table-module-1.1.4.tgz", |
| | | "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==" |
| | | }, |
| | | "@wangeditor/upload-image-module": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmjs.org/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz", |
| | | "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==" |
| | | }, |
| | | "@wangeditor/video-module": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmjs.org/@wangeditor/video-module/-/video-module-1.1.4.tgz", |
| | | "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==" |
| | | }, |
| | | "@webassemblyjs/ast": { |
| | | "version": "1.9.0", |
| | |
| | | "@xtuc/long": "4.2.2" |
| | | } |
| | | }, |
| | | "@xmldom/xmldom": { |
| | | "version": "0.8.10", |
| | | "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", |
| | | "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==" |
| | | }, |
| | | "@xtuc/ieee754": { |
| | | "version": "1.2.0", |
| | | "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", |
| | |
| | | "resolved": "https://registry.npmmirror.com/address/-/address-1.1.2.tgz", |
| | | "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", |
| | | "dev": true |
| | | }, |
| | | "aes-decrypter": { |
| | | "version": "4.0.1", |
| | | "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-4.0.1.tgz", |
| | | "integrity": "sha512-H1nh/P9VZXUf17AA5NQfJML88CFjVBDuGkp5zDHa7oEhYN9TTpNLJknRY1ie0iSKWlDf6JRnJKaZVDSQdPy6Cg==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "@videojs/vhs-utils": "^3.0.5", |
| | | "global": "^4.4.0", |
| | | "pkcs7": "^1.0.4" |
| | | }, |
| | | "dependencies": { |
| | | "@videojs/vhs-utils": { |
| | | "version": "3.0.5", |
| | | "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz", |
| | | "integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "global": "^4.4.0", |
| | | "url-toolkit": "^2.2.1" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "ajv": { |
| | | "version": "6.12.6", |
| | |
| | | "version": "1.0.10", |
| | | "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", |
| | | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", |
| | | "dev": true, |
| | | "requires": { |
| | | "sprintf-js": "~1.0.2" |
| | | } |
| | |
| | | "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", |
| | | "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", |
| | | "dev": true |
| | | }, |
| | | "bmaplib.curveline": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/bmaplib.curveline/-/bmaplib.curveline-1.0.0.tgz", |
| | | "integrity": "sha512-9wcFMVhiYxNPqpvsLDAADn3qDhNzXp2mA6VyHSHg2XOAgSooC7ZiujdFhy0sp+0QYjTfJ/MjmLuNoUg2HHxH4Q==" |
| | | }, |
| | | "bmaplib.heatmap": { |
| | | "version": "1.0.4", |
| | | "resolved": "https://registry.npmjs.org/bmaplib.heatmap/-/bmaplib.heatmap-1.0.4.tgz", |
| | | "integrity": "sha512-rmhqUARBpUSJ9jXzUI2j7dIOqnc38bqubkx/8a349U2qtw/ulLUwyzRD535OrA8G7w5cz4aPKm6/rNvUAarg/Q==" |
| | | }, |
| | | "bmaplib.lushu": { |
| | | "version": "1.0.7", |
| | | "resolved": "https://registry.npmjs.org/bmaplib.lushu/-/bmaplib.lushu-1.0.7.tgz", |
| | | "integrity": "sha512-LVvgpESPii6xGxyjnQjq8u+ic4NjvhdCPV/RiSS/PGTUdZKeTDS7prSpleJLZH3ES0+oc0gYn8bw0LtPYUSz2w==" |
| | | }, |
| | | "bmaplib.markerclusterer": { |
| | | "version": "1.0.13", |
| | | "resolved": "https://registry.npmjs.org/bmaplib.markerclusterer/-/bmaplib.markerclusterer-1.0.13.tgz", |
| | | "integrity": "sha512-VrLyWSiuDEVNi0yUfwOhFQ6z1oEEHS4w36GNu3iASu6p52QIx9uAXMUkuSCHReNR0bj2Cp9SA1dSx5RpojXajQ==", |
| | | "requires": { |
| | | "bmaplib.texticonoverlay": "^1.0.2" |
| | | } |
| | | }, |
| | | "bmaplib.texticonoverlay": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmjs.org/bmaplib.texticonoverlay/-/bmaplib.texticonoverlay-1.0.2.tgz", |
| | | "integrity": "sha512-4ZTWr4ZP3B6qEWput5Tut16CfZgII38YwM3bpyb4gFTQyORlKYryFp9WHWrwZZaHlOyYDAXG9SX0hka43jTADg==" |
| | | }, |
| | | "bn.js": { |
| | | "version": "5.2.0", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "compute-scroll-into-view": { |
| | | "version": "1.0.20", |
| | | "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", |
| | | "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" |
| | | }, |
| | | "concat-map": { |
| | | "version": "0.0.1", |
| | | "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", |
| | |
| | | "integrity": "sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==", |
| | | "dev": true |
| | | }, |
| | | "d": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", |
| | | "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", |
| | | "requires": { |
| | | "es5-ext": "^0.10.50", |
| | | "type": "^1.0.1" |
| | | } |
| | | }, |
| | | "dashdash": { |
| | | "version": "1.14.1", |
| | | "resolved": "https://registry.npmmirror.com/dashdash/-/dashdash-1.14.1.tgz", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "dom-walk": { |
| | | "version": "0.1.2", |
| | | "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", |
| | | "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" |
| | | }, |
| | | "dom7": { |
| | | "version": "3.0.0", |
| | | "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", |
| | | "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", |
| | | "requires": { |
| | | "ssr-window": "^3.0.0-alpha.1" |
| | | } |
| | | }, |
| | | "domain-browser": { |
| | | "version": "1.2.0", |
| | | "resolved": "https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz", |
| | |
| | | "requires": { |
| | | "jsbn": "~0.1.0", |
| | | "safer-buffer": "^2.1.0" |
| | | } |
| | | }, |
| | | "echarts": { |
| | | "version": "5.4.3", |
| | | "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.3.tgz", |
| | | "integrity": "sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==", |
| | | "requires": { |
| | | "tslib": "2.3.0", |
| | | "zrender": "5.4.4" |
| | | }, |
| | | "dependencies": { |
| | | "tslib": { |
| | | "version": "2.3.0", |
| | | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", |
| | | "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" |
| | | } |
| | | } |
| | | }, |
| | | "ee-first": { |
| | |
| | | "is-callable": "^1.1.4", |
| | | "is-date-object": "^1.0.1", |
| | | "is-symbol": "^1.0.2" |
| | | } |
| | | }, |
| | | "es5-ext": { |
| | | "version": "0.10.62", |
| | | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", |
| | | "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", |
| | | "requires": { |
| | | "es6-iterator": "^2.0.3", |
| | | "es6-symbol": "^3.1.3", |
| | | "next-tick": "^1.1.0" |
| | | } |
| | | }, |
| | | "es5-shim": { |
| | | "version": "4.6.7", |
| | | "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.6.7.tgz", |
| | | "integrity": "sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ==" |
| | | }, |
| | | "es6-iterator": { |
| | | "version": "2.0.3", |
| | | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", |
| | | "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", |
| | | "requires": { |
| | | "d": "1", |
| | | "es5-ext": "^0.10.35", |
| | | "es6-symbol": "^3.1.1" |
| | | } |
| | | }, |
| | | "es6-symbol": { |
| | | "version": "3.1.3", |
| | | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", |
| | | "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", |
| | | "requires": { |
| | | "d": "^1.0.1", |
| | | "ext": "^1.1.2" |
| | | } |
| | | }, |
| | | "escalade": { |
| | |
| | | "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", |
| | | "dev": true |
| | | }, |
| | | "event-emitter": { |
| | | "version": "0.3.5", |
| | | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", |
| | | "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", |
| | | "requires": { |
| | | "d": "1", |
| | | "es5-ext": "~0.10.14" |
| | | } |
| | | }, |
| | | "event-pubsub": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/event-pubsub/-/event-pubsub-4.3.0.tgz", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "ext": { |
| | | "version": "1.7.0", |
| | | "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", |
| | | "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", |
| | | "requires": { |
| | | "type": "^2.7.2" |
| | | }, |
| | | "dependencies": { |
| | | "type": { |
| | | "version": "2.7.2", |
| | | "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", |
| | | "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" |
| | | } |
| | | } |
| | | }, |
| | | "extend": { |
| | | "version": "3.0.2", |
| | | "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", |
| | |
| | | "version": "1.3.0", |
| | | "resolved": "https://registry.npmmirror.com/extsprintf/-/extsprintf-1.3.0.tgz", |
| | | "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" |
| | | }, |
| | | "ezuikit-js": { |
| | | "version": "7.7.6", |
| | | "resolved": "https://registry.npmjs.org/ezuikit-js/-/ezuikit-js-7.7.6.tgz", |
| | | "integrity": "sha512-eizB8ToIBumN7v69SII4poly1ppZGIGQPj9c8yYTmP7KGZpXnqrQAXcjYrN4PRjcI2U7jrJoRr1i4BNIofzYVg==" |
| | | }, |
| | | "fast-deep-equal": { |
| | | "version": "3.1.3", |
| | |
| | | "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", |
| | | "dev": true |
| | | }, |
| | | "global": { |
| | | "version": "4.4.0", |
| | | "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", |
| | | "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", |
| | | "requires": { |
| | | "min-document": "^2.19.0", |
| | | "process": "^0.11.10" |
| | | } |
| | | }, |
| | | "globals": { |
| | | "version": "11.12.0", |
| | | "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", |
| | |
| | | "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", |
| | | "dev": true |
| | | }, |
| | | "html-void-elements": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", |
| | | "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==" |
| | | }, |
| | | "html-webpack-plugin": { |
| | | "version": "3.2.0", |
| | | "resolved": "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", |
| | |
| | | "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", |
| | | "dev": true |
| | | }, |
| | | "i18next": { |
| | | "version": "20.6.1", |
| | | "resolved": "https://registry.npmjs.org/i18next/-/i18next-20.6.1.tgz", |
| | | "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.0" |
| | | } |
| | | }, |
| | | "iconv-lite": { |
| | | "version": "0.4.24", |
| | | "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz", |
| | |
| | | "resolved": "https://registry.npmmirror.com/ignore/-/ignore-4.0.6.tgz", |
| | | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", |
| | | "dev": true |
| | | }, |
| | | "immer": { |
| | | "version": "9.0.21", |
| | | "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", |
| | | "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" |
| | | }, |
| | | "import-cwd": { |
| | | "version": "2.1.0", |
| | |
| | | "resolved": "https://registry.npmmirror.com/indexes-of/-/indexes-of-1.0.1.tgz", |
| | | "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", |
| | | "dev": true |
| | | }, |
| | | "individual": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmjs.org/individual/-/individual-2.0.0.tgz", |
| | | "integrity": "sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g==" |
| | | }, |
| | | "infer-owner": { |
| | | "version": "1.0.4", |
| | |
| | | "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", |
| | | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" |
| | | }, |
| | | "is-function": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", |
| | | "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" |
| | | }, |
| | | "is-glob": { |
| | | "version": "4.0.3", |
| | | "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", |
| | |
| | | "requires": { |
| | | "is-extglob": "^2.1.1" |
| | | } |
| | | }, |
| | | "is-hotkey": { |
| | | "version": "0.2.0", |
| | | "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.2.0.tgz", |
| | | "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==" |
| | | }, |
| | | "is-negative-zero": { |
| | | "version": "2.0.2", |
| | |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz", |
| | | "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" |
| | | }, |
| | | "is-url": { |
| | | "version": "1.2.4", |
| | | "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", |
| | | "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" |
| | | }, |
| | | "is-utf8": { |
| | | "version": "0.2.1", |
| | |
| | | "verror": "1.10.0" |
| | | } |
| | | }, |
| | | "keycode": { |
| | | "version": "2.2.0", |
| | | "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", |
| | | "integrity": "sha512-ps3I9jAdNtRpJrbBvQjpzyFbss/skHqzS+eu4RxKLaEAtFqkjZaB6TZMSivPbLxf4K7VI4SjR0P5mRCX5+Q25A==" |
| | | }, |
| | | "killable": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmmirror.com/killable/-/killable-1.0.1.tgz", |
| | |
| | | "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", |
| | | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", |
| | | "dev": true |
| | | }, |
| | | "linkify-it": { |
| | | "version": "2.2.0", |
| | | "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", |
| | | "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", |
| | | "requires": { |
| | | "uc.micro": "^1.0.1" |
| | | } |
| | | }, |
| | | "load-json-file": { |
| | | "version": "1.1.0", |
| | |
| | | "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", |
| | | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" |
| | | }, |
| | | "lodash.camelcase": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", |
| | | "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" |
| | | }, |
| | | "lodash.clonedeep": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", |
| | | "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" |
| | | }, |
| | | "lodash.debounce": { |
| | | "version": "4.0.8", |
| | | "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", |
| | | "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", |
| | | "dev": true |
| | | "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" |
| | | }, |
| | | "lodash.defaultsdeep": { |
| | | "version": "4.6.1", |
| | | "resolved": "https://registry.npmmirror.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", |
| | | "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", |
| | | "dev": true |
| | | }, |
| | | "lodash.foreach": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", |
| | | "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" |
| | | }, |
| | | "lodash.isequal": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", |
| | | "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" |
| | | }, |
| | | "lodash.kebabcase": { |
| | | "version": "4.1.1", |
| | |
| | | "resolved": "https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz", |
| | | "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", |
| | | "dev": true |
| | | }, |
| | | "lodash.throttle": { |
| | | "version": "4.1.1", |
| | | "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", |
| | | "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" |
| | | }, |
| | | "lodash.toarray": { |
| | | "version": "4.4.0", |
| | | "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", |
| | | "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==" |
| | | }, |
| | | "lodash.transform": { |
| | | "version": "4.6.0", |
| | |
| | | "yallist": "^3.0.2" |
| | | } |
| | | }, |
| | | "m3u8-parser": { |
| | | "version": "6.2.0", |
| | | "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-6.2.0.tgz", |
| | | "integrity": "sha512-qlC00JTxYOxawcqg+RB8jbyNwL3foY/nCY61kyWP+RCuJE9APLeqB/nSlTjb4Mg0yRmyERgjswpdQxMvkeoDrg==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "@videojs/vhs-utils": "^3.0.5", |
| | | "global": "^4.4.0" |
| | | }, |
| | | "dependencies": { |
| | | "@videojs/vhs-utils": { |
| | | "version": "3.0.5", |
| | | "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz", |
| | | "integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "global": "^4.4.0", |
| | | "url-toolkit": "^2.2.1" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "make-dir": { |
| | | "version": "3.1.0", |
| | | "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz", |
| | |
| | | "object-visit": "^1.0.0" |
| | | } |
| | | }, |
| | | "markdown-it": { |
| | | "version": "8.4.2", |
| | | "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", |
| | | "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", |
| | | "requires": { |
| | | "argparse": "^1.0.7", |
| | | "entities": "~1.1.1", |
| | | "linkify-it": "^2.0.0", |
| | | "mdurl": "^1.0.1", |
| | | "uc.micro": "^1.0.5" |
| | | }, |
| | | "dependencies": { |
| | | "entities": { |
| | | "version": "1.1.2", |
| | | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", |
| | | "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" |
| | | } |
| | | } |
| | | }, |
| | | "md5.js": { |
| | | "version": "1.3.5", |
| | | "resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz", |
| | |
| | | "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.4.tgz", |
| | | "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", |
| | | "dev": true |
| | | }, |
| | | "mdurl": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", |
| | | "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" |
| | | }, |
| | | "media-typer": { |
| | | "version": "0.3.0", |
| | |
| | | "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.51.0.tgz", |
| | | "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" |
| | | }, |
| | | "mime-match": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmjs.org/mime-match/-/mime-match-1.0.2.tgz", |
| | | "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", |
| | | "requires": { |
| | | "wildcard": "^1.1.0" |
| | | } |
| | | }, |
| | | "mime-types": { |
| | | "version": "2.1.34", |
| | | "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.34.tgz", |
| | |
| | | "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz", |
| | | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", |
| | | "dev": true |
| | | }, |
| | | "min-document": { |
| | | "version": "2.19.0", |
| | | "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", |
| | | "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", |
| | | "requires": { |
| | | "dom-walk": "^0.1.0" |
| | | } |
| | | }, |
| | | "mini-css-extract-plugin": { |
| | | "version": "0.9.0", |
| | |
| | | "run-queue": "^1.0.3" |
| | | } |
| | | }, |
| | | "mpd-parser": { |
| | | "version": "1.2.2", |
| | | "resolved": "https://registry.npmjs.org/mpd-parser/-/mpd-parser-1.2.2.tgz", |
| | | "integrity": "sha512-QCfB1koOoZw6E5La1cx+W/Yd0EZlRhHMqMr4TAJez0eRTuPDzPM5FWoiOqjyo37W+ISPLzmfJACSbJFEBjbL4Q==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "@videojs/vhs-utils": "^3.0.5", |
| | | "@xmldom/xmldom": "^0.8.3", |
| | | "global": "^4.4.0" |
| | | }, |
| | | "dependencies": { |
| | | "@videojs/vhs-utils": { |
| | | "version": "3.0.5", |
| | | "resolved": "https://registry.npmjs.org/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz", |
| | | "integrity": "sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "global": "^4.4.0", |
| | | "url-toolkit": "^2.2.1" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "ms": { |
| | | "version": "2.1.2", |
| | | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", |
| | |
| | | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", |
| | | "dev": true |
| | | }, |
| | | "mux.js": { |
| | | "version": "6.3.0", |
| | | "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-6.3.0.tgz", |
| | | "integrity": "sha512-/QTkbSAP2+w1nxV+qTcumSDN5PA98P0tjrADijIzQHe85oBK3Akhy9AHlH0ne/GombLMz1rLyvVsmrgRxoPDrQ==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.11.2", |
| | | "global": "^4.4.0" |
| | | } |
| | | }, |
| | | "mz": { |
| | | "version": "2.7.0", |
| | | "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", |
| | |
| | | "thenify-all": "^1.0.0" |
| | | } |
| | | }, |
| | | "namespace-emitter": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmjs.org/namespace-emitter/-/namespace-emitter-2.0.1.tgz", |
| | | "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==" |
| | | }, |
| | | "nan": { |
| | | "version": "2.15.0", |
| | | "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", |
| | | "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" |
| | | }, |
| | | "nanoid": { |
| | | "version": "3.3.6", |
| | | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", |
| | | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" |
| | | }, |
| | | "nanomatch": { |
| | | "version": "1.2.13", |
| | |
| | | "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", |
| | | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", |
| | | "dev": true |
| | | }, |
| | | "next-tick": { |
| | | "version": "1.1.0", |
| | | "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", |
| | | "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" |
| | | }, |
| | | "nice-try": { |
| | | "version": "1.0.5", |
| | |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", |
| | | "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" |
| | | }, |
| | | "normalize.css": { |
| | | "version": "8.0.1", |
| | | "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", |
| | | "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==" |
| | | }, |
| | | "npm-run-path": { |
| | | "version": "2.0.2", |
| | |
| | | "safe-buffer": "^5.1.1" |
| | | } |
| | | }, |
| | | "parse-headers": { |
| | | "version": "2.0.5", |
| | | "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", |
| | | "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" |
| | | }, |
| | | "parse-json": { |
| | | "version": "5.2.0", |
| | | "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz", |
| | |
| | | "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", |
| | | "requires": { |
| | | "pinkie": "^2.0.0" |
| | | } |
| | | }, |
| | | "pkcs7": { |
| | | "version": "1.0.4", |
| | | "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-1.0.4.tgz", |
| | | "integrity": "sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.5.5" |
| | | } |
| | | }, |
| | | "pkg-dir": { |
| | |
| | | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", |
| | | "dev": true |
| | | }, |
| | | "preact": { |
| | | "version": "10.17.1", |
| | | "resolved": "https://registry.npmjs.org/preact/-/preact-10.17.1.tgz", |
| | | "integrity": "sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA==" |
| | | }, |
| | | "prelude-ls": { |
| | | "version": "1.1.2", |
| | | "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.1.2.tgz", |
| | |
| | | "renderkid": "^2.0.4" |
| | | } |
| | | }, |
| | | "prismjs": { |
| | | "version": "1.29.0", |
| | | "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", |
| | | "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" |
| | | }, |
| | | "process": { |
| | | "version": "0.11.10", |
| | | "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", |
| | | "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", |
| | | "dev": true |
| | | "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" |
| | | }, |
| | | "process-nextick-args": { |
| | | "version": "2.0.1", |
| | |
| | | "regenerator-runtime": { |
| | | "version": "0.13.9", |
| | | "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", |
| | | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", |
| | | "dev": true |
| | | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" |
| | | }, |
| | | "regenerator-transform": { |
| | | "version": "0.14.5", |
| | |
| | | "aproba": "^1.1.1" |
| | | } |
| | | }, |
| | | "rust-result": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/rust-result/-/rust-result-1.0.0.tgz", |
| | | "integrity": "sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==", |
| | | "requires": { |
| | | "individual": "^2.0.0" |
| | | } |
| | | }, |
| | | "rxjs": { |
| | | "version": "6.6.7", |
| | | "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz", |
| | |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "safe-json-parse": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-4.0.0.tgz", |
| | | "integrity": "sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ==", |
| | | "requires": { |
| | | "rust-result": "^1.0.0" |
| | | } |
| | | }, |
| | | "safe-regex": { |
| | | "version": "1.1.0", |
| | |
| | | "@types/json-schema": "^7.0.5", |
| | | "ajv": "^6.12.4", |
| | | "ajv-keywords": "^3.5.2" |
| | | } |
| | | }, |
| | | "scroll-into-view-if-needed": { |
| | | "version": "2.2.31", |
| | | "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", |
| | | "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", |
| | | "requires": { |
| | | "compute-scroll-into-view": "^1.0.20" |
| | | } |
| | | }, |
| | | "scss-tokenizer": { |
| | |
| | | "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", |
| | | "dev": true |
| | | }, |
| | | "slate": { |
| | | "version": "0.72.8", |
| | | "resolved": "https://registry.npmjs.org/slate/-/slate-0.72.8.tgz", |
| | | "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", |
| | | "requires": { |
| | | "immer": "^9.0.6", |
| | | "is-plain-object": "^5.0.0", |
| | | "tiny-warning": "^1.0.3" |
| | | }, |
| | | "dependencies": { |
| | | "is-plain-object": { |
| | | "version": "5.0.0", |
| | | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", |
| | | "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" |
| | | } |
| | | } |
| | | }, |
| | | "slate-history": { |
| | | "version": "0.66.0", |
| | | "resolved": "https://registry.npmjs.org/slate-history/-/slate-history-0.66.0.tgz", |
| | | "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", |
| | | "requires": { |
| | | "is-plain-object": "^5.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "is-plain-object": { |
| | | "version": "5.0.0", |
| | | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", |
| | | "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" |
| | | } |
| | | } |
| | | }, |
| | | "slice-ansi": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-2.1.0.tgz", |
| | |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "snabbdom": { |
| | | "version": "3.5.1", |
| | | "resolved": "https://registry.npmjs.org/snabbdom/-/snabbdom-3.5.1.tgz", |
| | | "integrity": "sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==" |
| | | }, |
| | | "snapdragon": { |
| | | "version": "0.8.2", |
| | |
| | | "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", |
| | | "dev": true |
| | | }, |
| | | "spark-md5": { |
| | | "version": "3.0.2", |
| | | "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", |
| | | "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==" |
| | | }, |
| | | "spdx-correct": { |
| | | "version": "3.1.1", |
| | | "resolved": "https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.1.1.tgz", |
| | |
| | | "sprintf-js": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", |
| | | "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", |
| | | "dev": true |
| | | "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" |
| | | }, |
| | | "sshpk": { |
| | | "version": "1.17.0", |
| | |
| | | "safer-buffer": "^2.0.2", |
| | | "tweetnacl": "~0.14.0" |
| | | } |
| | | }, |
| | | "ssr-window": { |
| | | "version": "3.0.0", |
| | | "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", |
| | | "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" |
| | | }, |
| | | "ssri": { |
| | | "version": "6.0.2", |
| | |
| | | "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", |
| | | "dev": true |
| | | }, |
| | | "tiny-warning": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", |
| | | "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" |
| | | }, |
| | | "tmp": { |
| | | "version": "0.0.33", |
| | | "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz", |
| | |
| | | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", |
| | | "dev": true |
| | | }, |
| | | "tsml": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmjs.org/tsml/-/tsml-1.0.1.tgz", |
| | | "integrity": "sha512-3KmepnH9SUsoOVtg013CRrL7c+AK7ECaquAsJdvu4288EDJuraqBlP4PDXT/rLEJ9YDn4jqLAzRJsnFPx+V6lg==" |
| | | }, |
| | | "tty-browserify": { |
| | | "version": "0.0.0", |
| | | "resolved": "https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz", |
| | |
| | | "version": "0.14.5", |
| | | "resolved": "https://registry.npmmirror.com/tweetnacl/-/tweetnacl-0.14.5.tgz", |
| | | "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" |
| | | }, |
| | | "type": { |
| | | "version": "1.2.0", |
| | | "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", |
| | | "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" |
| | | }, |
| | | "type-check": { |
| | | "version": "0.3.2", |
| | |
| | | "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", |
| | | "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", |
| | | "dev": true |
| | | }, |
| | | "uc.micro": { |
| | | "version": "1.0.6", |
| | | "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", |
| | | "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" |
| | | }, |
| | | "uglify-js": { |
| | | "version": "3.4.10", |
| | |
| | | "requires-port": "^1.0.0" |
| | | } |
| | | }, |
| | | "url-toolkit": { |
| | | "version": "2.2.5", |
| | | "resolved": "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz", |
| | | "integrity": "sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==" |
| | | }, |
| | | "use": { |
| | | "version": "3.1.1", |
| | | "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz", |
| | |
| | | "extsprintf": "^1.2.0" |
| | | } |
| | | }, |
| | | "video.js": { |
| | | "version": "8.5.2", |
| | | "resolved": "https://registry.npmjs.org/video.js/-/video.js-8.5.2.tgz", |
| | | "integrity": "sha512-6/uNXQV3xSaKLpaPf/bVvr7omd+82sKUp0RMBgIt4PxHIe28GtX+O+GcNfI2fuwBvcDRDqk5Ei5AG9bJJOpulA==", |
| | | "requires": { |
| | | "@babel/runtime": "^7.12.5", |
| | | "@videojs/http-streaming": "3.5.3", |
| | | "@videojs/vhs-utils": "^4.0.0", |
| | | "@videojs/xhr": "2.6.0", |
| | | "aes-decrypter": "^4.0.1", |
| | | "global": "4.4.0", |
| | | "keycode": "2.2.0", |
| | | "m3u8-parser": "^6.0.0", |
| | | "mpd-parser": "^1.0.1", |
| | | "mux.js": "^6.2.0", |
| | | "safe-json-parse": "4.0.0", |
| | | "videojs-contrib-quality-levels": "4.0.0", |
| | | "videojs-font": "4.1.0", |
| | | "videojs-vtt.js": "0.15.5" |
| | | } |
| | | }, |
| | | "videojs-contrib-hls": { |
| | | "version": "5.15.0", |
| | | "resolved": "https://registry.npmjs.org/videojs-contrib-hls/-/videojs-contrib-hls-5.15.0.tgz", |
| | | "integrity": "sha512-18zbMYZ0XRBKTPEayA9bFTWWrqhT9b4G8+zf0czJLD7Epe5PcK1I/3dflTHQeQ5rwlWir+/XnFU3sMg/B2MMcw==", |
| | | "requires": { |
| | | "aes-decrypter": "1.0.3", |
| | | "global": "^4.3.0", |
| | | "m3u8-parser": "2.1.0", |
| | | "mux.js": "4.3.2", |
| | | "url-toolkit": "^2.1.3", |
| | | "video.js": "^5.19.1 || ^6.2.0", |
| | | "videojs-contrib-media-sources": "4.7.2", |
| | | "webwackify": "0.1.6" |
| | | }, |
| | | "dependencies": { |
| | | "aes-decrypter": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmjs.org/aes-decrypter/-/aes-decrypter-1.0.3.tgz", |
| | | "integrity": "sha512-rsx8pfx7wJsn+ziYbpJ8XA5c93hKAtBCrfydxJqJCMT+qfjipd/B5wC2xHtBcoxyvlqJcpeAo3K55t0lXOn9yQ==", |
| | | "requires": { |
| | | "pkcs7": "^0.2.3" |
| | | } |
| | | }, |
| | | "m3u8-parser": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npmjs.org/m3u8-parser/-/m3u8-parser-2.1.0.tgz", |
| | | "integrity": "sha512-WbEpQ2FUaNGbJ0YanSeyj9D9ruu4FUvz+ZvebIzI2bSME+PUwcPXO1kKXZkjcPUAFruDikoOI5fWQNIA6JCCOQ==" |
| | | }, |
| | | "mux.js": { |
| | | "version": "4.3.2", |
| | | "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-4.3.2.tgz", |
| | | "integrity": "sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ==" |
| | | }, |
| | | "pkcs7": { |
| | | "version": "0.2.3", |
| | | "resolved": "https://registry.npmjs.org/pkcs7/-/pkcs7-0.2.3.tgz", |
| | | "integrity": "sha512-kJRwmADEQUg+qJyRgWLtpEL9q9cFjZschejTEK3GRjKvnsU9G5WWoe/wKqRgbBoqWdVSeTUKP6vIA3Y72M3rWA==" |
| | | }, |
| | | "process": { |
| | | "version": "0.5.2", |
| | | "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", |
| | | "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==" |
| | | }, |
| | | "video.js": { |
| | | "version": "6.13.0", |
| | | "resolved": "https://registry.npmjs.org/video.js/-/video.js-6.13.0.tgz", |
| | | "integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==", |
| | | "requires": { |
| | | "babel-runtime": "^6.9.2", |
| | | "global": "4.3.2", |
| | | "safe-json-parse": "4.0.0", |
| | | "tsml": "1.0.1", |
| | | "videojs-font": "2.1.0", |
| | | "videojs-ie8": "1.1.2", |
| | | "videojs-vtt.js": "0.12.6", |
| | | "xhr": "2.4.0" |
| | | }, |
| | | "dependencies": { |
| | | "global": { |
| | | "version": "4.3.2", |
| | | "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", |
| | | "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", |
| | | "requires": { |
| | | "min-document": "^2.19.0", |
| | | "process": "~0.5.1" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "videojs-font": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-2.1.0.tgz", |
| | | "integrity": "sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA==" |
| | | }, |
| | | "videojs-vtt.js": { |
| | | "version": "0.12.6", |
| | | "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz", |
| | | "integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==", |
| | | "requires": { |
| | | "global": "^4.3.1" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "videojs-contrib-media-sources": { |
| | | "version": "4.7.2", |
| | | "resolved": "https://registry.npmjs.org/videojs-contrib-media-sources/-/videojs-contrib-media-sources-4.7.2.tgz", |
| | | "integrity": "sha512-e6iCHWBFuV05EGo7v+pS9iepObXnJ9joms467gzi8ZjpKVb3ifha9M0Ja24Rd8JfvYpzjltsgDVtGFDvIg4hQQ==", |
| | | "requires": { |
| | | "global": "^4.3.0", |
| | | "mux.js": "4.3.2", |
| | | "video.js": "^5.17.0 || ^6.2.0", |
| | | "webwackify": "0.1.6" |
| | | }, |
| | | "dependencies": { |
| | | "mux.js": { |
| | | "version": "4.3.2", |
| | | "resolved": "https://registry.npmjs.org/mux.js/-/mux.js-4.3.2.tgz", |
| | | "integrity": "sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ==" |
| | | }, |
| | | "process": { |
| | | "version": "0.5.2", |
| | | "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", |
| | | "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==" |
| | | }, |
| | | "video.js": { |
| | | "version": "6.13.0", |
| | | "resolved": "https://registry.npmjs.org/video.js/-/video.js-6.13.0.tgz", |
| | | "integrity": "sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==", |
| | | "requires": { |
| | | "babel-runtime": "^6.9.2", |
| | | "global": "4.3.2", |
| | | "safe-json-parse": "4.0.0", |
| | | "tsml": "1.0.1", |
| | | "videojs-font": "2.1.0", |
| | | "videojs-ie8": "1.1.2", |
| | | "videojs-vtt.js": "0.12.6", |
| | | "xhr": "2.4.0" |
| | | }, |
| | | "dependencies": { |
| | | "global": { |
| | | "version": "4.3.2", |
| | | "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", |
| | | "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", |
| | | "requires": { |
| | | "min-document": "^2.19.0", |
| | | "process": "~0.5.1" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "videojs-font": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-2.1.0.tgz", |
| | | "integrity": "sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA==" |
| | | }, |
| | | "videojs-vtt.js": { |
| | | "version": "0.12.6", |
| | | "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.12.6.tgz", |
| | | "integrity": "sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==", |
| | | "requires": { |
| | | "global": "^4.3.1" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "videojs-contrib-quality-levels": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmjs.org/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-4.0.0.tgz", |
| | | "integrity": "sha512-u5rmd8BjLwANp7XwuQ0Q/me34bMe6zg9PQdHfTS7aXgiVRbNTb4djcmfG7aeSrkpZjg+XCLezFNenlJaCjBHKw==", |
| | | "requires": { |
| | | "global": "^4.4.0" |
| | | } |
| | | }, |
| | | "videojs-font": { |
| | | "version": "4.1.0", |
| | | "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-4.1.0.tgz", |
| | | "integrity": "sha512-X1LuPfLZPisPLrANIAKCknZbZu5obVM/ylfd1CN+SsCmPZQ3UMDPcvLTpPBJxcBuTpHQq2MO1QCFt7p8spnZ/w==" |
| | | }, |
| | | "videojs-ie8": { |
| | | "version": "1.1.2", |
| | | "resolved": "https://registry.npmjs.org/videojs-ie8/-/videojs-ie8-1.1.2.tgz", |
| | | "integrity": "sha512-0Zb2T4MLkpfZbeGMK/Z93b8Lrepr+rLFoHgQV1CoDeFqXvH7b+Vsd/VHoILGxQrgCSHFQ7mAODR6oyMjuiD4/g==", |
| | | "requires": { |
| | | "es5-shim": "^4.5.1" |
| | | } |
| | | }, |
| | | "videojs-vtt.js": { |
| | | "version": "0.15.5", |
| | | "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz", |
| | | "integrity": "sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==", |
| | | "requires": { |
| | | "global": "^4.3.1" |
| | | } |
| | | }, |
| | | "vm-browserify": { |
| | | "version": "1.1.2", |
| | | "resolved": "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz", |
| | |
| | | "version": "2.6.14", |
| | | "resolved": "https://registry.npmmirror.com/vue/-/vue-2.6.14.tgz", |
| | | "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==" |
| | | }, |
| | | "vue-baidu-map": { |
| | | "version": "0.21.22", |
| | | "resolved": "https://registry.npmjs.org/vue-baidu-map/-/vue-baidu-map-0.21.22.tgz", |
| | | "integrity": "sha512-WQMPCih4UTh0AZCKKH/OVOYnyAWjfRNeK6BIeoLmscyY5aF8zzlJhz/NOHLb3mdztIpB0Z6aohn4Jd9mfCSjQw==", |
| | | "requires": { |
| | | "bmaplib.curveline": "^1.0.0", |
| | | "bmaplib.heatmap": "^1.0.4", |
| | | "bmaplib.lushu": "^1.0.7", |
| | | "bmaplib.markerclusterer": "^1.0.13", |
| | | "markdown-it": "^8.4.0" |
| | | } |
| | | }, |
| | | "vue-demi": { |
| | | "version": "0.12.5", |
| | |
| | | "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz", |
| | | "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "vue-loader-v16": { |
| | | "version": "npm:vue-loader@16.8.3", |
| | | "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz", |
| | | "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "chalk": "^4.1.0", |
| | | "hash-sum": "^2.0.0", |
| | | "loader-utils": "^2.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "ansi-styles": { |
| | | "version": "4.3.0", |
| | | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz", |
| | | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-convert": "^2.0.1" |
| | | } |
| | | }, |
| | | "chalk": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz", |
| | | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "ansi-styles": "^4.1.0", |
| | | "supports-color": "^7.1.0" |
| | | } |
| | | }, |
| | | "color-convert": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz", |
| | | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "color-name": "~1.1.4" |
| | | } |
| | | }, |
| | | "color-name": { |
| | | "version": "1.1.4", |
| | | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz", |
| | | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "has-flag": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", |
| | | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "loader-utils": { |
| | | "version": "2.0.2", |
| | | "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz", |
| | | "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "big.js": "^5.2.2", |
| | | "emojis-list": "^3.0.0", |
| | | "json5": "^2.1.2" |
| | | } |
| | | }, |
| | | "supports-color": { |
| | | "version": "7.2.0", |
| | | "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", |
| | | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "requires": { |
| | | "has-flag": "^4.0.0" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | |
| | | "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", |
| | | "dev": true |
| | | }, |
| | | "webwackify": { |
| | | "version": "0.1.6", |
| | | "resolved": "https://registry.npmjs.org/webwackify/-/webwackify-0.1.6.tgz", |
| | | "integrity": "sha512-pGcw1T3HpNnM/UTRQqqRkkkzythSLts05mB+7Gr00B+0VbL0m39dFL5g20rSIEUt9Wrpw+/8k+snxRlUFHhcqA==" |
| | | }, |
| | | "which": { |
| | | "version": "1.3.1", |
| | | "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz", |
| | |
| | | "requires": { |
| | | "string-width": "^1.0.2 || 2 || 3 || 4" |
| | | } |
| | | }, |
| | | "wildcard": { |
| | | "version": "1.1.2", |
| | | "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", |
| | | "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==" |
| | | }, |
| | | "word-wrap": { |
| | | "version": "1.2.3", |
| | |
| | | "async-limiter": "~1.0.0" |
| | | } |
| | | }, |
| | | "xhr": { |
| | | "version": "2.4.0", |
| | | "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", |
| | | "integrity": "sha512-TUbBsdAuJbX8olk9hsDwGK8P1ri1XlV+PdEWkYw+HQQbpkiBR8PLgD1F3kQDPBs9l4Px34hP9rCYAZOCCAENbw==", |
| | | "requires": { |
| | | "global": "~4.3.0", |
| | | "is-function": "^1.0.1", |
| | | "parse-headers": "^2.0.0", |
| | | "xtend": "^4.0.0" |
| | | }, |
| | | "dependencies": { |
| | | "global": { |
| | | "version": "4.3.2", |
| | | "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", |
| | | "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", |
| | | "requires": { |
| | | "min-document": "^2.19.0", |
| | | "process": "~0.5.1" |
| | | } |
| | | }, |
| | | "process": { |
| | | "version": "0.5.2", |
| | | "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", |
| | | "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==" |
| | | } |
| | | } |
| | | }, |
| | | "xtend": { |
| | | "version": "4.0.2", |
| | | "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", |
| | | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", |
| | | "dev": true |
| | | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" |
| | | }, |
| | | "y18n": { |
| | | "version": "4.0.3", |
| | |
| | | "dev": true |
| | | } |
| | | } |
| | | }, |
| | | "zrender": { |
| | | "version": "5.4.4", |
| | | "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.4.tgz", |
| | | "integrity": "sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==", |
| | | "requires": { |
| | | "tslib": "2.3.0" |
| | | }, |
| | | "dependencies": { |
| | | "tslib": { |
| | | "version": "2.3.0", |
| | | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", |
| | | "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | url: '/m/pipeInfo/findList', |
| | | data: { |
| | | proId: params.proId, |
| | | segmentId: params.segmentId, |
| | | ringNum: params.ringNum, |
| | | groupId: params.groupId, |
| | | checkResult: params.checkResult, |
| | |
| | | axios.post('/m/repo/delete', params), |
| | | //堆场详情信息 |
| | | detailsYardInfo: params => |
| | | axios.post('/m/repoRecord/repoDetail', params), |
| | | axios({ |
| | | method: 'post', |
| | | url: '/m/repoRecord/repoDetail', |
| | | headers: { |
| | | pageNum: params.pageNum, |
| | | pageSize: params.pageSize |
| | | }, |
| | | data: params |
| | | }), |
| | | //堆场单元下拉框 |
| | | getUnitYardList: params => |
| | | axios.post('/m/repo/repoUnitPullDown', params), |
| | |
| | | responseType: 'blob', |
| | | data: params |
| | | }), |
| | | /* 预埋件管理 */ |
| | | embedded: { |
| | | // 库存管理 |
| | | inventGetLists: params => // table列表 |
| | | axios.post('/materials/embedmentInventoryManagement/findAll', params), |
| | | inventCheck: params => // 库存校正 |
| | | axios.post('/materials/embedmentInventoryManagement/inventoryCorrection', params), |
| | | inventPresAlarm: params => // 预报警设置 |
| | | axios.post('/materials/embedmentInventoryManagement/alarmSet', params), |
| | | inventExportxls: params => // 导出 |
| | | axios({ |
| | | method: 'post', |
| | | url: '/materials/embedmentInventoryManagement/export', |
| | | responseType: 'blob', |
| | | data: params |
| | | }), |
| | | // 入库记录 |
| | | incomeGetLists: params => // talbe列表 |
| | | axios.post('/materials/embedmentInsetRecord/embedmentRecordList', params), |
| | | incomeInsert: params => // 新增 |
| | | axios.post('/materials/embedmentInsetRecord/insert', params), |
| | | incomeUpdate: params => // 修改更新 |
| | | axios.post('/materials/embedmentInsetRecord/update', params), |
| | | incomeDel: params => // 修改回显 |
| | | axios.get('/materials/embedmentInsetRecord/embedmentRecordDel', { params }), |
| | | incomeExportxls: params => // 导出 |
| | | axios({ |
| | | method: 'post', |
| | | url: '/materials/embedmentInsetRecord/export', |
| | | responseType: 'blob', |
| | | data: params |
| | | }), |
| | | incomeExportXls: params => //导出模板 |
| | | axios({ |
| | | method: 'post', |
| | | url: '/materials/embedmentInsetRecord/recordExportTemplate', |
| | | responseType: 'blob', |
| | | params: params |
| | | }), |
| | | incomeInXls: params => //导入Excel |
| | | axios.post('/materials/embedmentInsetRecord/variateExcel', params), |
| | | |
| | | // 预埋件种类 |
| | | typeGetLists: params => // table列表 |
| | | axios.post('/materials/embedmentGoods/findAll', params), |
| | | typeInsert: params => // 新增 |
| | | axios.post('/materials/embedmentGoods/insert', params), |
| | | typeUpdate: params => // 修改更新 |
| | | axios.post('/materials/embedmentGoods/update', params), |
| | | typeDetail: params => // 修改回显 |
| | | axios.get('/materials/embedmentGoods/findEntity', { params }), |
| | | typeModels: params => // 类别 |
| | | axios.get('/materials/embedmentGoods/getType', { params }), |
| | | // 消耗记录 |
| | | costGetLists: params => // table列表 |
| | | axios.post('/materials/embedmentInsetRecord/embedmentRecordOutList', params), |
| | | costInser: params => // table列表 |
| | | axios.post('/materials/embedmentInsetRecord/insert', params), |
| | | costUpdate: params => // table列表 |
| | | axios.post('/materials/embedmentInsetRecord/update', params), |
| | | costDel: params => // table列表 |
| | | axios.get('/materials/embedmentInsetRecord/embedmentRecordDel', { params }), |
| | | // 校正记录 |
| | | checkGetLists: params => // 修改回显 |
| | | axios.post('/materials/embedmentCorrection/inventoryList', params), |
| | | }, |
| | | } |
| | | |
对比新文件 |
| | |
| | | <template> |
| | | <div class="pagination-container"> |
| | | <el-pagination @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10, 20, 30]" |
| | | :total="total" :current-page="pageNum" :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper"></el-pagination> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | export default { |
| | | name: "pagination", |
| | | data() { |
| | | return {}; |
| | | }, |
| | | props: { |
| | | // 总页数 |
| | | total: { |
| | | type: Number, |
| | | }, |
| | | // 当前页 |
| | | pageNum: { |
| | | type: Number, |
| | | }, |
| | | // 每页显示条数 |
| | | pageSize: { |
| | | type: Number, |
| | | }, |
| | | }, |
| | | methods: { |
| | | // 当前页码变化 |
| | | handleCurrentChange(val) { |
| | | this.$emit("change-page-num", val); |
| | | }, |
| | | // 每页查看条数变化 |
| | | handleSizeChange(val) { |
| | | this.$emit("change-page-size", val); |
| | | }, |
| | | }, |
| | | // watch: { |
| | | // pageSize: { |
| | | // // immediate: true, |
| | | // handler(newValue, oldValue) { |
| | | // this.page._pageSize = this.newValue; |
| | | // console.log("pageSize", newValue, oldValue); |
| | | // }, |
| | | // }, |
| | | // pageNum: { |
| | | // // immediate: true, |
| | | // handler(newValue, oldValue) { |
| | | // this.page._currentPage = newValue; |
| | | // console.log("pageNum", newValue, oldValue); |
| | | // }, |
| | | // }, |
| | | // }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | // 主体底部样式 |
| | | ::v-deep.el-pagination .btn-prev, |
| | | ::v-deep.el-pagination .btn-next, |
| | | ::v-deep.el-pagination .el-pager li { |
| | | background-color: rgba(20, 25, 58, 0.4); |
| | | border: 1px solid rgba(255, 255, 255, 0.12); |
| | | font-weight: 400; |
| | | color: #E2E4E9; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | ::v-deep.el-pagination .el-pager li:not(.disabled).active { |
| | | color: #fff; |
| | | border: 1px solid #39B5FE; |
| | | background-color: #0B3562; |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .pagination-container { |
| | | margin-top: 30px; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div> |
| | | <el-table v-loading="tableLoading" :data="tableData" :ref="tableRef" :size="tableSize" @row-click="rowClick" |
| | | @row-dblclick="rowDblClick" @selection-change="handleSelectionChange" border stripe> |
| | | <template v-for="(col, index) in tableColumnsConfig"> |
| | | <!-- 选择框 --> |
| | | <el-table-column v-if="col.selection" width="50" :key="`selection_${index}`" type="selection" align="center"> |
| | | </el-table-column> |
| | | <!-- 序号 --> |
| | | <el-table-column v-else-if="col.index" width="50" label="序号" :key="`index_${index}`" type="index" align="center"> |
| | | </el-table-column> |
| | | <!-- 自定义 --> |
| | | <slot v-else-if="col.slot" :name="col.slot" show-overflow-tooltip></slot> |
| | | <!-- 常规col --> |
| | | <el-table-column v-else :key="`col_${index}`" :width="col.width" :label="col.name" :prop="col.key" |
| | | :show-overflow-tooltip="col.showOverflowTip || false" :align="col.align || 'center'"> |
| | | <template #default="{ row }"> |
| | | {{ row[col.key] }} |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </el-table> |
| | | <!-- 分页组件 --> |
| | | <cPagination :total="pageTotal" :page-num.sync="pageNum" :page-size.sync="pageSize" @change-page-num="changePageNum" |
| | | @change-page-size="changePageSize" /> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import cPagination from "@/components/table/Pagination" |
| | | export default { |
| | | name: "cTable", |
| | | data() { |
| | | return { |
| | | time: null |
| | | }; |
| | | }, |
| | | props: { |
| | | tableData: { |
| | | type: Array, |
| | | default() { |
| | | return []; |
| | | } |
| | | }, |
| | | tableHeight: { |
| | | type: Number, |
| | | default: null |
| | | }, |
| | | tableLoading: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | tableRef: { |
| | | type: String, |
| | | default: "multipleTable" |
| | | }, |
| | | tableSize: { |
| | | type: String, |
| | | default: "mini" |
| | | }, |
| | | tableColumnsConfig: { |
| | | type: Array, |
| | | default() { |
| | | return []; |
| | | } |
| | | }, |
| | | pageTotal: { |
| | | type: Number |
| | | }, |
| | | pageNum: { |
| | | type: Number, |
| | | default: 1 |
| | | }, |
| | | pageSize: { |
| | | type: Number, |
| | | default: 10 |
| | | }, |
| | | pageChange: { |
| | | type: Function, |
| | | default: () => { } |
| | | }, |
| | | handleSelection: { |
| | | type: Function, |
| | | default: () => { } |
| | | } |
| | | }, |
| | | components: { |
| | | cPagination |
| | | }, |
| | | methods: { |
| | | changePageNum(val) { |
| | | // console.log(val) |
| | | // this.pageNum = val |
| | | this.$emit("update:pageNum", val); |
| | | this.pageChange(); |
| | | }, |
| | | changePageSize(val) { |
| | | this.$emit("update:pageSize", val); |
| | | if (val * (this.pageNum - 1) <= this.pageTotal) { |
| | | this.pageChange(); |
| | | } |
| | | }, |
| | | // 单击 |
| | | rowClick() { |
| | | // this.time && clearTimeout(this.time); |
| | | // this.time = setTimeout(() => { |
| | | // this.$refs[this.tableRef].toggleRowSelection(row); |
| | | // }, 200); |
| | | }, |
| | | // 双击 |
| | | rowDblClick() { |
| | | // this.time && clearTimeout(this.time); |
| | | }, |
| | | clearSelection() { |
| | | this.$refs[this.tableRef].clearSelection(); |
| | | }, |
| | | handleSelectionChange(val) { |
| | | this.handleSelection(val); |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .el-table { |
| | | border: none; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="main"> |
| | | <div class="main_tabs"> |
| | | <el-tabs v-model="activeName" @tab-click="handleClick"> |
| | | <el-tab-pane label="库存管理" name="first"> |
| | | <embedded-invent ref="Invent"></embedded-invent> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="消耗记录" name="third"> |
| | | <embedded-cost ref="Costs"></embedded-cost> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="入库记录" name="second"> |
| | | <embedded-income ref="Income"></embedded-income> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="校正记录" name="fourth"> |
| | | <embedded-check ref="checks"></embedded-check> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="预埋件种类" name="five"> |
| | | <embedded-type ref="Auxiliary"></embedded-type> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import EmbeddedInvent from './components/embedded/Invent'//库存管理 |
| | | import EmbeddedCost from './components/embedded/Cost'//消耗记录 |
| | | import EmbeddedIncome from './components/embedded/Income'//入库记录 |
| | | import EmbeddedCheck from './components/embedded/Check'//校正记录 |
| | | import EmbeddedType from './components/embedded/Type'//预埋件种类 |
| | | export default { |
| | | components: { |
| | | EmbeddedInvent, |
| | | EmbeddedCost, |
| | | EmbeddedIncome, |
| | | EmbeddedCheck, |
| | | EmbeddedType |
| | | }, |
| | | data() { |
| | | return { |
| | | activeName: 'first' |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.$refs.Invent.searchButtonInfo(true); |
| | | }, |
| | | methods: { |
| | | //切换界面 |
| | | handleClick(tab) { |
| | | switch (tab.name) { |
| | | case 'second': |
| | | this.$refs.Income.searchButtonInfo(true); |
| | | this.$refs.Income.getNameList() |
| | | break; |
| | | case 'third': |
| | | this.$refs.Costs.searchButtonInfo(true); |
| | | this.$refs.Costs.getNameList() |
| | | break; |
| | | case 'fourth': |
| | | this.$refs.checks.searchButtonInfo(true); |
| | | break; |
| | | case 'five': |
| | | this.$refs.Auxiliary.searchButtonInfo(true); |
| | | this.$refs.Auxiliary.getAllTypes(); |
| | | break; |
| | | default: |
| | | this.$refs.Invent.searchButtonInfo(true); |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped lang="scss"> |
| | | @import'@/style/layout-main.scss'; |
| | | |
| | | /deep/ .el-tabs__content { |
| | | position: static; |
| | | } |
| | | |
| | | /deep/.main { |
| | | background: none; |
| | | } |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="main tabs_main" style="height:89%"> |
| | | <div class="main_header"> |
| | | <div class="header_item"> |
| | | <span class="header_label">预埋件名称:</span> |
| | | <el-input v-model="search.embedmentName" :size="size" clearable placeholder="请输入预埋件名称"></el-input> |
| | | </div> |
| | | <!-- <div class="header_item"> |
| | | <span class="header_label">规格型号:</span> |
| | | <el-select v-model="search.steelModel" placeholder="请选择规格型号"> |
| | | <el-option |
| | | v-for="item in optionsModels" |
| | | :key="item.dictId" |
| | | :label="item.dictName" |
| | | :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> --> |
| | | <!-- <div class="header_item"> |
| | | <span class="header_label">校正时间:</span> |
| | | <el-date-picker |
| | | v-model="search.time" |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | range-separator="-" |
| | | start-placeholder="起始时间" |
| | | end-placeholder="结束时间"> |
| | | </el-date-picker> |
| | | </div> --> |
| | | <div class="header_item"> |
| | | <el-button :size="size" icon="el-icon-search" v-if="showButton('search')" |
| | | @click="searchButtonInfo(true)">查询</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <el-table v-loading="loading" :data="dataList" height="100%"> |
| | | <el-table-column align="center" label="序号" width="60"> |
| | | <template #default="scope"> |
| | | <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createTime" label="校正时间" align="center" width="180"></el-table-column> |
| | | <el-table-column prop="createUser" label="校正人" align="center"></el-table-column> |
| | | <el-table-column prop="embedmentName" label="预埋件名称" align="center"></el-table-column> |
| | | <el-table-column prop="embedmentModel" label="规格型号" align="center"></el-table-column> |
| | | <el-table-column prop="unit" label="计量单位" align="center"></el-table-column> |
| | | <el-table-column prop="correctionNum" label="校正数量" align="center"></el-table-column> |
| | | <el-table-column prop="correctionBefore" label="校正前库存" align="center"></el-table-column> |
| | | <el-table-column prop="correctionAfter" label="校正后库存" align="center"></el-table-column> |
| | | <el-table-column prop="remark" label="备注" align="center" show-overflow-tooltip></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="main_footer"> |
| | | <el-pagination background @current-change="changePageNum" @size-change="changePageSize" :current-page="pageNum" |
| | | :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {buttonPinia} from '@/pinia/index'; |
| | | import {changeSize} from '@/plugins/public'; // 导入节流、动态切换组件尺寸方法 |
| | | export default { |
| | | data() { |
| | | return { |
| | | size: changeSize(), // 组件尺寸 |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | search: {},//查询条件 |
| | | total: 0, |
| | | loading: false, |
| | | dataList: [], //校正记录管理信息列表 |
| | | asyncTitle: true, // 对话框title 新增:true 修改:false |
| | | asyncVisible: false, // 添加 修改对话框 |
| | | ruleForm: { |
| | | }, // 按钮表单 |
| | | rules: { |
| | | supplierNo: [{ |
| | | required: true, |
| | | message: '请输入供应商编号', |
| | | trigger: 'blur' |
| | | }], |
| | | optionsType: [{ |
| | | required: true, |
| | | message: '请选择供应商类型', |
| | | trigger: 'change' |
| | | }], |
| | | supplierName: [{ |
| | | required: true, |
| | | message: '请输入供应商企业名称', |
| | | trigger: 'blur' |
| | | }], |
| | | legalPerson: [{ |
| | | required: true, |
| | | message: '请输入法定代表人', |
| | | trigger: 'blur' |
| | | }], |
| | | succ: [{ |
| | | required: true, |
| | | message: '请输入统一社会信用代码', |
| | | trigger: 'blur' |
| | | }, { |
| | | validator: (rule, value, callback) => { |
| | | const reg = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/ |
| | | if (reg.test(value)) { |
| | | callback() |
| | | } else { |
| | | callback(new Error('请输入正确格式')) |
| | | } |
| | | }, |
| | | trigger: 'blur' |
| | | }], |
| | | contact: [{ |
| | | required: true, |
| | | message: '请输入联系人', |
| | | trigger: 'blur' |
| | | }], |
| | | email: [{ |
| | | required: false, |
| | | message: '请输入邮箱', |
| | | trigger: 'blur' |
| | | }, { |
| | | type: 'email', |
| | | message: '请输入正确的邮箱地址', |
| | | trigger: 'blur' |
| | | }], |
| | | contactPhone: [{ |
| | | required: true, |
| | | message: '请输入联系电话', |
| | | trigger: 'blur' |
| | | }, { |
| | | validator: (rule, value, callback) => { |
| | | const reg = /^1[3456789]\d{9}$/ |
| | | if (reg.test(value)) { |
| | | callback() |
| | | } else { |
| | | callback(new Error('请输入正确格式')) |
| | | } |
| | | }, |
| | | trigger: 'blur' |
| | | }], |
| | | address: [{ |
| | | required: true, |
| | | message: '请输入公司地址', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | optionsRebar: [],//钢筋名称 |
| | | optionsModels: [],//规格型号 |
| | | } |
| | | }, |
| | | watch: { |
| | | asyncVisible(bol) { |
| | | if (!bol) { |
| | | this.ruleForm = {}; |
| | | this.$refs.ruleForm.resetFields(); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | const that = this; |
| | | // 根据窗口大小动态修改组件尺寸 |
| | | window.onresize = () => { |
| | | that.size = changeSize(); |
| | | } |
| | | }, |
| | | methods: { |
| | | // 查询按钮列表信息 |
| | | searchButtonInfo(bol) { |
| | | if (bol) { |
| | | this.pageNum = 1; |
| | | } |
| | | let params = Object.assign({}, this.search, { |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize |
| | | }) |
| | | params.strTime = this.search.time && this.search.time[0] |
| | | params.endTime = this.search.time && this.search.time[1] |
| | | delete params.time |
| | | this.loading = true; |
| | | this.$api.Materials.embedded.checkGetLists(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.total = res.data.total; |
| | | this.dataList = res.data.list; |
| | | } |
| | | this.loading = false; |
| | | }) |
| | | }, |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchButtonInfo(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchButtonInfo(); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/style/layout-main.scss'; |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="main tabs_main" style="height:89%"> |
| | | <div class="main_header"> |
| | | <div class="header_item"> |
| | | <span class="header_label">预埋件名称:</span> |
| | | <el-select v-model="search.embedmentId" placeholder="请选择预埋件型号" clearable> |
| | | <el-option v-for="item in optionsNames" :key="item.id" :label="`${item.embedmentName} - ${item.embedmentModel}`" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="header_item"> |
| | | <span class="header_label">时间范围:</span> |
| | | <el-date-picker v-model="search.time" type="daterange" :default-time="['00:00:00', '23:59:59']" clearable |
| | | value-format="yyyy-MM-dd HH:mm:ss" range-separator="-" start-placeholder="起始时间" end-placeholder="结束时间"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div class="header_item"> |
| | | <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button> |
| | | <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="insertProp">新增</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <el-table v-loading="loading" :data="dataList" height="100%"> |
| | | <el-table-column align="center" label="序号" width="60"> |
| | | <template #default="scope"> |
| | | <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="embedmentName" label="预埋件名称" align="center" width="180"></el-table-column> |
| | | <el-table-column prop="embedmentModel" label="规格型号" align="center" width="120"></el-table-column> |
| | | <el-table-column prop="changeStock" label="出库数量" align="center"></el-table-column> |
| | | <el-table-column prop="singlePrice" label="单价" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="amount" label="金额" align="center"></el-table-column> |
| | | <el-table-column prop="createUser" label="发料人" align="center"></el-table-column> |
| | | <el-table-column prop="createTime" label="出库时间" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="remark" label="备注" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="操作" align="center" width="140"> |
| | | <template #default="scope"> |
| | | <el-button class="table_btn" size="mini" v-if="showButton('update')" |
| | | @click="updateProp(scope.$index)">修改</el-button> |
| | | <el-button class="delete_btn" size="mini" v-if="showButton('delete')" |
| | | @click="deleteInfo(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="main_footer"> |
| | | <el-pagination background @current-change="changePageNum" @size-change="changePageSize" :current-page="pageNum" |
| | | :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog class="prop_dialog" :title="asyncTitle ? '新增出库' : '修改出库信息'" :close-on-click-modal="false" |
| | | :visible.sync="asyncVisible" width="35%"> |
| | | <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form"> |
| | | <el-form-item label="预埋件名称:" prop="embedmentId"> |
| | | <el-select v-model="ruleForm.embedmentId" placeholder="请选择预埋件名称" @change="changeName"> |
| | | <el-option v-for="item in optionsNames" :key="item.id" |
| | | :label="`${item.embedmentName} - ${item.embedmentModel}`" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="规格型号:" prop="embedmentModel"> |
| | | <el-input v-model="ruleForm.embedmentModel" placeholder="请选择规格型号" disabled></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="出库数量:" prop="changeStock"> |
| | | <el-input v-model="ruleForm.changeStock" :size="size" type="number" clearable placeholder="请输入出库数量"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="单价:" prop="singlePrice"> |
| | | <el-input v-model="ruleForm.singlePrice" type="number" :size="size" clearable placeholder="请输入单价" |
| | | @blur="priceChange"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="金额:" prop="amount"> |
| | | <el-input v-model="ruleForm.amount" :size="size" clearable placeholder="请输入金额" :disabled="disabled"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="备注:" prop="remark"> |
| | | <el-input v-model="ruleForm.remark" :size="size" type="textarea" :rows="2" clearable |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncVisible = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="asyncTitle ? submitInsert() : submitUpdate()">提 交</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {buttonPinia} from '@/pinia/index'; |
| | | import {throttle, changeSize} from '@/plugins/public'; // 导入节流、动态切换组件尺寸方法 |
| | | export default { |
| | | data() { |
| | | return { |
| | | size: changeSize(), // 组件尺寸 |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | search: {},//查询条件 |
| | | total: 0, |
| | | loading: false, |
| | | disabled: false,//是否禁止修改 |
| | | dataList: [], //入库记录信息列表 |
| | | asyncTitle: true, // 对话框title 新增:true 修改:false |
| | | asyncVisible: false, // 添加 修改对话框 |
| | | ruleForm: { |
| | | embedmentModel: '', |
| | | }, // 按钮表单 |
| | | rules: { |
| | | embedmentId: [{ |
| | | required: true, |
| | | message: '请选择预埋件名称', |
| | | trigger: 'change' |
| | | }], |
| | | changeStock: [{ |
| | | required: true, |
| | | message: '请输入出库数量', |
| | | trigger: 'blur' |
| | | }], |
| | | embedmentModel: [{ |
| | | required: true, |
| | | message: '请选择规格型号', |
| | | trigger: 'blur' |
| | | }], |
| | | singlePrice: [{ |
| | | required: true, |
| | | message: '请输入单价', |
| | | trigger: 'blur' |
| | | }], |
| | | amount: [{ |
| | | required: true, |
| | | message: '请输入金额', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | optionsNames: [],//预埋件名称 |
| | | } |
| | | }, |
| | | watch: { |
| | | asyncVisible(bol) { |
| | | if (!bol) { |
| | | this.ruleForm = {}; |
| | | this.$refs.ruleForm.resetFields(); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | const that = this; |
| | | // 根据窗口大小动态修改组件尺寸 |
| | | window.onresize = () => { |
| | | that.size = changeSize(); |
| | | } |
| | | }, |
| | | methods: { |
| | | //计算金额 |
| | | priceChange() { |
| | | console.log(this.ruleForm.singlePrice, '******', this.ruleForm.changeStock, '大白话') |
| | | if (this.ruleForm.changeStock !== undefined && this.ruleForm.changeStock !== undefined) { |
| | | this.$set(this.ruleForm, 'amount', this.ruleForm.singlePrice * 1 * this.ruleForm.changeStock) |
| | | } else { |
| | | this.$set(this.ruleForm, 'amount', ' ') |
| | | } |
| | | }, |
| | | //获取所有预埋件名称 |
| | | getNameList() { |
| | | let params = { |
| | | pageNum: 1, |
| | | pageSize: 100000000 |
| | | } |
| | | this.$api.Materials.embedded.typeGetLists(params).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.optionsNames = res.data.list |
| | | } |
| | | }) |
| | | }, |
| | | // 转圈圈 |
| | | functionLoading() { |
| | | this.loadingView = this.$loading({ |
| | | lock: true, |
| | | text: '请稍后...', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }); |
| | | }, |
| | | // 查询按钮列表信息 |
| | | searchButtonInfo(bol) { |
| | | if (bol) { |
| | | this.pageNum = 1; |
| | | } |
| | | let params = Object.assign({}, this.search, { |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize, |
| | | stockType: 2 |
| | | }) |
| | | params.strTime = this.search.time && this.search.time[0] |
| | | params.endTime = this.search.time && this.search.time[1] |
| | | delete params.time |
| | | this.loading = true; |
| | | this.$api.Materials.embedded.costGetLists(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.total = res.data.total; |
| | | this.dataList = res.data.list; |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | this.loading = false; |
| | | }) |
| | | }, |
| | | // 根据预埋件名称选择规格型号 |
| | | changeName(val) { |
| | | const array = this.optionsNames |
| | | for (let index = 0; index < array.length; index++) { |
| | | const item = array[index] |
| | | if (item.id === val) { |
| | | this.ruleForm.embedmentModel = item.embedmentModel |
| | | break |
| | | } |
| | | } |
| | | }, |
| | | // 修改按钮信息 |
| | | updateProp(index) { |
| | | this.asyncTitle = false; |
| | | this.asyncVisible = true; |
| | | this.disabled = true |
| | | this.ruleForm = this.dataList[index] |
| | | }, |
| | | // 新增按钮信息 |
| | | insertProp() { |
| | | this.asyncTitle = true; |
| | | this.asyncVisible = true; |
| | | this.disabled = true |
| | | }, |
| | | // 删除按钮信息 |
| | | deleteInfo(row) { |
| | | this.$confirm("该操作将删除该信息,是否继续删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | this.$api.Materials.embedded.costDel({id: row.id}) |
| | | .then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.searchButtonInfo(true); |
| | | this.$message.success("删除成功!"); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | }) |
| | | .catch(() => { |
| | | this.$message.warning("您已取消"); |
| | | }) |
| | | }, |
| | | // 提交添加按钮信息 |
| | | submitInsert: throttle(function () { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | const params = Object.assign({}, this.ruleForm); |
| | | params.changeStock = this.ruleForm.changeStock * 1 |
| | | params.singlePrice = this.ruleForm.singlePrice * 1 |
| | | params.stockType = 2 |
| | | this.$api.Materials.embedded.costInser(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('添加成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | |
| | | // 提交修改按钮信息 |
| | | submitUpdate: throttle(function () { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | const params = Object.assign({}, this.ruleForm); |
| | | params.changeStock = this.ruleForm.changeStock * 1 |
| | | params.singlePrice = this.ruleForm.singlePrice * 1 |
| | | params.stockType = 2 |
| | | this.$api.Materials.embedded.costUpdate(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('修改成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchButtonInfo(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchButtonInfo(); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/style/layout-main.scss'; |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="main tabs_main" style="height:89%"> |
| | | <div class="main_header"> |
| | | <div class="header_item"> |
| | | <span class="header_label">预埋件名称:</span> |
| | | <el-input v-model="search.embedmentName" placeholder="请选择预埋件名称" clearable></el-input> |
| | | </div> |
| | | <div class="header_item"> |
| | | <span class="header_label">规格型号:</span> |
| | | <el-select v-model="search.embedmentModel" placeholder="请选择规格型号" clearable> |
| | | <el-option v-for="item in optionsNames" :key="item.id" :label="item.embedmentModel" |
| | | :value="item.embedmentModel"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="header_item"> |
| | | <span class="header_label">时间范围:</span> |
| | | <el-date-picker v-model="search.time" type="daterange" :default-time="['00:00:00', '23:59:59']" clearable |
| | | value-format="yyyy-MM-dd HH:mm:ss" range-separator="-" start-placeholder="起始时间" end-placeholder="结束时间"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div class="header_item"> |
| | | <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button> |
| | | <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="insertProp">新增</el-button> |
| | | <el-button icon="el-icon-upload2" v-if="showButton('export')" @click="exportIncomeData">导出Excel</el-button> |
| | | <el-button icon="el-icon-postcard" v-if="showButton('export')" @click="exportIncomeFile">导出模板</el-button> |
| | | <el-upload class="upload-demo" style="margin-left:10px" action="" :multiple="false" :http-request="httpRequest" |
| | | :show-file-list="false" :file-list="fileList"> |
| | | <el-button icon="el-icon-download" v-if="showButton('exportIn')" :size="size">导入Excel</el-button> |
| | | </el-upload> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <el-table v-loading="loading" :data="dataList" height="100%"> |
| | | <el-table-column align="center" label="序号" width="60"> |
| | | <template #default="scope"> |
| | | <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="embedmentName" label="预埋件名称" align="center" width="180"></el-table-column> |
| | | <el-table-column prop="embedmentModel" label="规格型号" align="center" width="120"></el-table-column> |
| | | <el-table-column prop="changeStock" label="入库数量" align="center"></el-table-column> |
| | | <el-table-column prop="singlePrice" label="单价" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="amount" label="金额" align="center"></el-table-column> |
| | | <el-table-column prop="createTime" label="入库时间" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="remark" label="备注" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="操作" align="center" width="140"> |
| | | <template #default="scope"> |
| | | <el-button class="table_btn" size="mini" v-if="showButton('update')" |
| | | @click="updateProp(scope.$index)">修改</el-button> |
| | | <el-button class="delete_btn" size="mini" v-if="showButton('delete')" |
| | | @click="deleteInfo(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="main_footer"> |
| | | <el-pagination background @current-change="changePageNum" @size-change="changePageSize" :current-page="pageNum" |
| | | :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog class="prop_dialog" :title="asyncTitle ? '新增入库' : '修改入库信息'" :close-on-click-modal="false" |
| | | :visible.sync="asyncVisible" width="35%"> |
| | | <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form"> |
| | | <el-form-item label="预埋件名称:" prop="embedmentId"> |
| | | <el-select v-model="ruleForm.embedmentId" :size="size" placeholder="请选择预埋件名称" @change="changeName"> |
| | | <el-option v-for="item in optionsNames" :key="item.id" |
| | | :label="`${item.embedmentName} - ${item.embedmentModel}`" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="规格型号:" prop="embedmentModel"> |
| | | <el-input v-model="ruleForm.embedmentModel" placeholder="请选择规格型号" disabled></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="入库数量:" prop="changeStock"> |
| | | <el-input v-model="ruleForm.changeStock" :size="size" type="number" clearable placeholder="请输入入库数量" |
| | | @blur="priceChange"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="单价:" prop="singlePrice"> |
| | | <el-input v-model="ruleForm.singlePrice" type="number" :size="size" clearable placeholder="请输入单价" |
| | | @blur="priceChange"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="金额:" prop="amount"> |
| | | <el-input v-model="ruleForm.amount" :size="size" clearable placeholder="请输入金额" :disabled="disabled"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="备注:" prop="remark"> |
| | | <el-input v-model="ruleForm.remark" :size="size" type="textarea" :rows="2" clearable |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncVisible = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="asyncTitle ? submitInsert() : submitUpdate()">提 交</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {buttonPinia} from '@/pinia/index'; |
| | | import {throttle, changeSize, downFiles} from '@/plugins/public'; // 导入节流、动态切换组件尺寸方法 |
| | | export default { |
| | | data() { |
| | | return { |
| | | size: changeSize(), // 组件尺寸 |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | search: {},//查询条件 |
| | | total: 0, |
| | | loading: false, |
| | | disabled: false,//是否禁止修改 |
| | | dataList: [], //入库记录信息列表 |
| | | asyncTitle: true, // 对话框title 新增:true 修改:false |
| | | asyncVisible: false, // 添加 修改对话框 |
| | | ruleForm: { |
| | | embedmentModel: '', |
| | | }, // 按钮表单 |
| | | rules: { |
| | | embedmentId: [{ |
| | | required: true, |
| | | message: '请选择物品型号', |
| | | trigger: 'change' |
| | | }], |
| | | embedmentModel: [{ |
| | | required: true, |
| | | message: '请选择供应商', |
| | | trigger: 'blur' |
| | | }], |
| | | changeStock: [{ |
| | | required: true, |
| | | message: '请输入入库数量', |
| | | trigger: 'blur' |
| | | }], |
| | | singlePrice: [{ |
| | | required: true, |
| | | message: '请输入单价', |
| | | trigger: 'blur' |
| | | }], |
| | | amount: [{ |
| | | required: true, |
| | | message: '请输入金额', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | optionsNames: [],//物品名称 |
| | | fileList: [],//导入 |
| | | } |
| | | }, |
| | | watch: { |
| | | asyncVisible(bol) { |
| | | if (!bol) { |
| | | this.ruleForm = {}; |
| | | this.$refs.ruleForm.resetFields(); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | const that = this; |
| | | // 根据窗口大小动态修改组件尺寸 |
| | | window.onresize = () => { |
| | | that.size = changeSize(); |
| | | } |
| | | }, |
| | | methods: { |
| | | //导出数据 |
| | | exportIncomeData() { |
| | | this.functionLoading(); |
| | | let params = Object.assign({}, this.search, { |
| | | stockType: 1 |
| | | }) |
| | | this.$api.Materials.embedded.incomeExportxls(params).then(res => { |
| | | downFiles(res, '入库记录信息', 'xls') |
| | | this.loadingView.close() |
| | | }) |
| | | .catch(() => { |
| | | this.loadingView.close(); |
| | | }) |
| | | }, |
| | | //计算金额 |
| | | priceChange() { |
| | | if (this.ruleForm.singlePrice !== undefined && this.ruleForm.changeStock !== undefined) { |
| | | this.$set(this.ruleForm, 'amount', this.ruleForm.singlePrice * 1 * this.ruleForm.changeStock) |
| | | } else { |
| | | this.$set(this.ruleForm, 'amount', ' ') |
| | | } |
| | | }, |
| | | //获取所有预埋件名称 |
| | | getNameList() { |
| | | let params = { |
| | | pageNum: 1, |
| | | pageSize: 100000000 |
| | | } |
| | | this.$api.Materials.embedded.typeGetLists(params).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.optionsNames = res.data.list |
| | | } |
| | | }) |
| | | }, |
| | | //自定义上传 |
| | | httpRequest({file}) { |
| | | this.functionLoading(); |
| | | const formData = new FormData(); |
| | | formData.set('file', file); |
| | | this.$api.Materials.embedded.incomeInXls(formData).then((res) => { |
| | | if (res.success) { |
| | | this.searchButtonInfo(); |
| | | this.$message.success('上传成功!'); |
| | | this.loadingView.close(); |
| | | } else { |
| | | this.$message.warning(typeof (res.data) === 'object' ? res.statusMsg : res.data); |
| | | this.loadingView.close(); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.$message.error('请检查网络设置!'); |
| | | this.loadingView.close(); |
| | | }) |
| | | }, |
| | | // 转圈圈 |
| | | functionLoading() { |
| | | this.loadingView = this.$loading({ |
| | | lock: true, |
| | | text: '请稍后...', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }); |
| | | }, |
| | | //导出模板 |
| | | exportIncomeFile() { |
| | | this.functionLoading(); |
| | | this.$api.Materials.embedded.incomeExportXls({}).then(res => { |
| | | downFiles(res, '入库记录信息模板', 'xls') |
| | | this.loadingView.close() |
| | | }) |
| | | .catch(() => { |
| | | this.loadingView.close(); |
| | | }) |
| | | }, |
| | | // 查询按钮列表信息 |
| | | searchButtonInfo(bol) { |
| | | if (bol) { |
| | | this.pageNum = 1; |
| | | } |
| | | let params = Object.assign({}, this.search, { |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize, |
| | | stockType: 1 |
| | | }) |
| | | params.strTime = this.search.time && this.search.time[0] |
| | | params.endTime = this.search.time && this.search.time[1] |
| | | delete params.time |
| | | this.loading = true; |
| | | this.$api.Materials.embedded.incomeGetLists(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.total = res.data.total; |
| | | this.dataList = res.data.list; |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | this.loading = false; |
| | | }) |
| | | }, |
| | | // 根据预埋件名称选择规格型号 |
| | | changeName(val) { |
| | | const array = this.optionsNames |
| | | for (let index = 0; index < array.length; index++) { |
| | | const item = array[index] |
| | | if (item.id === val) { |
| | | this.ruleForm.embedmentModel = item.embedmentModel |
| | | break |
| | | } |
| | | } |
| | | }, |
| | | // 修改按钮信息 |
| | | updateProp(index) { |
| | | this.asyncTitle = false; |
| | | this.asyncVisible = true; |
| | | this.disabled = true |
| | | this.ruleForm = this.dataList[index] |
| | | }, |
| | | // 新增按钮信息 |
| | | insertProp() { |
| | | this.asyncTitle = true; |
| | | this.asyncVisible = true; |
| | | this.disabled = true |
| | | }, |
| | | // 删除按钮信息 |
| | | deleteInfo(row) { |
| | | this.$confirm("该操作将删除该信息,是否继续删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | this.$api.Materials.embedded.incomeDel({id: row.id}) |
| | | .then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.searchButtonInfo(true); |
| | | this.$message.success("删除成功!"); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message.warning("您已取消"); |
| | | }) |
| | | }, |
| | | // 提交添加按钮信息 |
| | | submitInsert: throttle(function () { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | const params = Object.assign({}, this.ruleForm); |
| | | params.changeStock = this.ruleForm.changeStock * 1 |
| | | params.singlePrice = this.ruleForm.singlePrice * 1 |
| | | params.stockType = 1 |
| | | this.$api.Materials.embedded.incomeInsert(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('添加成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 提交修改按钮信息 |
| | | submitUpdate: throttle(function () { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | const params = Object.assign({}, this.ruleForm); |
| | | params.changeStock = this.ruleForm.changeStock * 1 |
| | | params.singlePrice = this.ruleForm.singlePrice * 1 |
| | | params.stockType = 1 |
| | | this.$api.Materials.embedded.incomeUpdate(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('修改成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchButtonInfo(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchButtonInfo(); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/style/layout-main.scss'; |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="main tabs_main" style="height:89%"> |
| | | <div class="main_header"> |
| | | <div class="header_item"> |
| | | <span class="header_label">预埋件名称:</span> |
| | | <el-input v-model="search.embedmentName" :size="size" clearable placeholder="请输入预埋件名称"></el-input> |
| | | </div> |
| | | <div class="header_item"> |
| | | <el-button :size="size" icon="el-icon-search" v-if="showButton('search')" |
| | | @click="searchButtonInfo(true)">查询</el-button> |
| | | <el-button :size="size" icon="el-icon-upload2" v-if="showButton('export')" @click="exportFile">导出Excel</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <el-table v-loading="loading" :data="dataList" height="100%" :cell-style="cellStyle"> |
| | | <el-table-column align="center" label="序号" width="60"> |
| | | <template #default="scope"> |
| | | <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="embedmentName" label="预埋件名称" align="center"></el-table-column> |
| | | <el-table-column prop="embedmentModel" label="型号规格" align="center"></el-table-column> |
| | | <el-table-column prop="dictName" label="类别" align="center"></el-table-column> |
| | | <el-table-column prop="unit" label="计量单位" align="center"></el-table-column> |
| | | <el-table-column prop="stock" label="库存数量" align="center"> |
| | | <template #default="{ row }"> |
| | | {{ row.stock === null ? 0 : row.stock }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="alarmCount" label="报警数" align="center"> |
| | | <template #default="{ row }"> |
| | | {{ row.alarmCount === null ? 0 : row.alarmCount }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="position" label="位置" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="操作" align="center" width="200"> |
| | | <template #default="scope"> |
| | | <el-button class="table_btn" size="mini" v-if="showButton('update')" |
| | | @click="updateProp(scope.$index)">库存校正</el-button> |
| | | <el-button class="delete_btn" size="mini" v-if="showButton('update')" |
| | | @click="updatePropAlarm(scope.$index)">预警设置</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="main_footer"> |
| | | <el-pagination background @current-change="changePageNum" @size-change="changePageSize" :current-page="pageNum" |
| | | :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog class="prop_dialog" :title="asyncTitle ? '预警设置' : '库存校正'" :close-on-click-modal="false" |
| | | :visible.sync="asyncVisible" width="35%"> |
| | | <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form"> |
| | | <el-form-item label="物品名称:" prop="embedmentName"> |
| | | <el-input v-model="ruleForm.embedmentName" :size="size" clearable placeholder="请输入物品名称" |
| | | :disabled="disabled"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="规格型号:" prop="embedmentModel"> |
| | | <el-input v-model="ruleForm.embedmentModel" :size="size" clearable placeholder="请输入规格型号" |
| | | :disabled="disabled"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="库存数量:" prop="correctionBefore" v-if="!asyncTitle"> |
| | | <el-input v-model="ruleForm.correctionBefore" :size="size" clearable placeholder="请输入库存数量" |
| | | :disabled="disabled"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="校正数量:" prop="correctionNum" v-if="!asyncTitle"> |
| | | <el-input v-model="ruleForm.correctionNum" type="number" :size="size" clearable placeholder="请输入校正数量" |
| | | @blur="changeAfter"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="校正后数量:" prop="correctionAfter" v-if="!asyncTitle"> |
| | | <el-input v-model="ruleForm.correctionAfter" :size="size" clearable placeholder="请输入校正后数量" |
| | | :disabled="true"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="预警数量:" prop="alarmCount" v-if="asyncTitle"> |
| | | <el-input v-model="ruleForm.alarmCount" :size="size" clearable placeholder="请输入预警数量"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="备注:" prop="remark" v-if="!asyncTitle"> |
| | | <el-input v-model="ruleForm.remark" :size="size" type="textarea" :rows="2" clearable |
| | | placeholder="请输入备注"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncVisible = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="asyncTitle ? submitInsert() : submitUpdate()">提 交</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {buttonPinia} from '@/pinia/index'; |
| | | import {throttle, changeSize, downFiles} from '@/plugins/public'; // 导入节流、动态切换组件尺寸方法 |
| | | export default { |
| | | data() { |
| | | return { |
| | | size: changeSize(), // 组件尺寸 |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | id: "",//一行ID |
| | | search: {},//查询条件 |
| | | total: 0, |
| | | loading: false, |
| | | disabled: false,//是否禁止修改 |
| | | dataList: [], //库存管理信息列表 |
| | | asyncTitle: true, // 对话框title 预警设置:true 库存校正:false |
| | | asyncVisible: false, // 添加 修改对话框 |
| | | ruleForm: { |
| | | }, // 按钮表单 |
| | | rules: { |
| | | embedmentName: [{ |
| | | required: true, |
| | | message: '请输入预埋件名称', |
| | | trigger: 'blur' |
| | | }], |
| | | embedmentModel: [{ |
| | | required: true, |
| | | message: '请输入规格型号', |
| | | trigger: 'blur' |
| | | }], |
| | | alarmCount: [{ |
| | | required: true, |
| | | message: '请输入预警数量', |
| | | trigger: 'blur' |
| | | }], |
| | | correctionBefore: [{ |
| | | required: true, |
| | | message: '请输入库存数量', |
| | | trigger: 'blur' |
| | | }], |
| | | correctionNum: [{ |
| | | required: true, |
| | | message: '请输入校正数量', |
| | | trigger: 'blur' |
| | | }], |
| | | correctionAfter: [{ |
| | | required: true, |
| | | message: '请输入校正后数量', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | } |
| | | }, |
| | | watch: { |
| | | asyncVisible(bol) { |
| | | if (!bol) { |
| | | this.ruleForm = {}; |
| | | this.$refs.ruleForm.resetFields(); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | const that = this; |
| | | // 根据窗口大小动态修改组件尺寸 |
| | | window.onresize = () => { |
| | | that.size = changeSize(); |
| | | } |
| | | }, |
| | | methods: { |
| | | cellStyle({row, column}) { |
| | | if (row.stock <= row.alarmCount && column.property == "stock") { |
| | | return { |
| | | 'color': 'red' |
| | | } |
| | | } |
| | | }, |
| | | //计算出校正后重量 |
| | | changeAfter() { |
| | | this.$set(this.ruleForm, 'correctionAfter', this.ruleForm.correctionBefore + this.ruleForm.correctionNum * 1) |
| | | }, |
| | | // 转圈圈 |
| | | functionLoading() { |
| | | this.loadingView = this.$loading({ |
| | | lock: true, |
| | | text: '请稍后...', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }); |
| | | }, |
| | | //导出Excel |
| | | exportFile() { |
| | | this.functionLoading(); |
| | | let params = Object.assign({}, this.search) |
| | | this.$api.Materials.embedded.inventExportxls(params).then(res => { |
| | | downFiles(res, '库存管理信息', 'xls') |
| | | this.loadingView.close() |
| | | }) |
| | | .catch(() => { |
| | | this.loadingView.close(); |
| | | }) |
| | | }, |
| | | // 查询按钮列表信息 |
| | | searchButtonInfo(bol) { |
| | | if (bol) { |
| | | this.pageNum = 1; |
| | | } |
| | | let params = Object.assign({}, this.search, { |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize |
| | | }) |
| | | this.loading = true; |
| | | this.$api.Materials.embedded.inventGetLists(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.total = res.data.total; |
| | | this.dataList = res.data.list; |
| | | } |
| | | this.loading = false; |
| | | }) |
| | | }, |
| | | //预警设置按钮 |
| | | updatePropAlarm(index) { |
| | | const row = {...this.dataList[index]} |
| | | this.id = row.id |
| | | this.asyncTitle = true; |
| | | this.asyncVisible = true; |
| | | this.disabled = true |
| | | this.ruleForm = row |
| | | }, |
| | | //库存校正按钮 |
| | | updateProp(index) { |
| | | const row = {...this.dataList[index]} |
| | | this.id = row.id |
| | | this.asyncTitle = false; |
| | | this.asyncVisible = true; |
| | | this.disabled = true |
| | | this.ruleForm = row |
| | | this.ruleForm.correctionBefore = row.stock |
| | | this.ruleForm.remark = row.remark |
| | | }, |
| | | // 提交库存校正按钮信息 |
| | | submitUpdate: throttle(function () { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | const params = { |
| | | id: this.ruleForm.id, |
| | | correctionNum: this.ruleForm.correctionNum, |
| | | correctionAfter: this.ruleForm.correctionAfter, |
| | | correctionBefore: this.ruleForm.correctionBefore, |
| | | remark: this.ruleForm.remark, |
| | | } |
| | | this.$api.Materials.embedded.inventCheck(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('库存校正成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 提交预警设置按钮信息 |
| | | submitInsert: throttle(function () { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | const params = { |
| | | id: this.ruleForm.id, |
| | | alarmCount: this.ruleForm.alarmCount |
| | | } |
| | | this.$api.Materials.embedded.inventPresAlarm(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('预警设置成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchButtonInfo(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchButtonInfo(); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/style/layout-main.scss'; |
| | | </style> |
对比新文件 |
| | |
| | | <template> |
| | | <div class="main tabs_main" style="height:89%"> |
| | | <div class="main_header"> |
| | | <div class="header_item"> |
| | | <span class="header_label">预埋件名称:</span> |
| | | <el-input v-model="search.embedmentName" :size="size" clearable placeholder="请输入物品名称"></el-input> |
| | | </div> |
| | | <div class="header_item"> |
| | | <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button> |
| | | <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="insertProp">新增</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <el-table v-loading="loading" :data="dataList" height="100%"> |
| | | <el-table-column align="center" label="序号" width="60"> |
| | | <template #default="scope"> |
| | | <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="embedmentName" label="预埋件名称" align="center"></el-table-column> |
| | | <el-table-column prop="dictName" label="类别" align="center"></el-table-column> |
| | | <el-table-column prop="embedmentModel" label="型号规格" align="center"></el-table-column> |
| | | <el-table-column prop="unit" label="计量单位" align="center"></el-table-column> |
| | | <el-table-column prop="position" label="位置" align="center"></el-table-column> |
| | | <el-table-column prop="remark" label="备注" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="操作" align="center"> |
| | | <template #default="{ row }"> |
| | | <el-button class="table_btn" size="mini" v-if="showButton('update')" @click="updateProp(row)">修改</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="main_footer"> |
| | | <el-pagination background @current-change="changePageNum" @size-change="changePageSize" :current-page="pageNum" |
| | | :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog class="prop_dialog" :title="asyncTitle ? '新增辅材种类' : '修改辅材种类'" :close-on-click-modal="false" |
| | | :visible.sync="asyncVisible" width="35%"> |
| | | <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form"> |
| | | <el-form-item label="预埋件名称:" prop="embedmentName"> |
| | | <el-input v-model="ruleForm.embedmentName" :size="size" clearable placeholder="请输入预埋件名称" |
| | | @input="changeInput"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="类别:" prop="embedmentType"> |
| | | <el-select v-model="ruleForm.embedmentType" placeholder="请选择类别"> |
| | | <el-option v-for="item in optionsType" :key="item.dictId" :label="item.dictName" :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="规格型号:" prop="embedmentModel"> |
| | | <el-input v-model="ruleForm.embedmentModel" :size="size" clearable placeholder="请输入规格型号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="计量单位:" prop="unit"> |
| | | <el-input v-model="ruleForm.unit" :size="size" clearable placeholder="请输入计量单位"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="位置:" prop="position"> |
| | | <el-input v-model="ruleForm.position" :size="size" clearable placeholder="请输入位置"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="备注:" prop="remark"> |
| | | <el-input v-model="ruleForm.remark" :size="size" clearable placeholder="请输入备注" type="textarea" |
| | | :rows="2"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncVisible = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="asyncTitle ? submitInsert() : submitUpdate()">提 交</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {buttonPinia} from '@/pinia/index'; |
| | | import {throttle, changeSize} from '@/plugins/public'; // 导入节流、动态切换组件尺寸方法 |
| | | export default { |
| | | data() { |
| | | return { |
| | | size: changeSize(), // 组件尺寸 |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | search: {},//查询条件 |
| | | total: 0, |
| | | loading: false, |
| | | optionsType: [],//辅材类别 |
| | | dataList: [], //辅材种类信息列表 |
| | | asyncTitle: true, // 对话框title 新增:true 修改:false |
| | | asyncVisible: false, // 添加 修改对话框 |
| | | ruleForm: {}, // 按钮表单 |
| | | rules: { |
| | | embedmentName: [{ |
| | | required: true, |
| | | message: '请输入物品名称', |
| | | trigger: 'blur' |
| | | }], |
| | | embedmentModel: [{ |
| | | required: true, |
| | | message: '请输入规格型号', |
| | | trigger: 'blur' |
| | | }], |
| | | unit: [{ |
| | | required: true, |
| | | message: '请输入单位', |
| | | trigger: 'blur' |
| | | }], |
| | | position: [{ |
| | | required: true, |
| | | message: '请输入位置', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | } |
| | | }, |
| | | watch: { |
| | | asyncVisible(bol) { |
| | | if (!bol) { |
| | | this.ruleForm = {}; |
| | | this.$refs.ruleForm.resetFields(); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | const that = this; |
| | | // 根据窗口大小动态修改组件尺寸 |
| | | window.onresize = () => { |
| | | that.size = changeSize(); |
| | | } |
| | | that.searchButtonInfo(true); |
| | | }, |
| | | methods: { |
| | | //输入增加限制 |
| | | changeInput(val) { |
| | | let reg = RegExp(/-/) |
| | | if (reg.test(val)) { |
| | | this.$message.warning('禁止输入‘-’字符!!!') |
| | | this.$set(this.ruleForm, 'embedmentName', '') |
| | | } |
| | | }, |
| | | //获取辅材类别信息 |
| | | getAllTypes() { |
| | | let params = { |
| | | pageNum: 1, |
| | | pageSize: 100000000 |
| | | } |
| | | this.$api.Materials.embedded.typeModels(params).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.optionsType = res.data |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }, |
| | | // 查询按钮列表信息 |
| | | searchButtonInfo(bol) { |
| | | if (bol) { |
| | | this.pageNum = 1; |
| | | } |
| | | let params = Object.assign({}, this.search, { |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize |
| | | }) |
| | | this.loading = true; |
| | | this.$api.Materials.embedded.typeGetLists(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.total = res.data.total; |
| | | this.dataList = res.data.list; |
| | | } |
| | | this.loading = false; |
| | | }) |
| | | }, |
| | | // 新增按钮信息 |
| | | insertProp() { |
| | | this.asyncTitle = true; |
| | | this.asyncVisible = true; |
| | | }, |
| | | // 修改按钮信息 |
| | | updateProp(row) { |
| | | this.asyncTitle = false; |
| | | this.asyncVisible = true; |
| | | this.$api.Materials.embedded.typeDetail({id: row.id}).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.ruleForm = res.data |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }, |
| | | // 提交添加按钮信息 |
| | | submitInsert: throttle(function () { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | const params = Object.assign({}, this.ruleForm); |
| | | this.$api.Materials.embedded.typeInsert(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('添加成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 提交修改按钮信息 |
| | | submitUpdate: throttle(function () { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | const params = Object.assign({}, this.ruleForm); |
| | | this.$api.Materials.embedded.typeUpdate(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('修改成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchButtonInfo(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchButtonInfo(); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '@/style/layout-main.scss'; |
| | | </style> |
| | |
| | | <div class="header_item"> |
| | | <span class="header_label">日期:</span> |
| | | <el-date-picker v-model="datePicker" type="daterange" range-separator="至" start-placeholder="开始日期" |
| | | end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss" @change="dateChange"> |
| | | end-placeholder="结束日期" value-format="yyyy-MM-dd" @change="dateChange"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div class="header_item"> |
| | | <el-button icon="el-icon-search" v-if="showButton('search')" @click="query">查询</el-button> |
| | | <el-button icon="el-icon-search" v-if="showButton('search')" @click="queryReset">查询</el-button> |
| | | <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="addRow">新增</el-button> |
| | | <el-button icon="el-icon-upload2" v-if="showButton('export')" @click="exportExcel">导出Excel</el-button> |
| | | </div> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <!-- --> |
| | | <el-table-column align="center" label="操作" width="74"> |
| | | <el-table-column align="center" label="操作" width="76"> |
| | | <template #default="{ row }"> |
| | | <el-button size="mini" @click="copyRow(row)">复制</el-button> |
| | | <el-button class="copyBtn" size="mini" @click="copyRow(row)">复制</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- --> |
| | | <el-table-column prop="materialReleaseTime" align="center" label="时间"> |
| | | <el-table-column prop="materialReleaseTime" align="center" label="记录时间" width="136"> |
| | | </el-table-column> |
| | | <!-- --> |
| | | <el-table-column prop="dataTime" align="center" label="数据日期" width="86"> |
| | | </el-table-column> |
| | | <!-- --> |
| | | <el-table-column prop="quantity" align="center" label="方量"> |
| | |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <!-- --> |
| | | <el-table-column label="操作" align="center" width="138"> |
| | | <el-table-column label="操作" align="center" width="140"> |
| | | <template #default="{ row }"> |
| | | <el-button class="table_btn" size="mini" v-if="showButton('update')" @click="updateRow(row)">修改</el-button> |
| | | <el-button class="delete_btn" size="mini" v-if="showButton('delete')" @click="deleteRow(row)">删除</el-button> |
| | |
| | | <!-- dialog--> |
| | | <el-dialog class="prop_dialog" v-if="isRender" :title="dialogTitle" :visible.sync="asyncVisible" width="700px" |
| | | @close="closeForm"> |
| | | <el-form :inline="true" size="mini" :model="form" label-width="auto" class="rule_form"> |
| | | <el-form :inline="true" size="mini" :model="form" :rules="rules" ref="ruleForm" label-width="auto" |
| | | class="rule_form"> |
| | | <!-- 理论 --> |
| | | <div class="elFormTitle">理论配比(kg/m³)</div> |
| | | <div class="labelText">理论配比(kg/m³)</div> |
| | | <!-- 理论配比 --> |
| | | <el-form-item v-for="item in form.materialTheory" :key="`${item.dictId}${item.releaseType}`" |
| | | <el-form-item style="width:282px" v-for="item in form.materialTheory" :key="`${item.dictId}${item.releaseType}`" |
| | | :label="item.dictName"> |
| | | <el-input placeholder="请输入" type="number" v-model="item.releaseData" @input="doCompute($event, item.dictId)" |
| | | clearable></el-input> |
| | | </el-form-item> |
| | | <!-- 方量 --> |
| | | <el-form-item class="elFormTitle" type="number" label="方量(m³)" style="width:90%"> |
| | | <el-form-item class="labelText2" type="number" label="方量(m³)" style="width:574px"> |
| | | <el-input placeholder="请输入" v-model="form.quantity" @input="doComputeMulti($event)"></el-input> |
| | | </el-form-item> |
| | | <!-- 日期 --> |
| | | <el-form-item class="labelText2" type="number" label="数据日期" prop="dataTime" style="width:574px"> |
| | | <el-date-picker v-model="form.dataTime" placeholder="选择日期" value-format="yyyy-MM-dd"></el-date-picker> |
| | | </el-form-item> |
| | | <!-- 实际配比 --> |
| | | <el-form-item v-for="item in form.materialReal" :key="`${item.dictId}${item.releaseType}`" :label="item.dictName"> |
| | | <el-form-item style="width:282px" v-for="item in form.materialReal" :key="`${item.dictId}${item.releaseType}`" |
| | | :label="item.dictName"> |
| | | <el-input type="number" v-model="item.releaseData" :disabled="true" clearable></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncVisible = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="onSubmit">提 交</el-button> |
| | | <el-button class="submit_btn" @click="onSubmit('ruleForm')">提 交</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | pageSize: 10, |
| | | strTime: '', |
| | | endTime: '' |
| | | }, |
| | | rules: { |
| | | dataTime: [{required: true, message: '请选择日期', trigger: 'change'}] |
| | | }, |
| | | form: null, // 表单数据 {} |
| | | materialNames: [], // 原料名称 |
| | |
| | | this.$api.Ducts.practicalRaw.getLists(params).then(res => { |
| | | this.loading = false |
| | | if (res.statusMsg === 'ok') { |
| | | this.total = res.data.total |
| | | this.dataLists = res.data.list |
| | | |
| | | this.dataLists.forEach(item => { |
| | | // 接口返回是混一起的数据,,需要清洗. |
| | | let lists = res.data.list |
| | | // 接口返回是混一起的数据,,需要清洗. |
| | | lists.forEach(item => { |
| | | item.treleaseTheoryData = [] |
| | | item.treleaseRealData = [] |
| | | item.treleaseTheoryKeys = {} |
| | |
| | | }) |
| | | } |
| | | }) |
| | | this.total = res.data.total |
| | | this.dataLists = lists |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | |
| | | return this.materialNameKeys[id] || '' |
| | | }, |
| | | setFormProps(options = {}) { |
| | | const {quantity = 1, materialTheory = [], materialReal = []} = options |
| | | const {quantity = 1, dataTime = null, materialTheory = [], materialReal = []} = options |
| | | let _form = { |
| | | quantity, // 方量 |
| | | dataTime, // 数据时间 |
| | | materialTheory, // 原料理论信息 |
| | | materialReal // 原料实际信息信息 |
| | | } |
| | | if (materialTheory.length) { |
| | | if (Object.keys(options).length) { |
| | | this.form = _form |
| | | return |
| | | } |
| | |
| | | }, |
| | | closeForm() { |
| | | this.asyncVisible = false |
| | | this.resetForm('ruleForm') |
| | | this.setFormProps() |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields() |
| | | }, |
| | | dateChange(dates) { |
| | | dates = dates || [] |
| | | if (dates.length) { |
| | | dates[1] = dates[1].slice(0, -8) + '23:59:59' |
| | | } |
| | | // if (dates.length) { |
| | | // dates[1] = dates[1].slice(0, -8) + '23:59:59' |
| | | // } |
| | | this.queryInfo.strTime = dates[0] || '' |
| | | this.queryInfo.endTime = dates[1] || '' |
| | | }, |
| | | // 查询按钮列表信息 |
| | | query() { |
| | | queryReset() { |
| | | this.queryInfo.pageNum = 1 |
| | | this.queryInfo.pageSize = 10 |
| | | this.getLists() |
| | |
| | | this.submitMode = 'add' |
| | | this.showForm() |
| | | }, |
| | | // 根据 materialNameKeys 的顺序来进行数据排序. |
| | | getSortRow(row) { |
| | | const {quantity, dataTime, treleaseTheoryData, treleaseRealData} = row |
| | | const sorts = Object.keys(this.materialNameKeys) |
| | | treleaseTheoryData.sort(function (a, b) { |
| | | return (sorts.indexOf(a.dictId) - sorts.indexOf(b.dictId)) |
| | | }) |
| | | treleaseRealData.sort(function (a, b) { |
| | | return (sorts.indexOf(a.dictId) - sorts.indexOf(b.dictId)) |
| | | }) |
| | | return { |
| | | quantity, |
| | | dataTime, |
| | | materialTheory: treleaseTheoryData, |
| | | materialReal: treleaseRealData, |
| | | } |
| | | }, |
| | | copyRow(row) { |
| | | this.submitMode = 'copy' |
| | | this.rowId = row.materialReleaseId |
| | | let _materialIds = [] |
| | | this.materialNames.forEach(item => { |
| | | _materialIds.push(item.dictId) |
| | | }) |
| | | row.treleaseTheoryData.sort(function (a, b) { |
| | | return (_materialIds.indexOf(a.dictId) - _materialIds.indexOf(b.dictId)) |
| | | }) |
| | | row.treleaseRealData.sort(function (a, b) { |
| | | return (_materialIds.indexOf(a.dictId) - _materialIds.indexOf(b.dictId)) |
| | | }) |
| | | let opts = { |
| | | quantity: row.quantity, |
| | | materialTheory: row.treleaseTheoryData, |
| | | materialReal: row.treleaseRealData, |
| | | } |
| | | this.setFormProps(opts) |
| | | this.setFormProps(this.getSortRow(row)) |
| | | this.showForm() |
| | | }, |
| | | updateRow(row) { |
| | | this.submitMode = 'update' |
| | | this.rowId = row.materialReleaseId |
| | | let _materialIds = [] |
| | | this.materialNames.forEach(item => { |
| | | _materialIds.push(item.dictId) |
| | | }) |
| | | row.treleaseTheoryData.sort(function (a, b) { |
| | | return (_materialIds.indexOf(a.dictId) - _materialIds.indexOf(b.dictId)) |
| | | }) |
| | | row.treleaseRealData.sort(function (a, b) { |
| | | return (_materialIds.indexOf(a.dictId) - _materialIds.indexOf(b.dictId)) |
| | | }) |
| | | let opts = { |
| | | quantity: row.quantity, |
| | | materialTheory: row.treleaseTheoryData, |
| | | materialReal: row.treleaseRealData, |
| | | } |
| | | this.setFormProps(opts) |
| | | this.setFormProps(this.getSortRow(row)) |
| | | this.showForm() |
| | | }, |
| | | deleteRow(row) { |
| | |
| | | this.$api.Ducts.practicalRaw.delete({materialReleaseId: row.materialReleaseId}) |
| | | .then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.query() |
| | | this.queryReset() |
| | | this.$message.success("删除成功!") |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | |
| | | this.$message.warning("您已取消"); |
| | | }) |
| | | }, |
| | | onSubmit: throttle(function () { |
| | | const {quantity, materialTheory, materialReal} = this.form |
| | | let releaseData = [...materialTheory, ...materialReal] |
| | | // 为空数据,重置为0,否则接口报错 |
| | | releaseData.forEach(item => { |
| | | if (!item.releaseData) { |
| | | item.releaseData = 0 |
| | | onSubmit: throttle(function (formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (!valid) return false |
| | | const {quantity, dataTime, materialTheory, materialReal} = this.form |
| | | let releaseData = [...materialTheory, ...materialReal] |
| | | // releaseData是空数据需要重置为0,否则接口报错 |
| | | releaseData.forEach(item => { |
| | | if (!item.releaseData) { |
| | | item.releaseData = 0 |
| | | } |
| | | }) |
| | | let params = {quantity, dataTime, releaseData} |
| | | if (this.isUpdate) { |
| | | // 更新 |
| | | params.materialReleaseId = this.rowId |
| | | this.$api.Ducts.practicalRaw.update(params).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.closeForm() |
| | | this.getLists() |
| | | this.$message.success('修改成功!') |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | } else { |
| | | // 添加 | 复制 |
| | | this.$api.Ducts.practicalRaw.insert(params).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.closeForm() |
| | | this.getLists() |
| | | this.$message.success('添加成功!') |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | let params = {quantity, releaseData} |
| | | if (this.isUpdate) { |
| | | // 更新 |
| | | params.materialReleaseId = this.rowId |
| | | this.$api.Ducts.practicalRaw.update(params).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.closeForm() |
| | | this.getLists() |
| | | this.$message.success('修改成功!') |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | } else { |
| | | // 添加 复制 |
| | | this.$api.Ducts.practicalRaw.insert(params).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.closeForm() |
| | | this.getLists() |
| | | this.$message.success('添加成功!') |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | } |
| | | }, 3000), |
| | | }, 1000), |
| | | exportExcel() { |
| | | let params = this.queryInfo |
| | | this.$api.Ducts.practicalRaw.exportXls(params).then(res => { |
| | |
| | | <style lang="scss" scoped> |
| | | @import '../../style/layout-main.scss'; |
| | | |
| | | .elFormTitle { |
| | | /deep/ { |
| | | &::-webkit-scrollbar { |
| | | width: 8px; |
| | | height: 8px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-corner { |
| | | background-color: transparent; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-thumb { |
| | | border-radius: 10px; |
| | | box-shadow: inset 0 0 5px transparent; |
| | | background: #39B5FE; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-track { |
| | | box-shadow: inset 0 0 5px transparent; |
| | | border-radius: 10px; |
| | | background: rgba(76, 188, 254, .3); |
| | | } |
| | | } |
| | | |
| | | .labelText { |
| | | display: block; |
| | | font-weight: bold; |
| | | color: #39B5FE; |
| | |
| | | } |
| | | } |
| | | |
| | | /deep/.prop_dialog .elFormTitle .el-form-item__label { |
| | | ::v-deep .labelText2 .el-form-item__label-wrap .el-form-item__label { |
| | | font-weight: bold; |
| | | color: #39B5FE; |
| | | } |
| | | |
| | | .el-table ::v-deep { |
| | | border: 1px solid #39B5FE; |
| | | |
| | | .copyBtn { |
| | | background-position: unset; |
| | | } |
| | | |
| | | th.el-table__cell { |
| | | border-bottom: 1px solid #39B5FE; |
| | | border-right: 1px solid #39B5FE; |
| | | background: rgba(76, 188, 254, .16) !important; |
| | | } |
| | | |
| | | tr { |
| | | background: none !important; |
| | | } |
| | | |
| | | th.el-table__cell.is-leaf, |
| | | td.el-table__cell { |
| | | border-bottom: 1px solid #39B5FE; |
| | | border-right: 1px solid #39B5FE; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <!-- 工程项目管理 ==> 项目管理--> |
| | | <div class="main"> |
| | | <!-- header--> |
| | | <div class="main_header" style="flex-direction: row-reverse;"> |
| | | <!-- <div class="header_item"> |
| | | <span class="header_label">类型:</span> |
| | | <el-select v-model="search.dictType" placeholder="请选择类型" clearable> |
| | | <el-option |
| | | v-for="item in optionsType" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> --> |
| | | <div class="header_item" style="margin-right:0px"> |
| | | <!-- <el-button :size="size" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button> --> |
| | | <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="insertProp">新增</el-button> |
| | | <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="addRow">新增</el-button> |
| | | </div> |
| | | </div> |
| | | <!-- content--> |
| | | <div class="main_content"> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="dataList" |
| | | height="100%"> |
| | | <el-table-column align="center" label="序号" width="60"> |
| | | <el-table v-loading="loading" :data="dataList" height="100%"> |
| | | <el-table-column align="center" label="序号" width="48"> |
| | | <template #default="scope"> |
| | | <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span> |
| | | <span>{{ (queryInfo.pageNum - 1) * queryInfo.pageSize + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="proName" label="项目名称" align="center" ></el-table-column> |
| | | <el-table-column label="尺寸" align="center" show-overflow-tooltip> |
| | | <template #default="{row}"> |
| | | <div>{{showInfo(row.proSizes)}}</div> |
| | | </template> |
| | | <el-table-column label="已完成(块)" align="center"> |
| | | <template #default="{ row }"> |
| | | <div style="cursor: pointer;" @click="showDetail(row)">{{ row.completedQuantity }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="配筋" align="center" show-overflow-tooltip> |
| | | <template #default="{row}"> |
| | | <div>{{showInfo(row.proHas)}}</div> |
| | | </template> |
| | | <el-table-column prop="proName" label="项目名称" align="center" width="160"></el-table-column> |
| | | <el-table-column label="尺寸" align="center" show-overflow-tooltip> |
| | | <template #default="{ row }"> |
| | | <div>{{ showInfo(row.proSizes) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="转向" align="center" show-overflow-tooltip> |
| | | <template #default="{row}"> |
| | | <div>{{showInfo(row.proTurns)}}</div> |
| | | </template> |
| | | <el-table-column label="配筋" align="center" show-overflow-tooltip> |
| | | <template #default="{ row }"> |
| | | <div>{{ showInfo(row.proHas) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="转向" align="center" show-overflow-tooltip> |
| | | <template #default="{ row }"> |
| | | <div>{{ showInfo(row.proTurns) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="注浆孔" align="center" show-overflow-tooltip> |
| | | <template #default="{row}"> |
| | | <div>{{showInfo(row.proGroutings)}}</div> |
| | | </template> |
| | | <template #default="{ row }"> |
| | | <div>{{ showInfo(row.proGroutings) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="块号" align="center" show-overflow-tooltip> |
| | | <template #default="{row}"> |
| | | <div>{{showInfo(row.proBloks)}}</div> |
| | | </template> |
| | | <template #default="{ row }"> |
| | | <div>{{ showInfo(row.proBloks) }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="startDate" label="开始日期" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="createUnit" label="建设单位" align="center"></el-table-column> |
| | | <el-table-column prop="planUnit" label="设计单位" align="center"></el-table-column> |
| | | <el-table-column prop="supervisionUnit" label="监理单位" align="center"></el-table-column> |
| | | <el-table-column prop="constructionUnit" label="施工单位" align="center"></el-table-column> |
| | | <el-table-column prop="outsideDiameter" label="外径" align="center"></el-table-column> |
| | | <el-table-column prop="innerDiameter" label="内径" align="center"></el-table-column> |
| | | <el-table-column prop="thickness" label="厚度" align="center"></el-table-column> |
| | | <el-table-column prop="ringWidth" label="环宽" align="center"></el-table-column> |
| | | <el-table-column prop="concreteStrengthGrade" label="混凝土强度等级" align="center"></el-table-column> |
| | | <el-table-column prop="impermeabilityLevel" label="抗渗等级" align="center"></el-table-column> |
| | | <el-table-column prop="waterproofType" label="有无外弧面防水" align="center"> |
| | | <template #default="{ row }"> |
| | | <div>{{ row.waterproofType === 0 ? '有' : '无' }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="startDate" label="开始日期" align="center" width="86"></el-table-column> |
| | | <el-table-column prop="proTime" label="工期(月)" align="center"></el-table-column> |
| | | <el-table-column prop="planOutput" label="总需求(环)" align="center"></el-table-column> |
| | | <el-table-column label="操作" align="center"> |
| | | <template #default="{ row }"> |
| | | <el-button class="table_btn" size="mini" v-if="showButton('stop')" @click="deleteInfo(row)">停用</el-button> |
| | | <el-button class="delete_btn" size="mini" v-if="showButton('update')" @click="updateProp(row)">修改</el-button> |
| | | <el-table-column label="操作" align="center" width="140"> |
| | | <template #default="scope"> |
| | | <el-button class="table_btn" size="mini" v-if="showButton('stop')" |
| | | @click="deleteRow(scope.row)">停用</el-button> |
| | | <el-button class="delete_btn" size="mini" v-if="showButton('update')" |
| | | @click="updateRow(scope.$index)">修改</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <!-- footer--> |
| | | <div class="main_footer"> |
| | | <el-pagination |
| | | background |
| | | @current-change="changePageNum" |
| | | @size-change="changePageSize" |
| | | :current-page="pageNum" |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | <el-pagination background @current-change="changePageNum" @size-change="changePageSize" |
| | | :current-page="queryInfo.pageNum" :page-sizes="[10, 20, 50, 100]" :page-size="queryInfo.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog |
| | | class="prop_dialog" |
| | | :title="asyncTitle ? '新增项目' : '修改项目'" |
| | | :close-on-click-modal="false" |
| | | :visible.sync="asyncVisible" |
| | | width="35%"> |
| | | <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form"> |
| | | <el-form-item label="项目名称:" prop="proName"> |
| | | <el-input v-model="ruleForm.proName" :size="size" clearable placeholder="请输入项目名称"></el-input> |
| | | <!-- dialog --> |
| | | <el-dialog class="prop_dialog" v-if="isRender" :title="dialogTitle" :visible.sync="asyncVisible" width="35%" |
| | | @close="closeForm"> |
| | | <el-form ref="ruleForm" size="mini" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form"> |
| | | <el-form-item label="项目名称" prop="proName"> |
| | | <el-input v-model="ruleForm.proName" clearable placeholder="请输入项目名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="项目简介:" prop="proDesc"> |
| | | <el-input v-model="ruleForm.proDesc" :size="size" type="textarea" :rows="3" clearable placeholder="请输入内容"></el-input> |
| | | <el-form-item label="项目简介:" prop="proDesc"> |
| | | <el-input v-model="ruleForm.proDesc" type="textarea" :rows="3" clearable placeholder="请输入内容"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="尺寸(m):" prop="sizes"> |
| | | <el-form-item label="尺寸(m):" prop="sizes"> |
| | | <el-select v-model="ruleForm.sizes" placeholder="请选择尺寸" multiple> |
| | | <el-option |
| | | v-for="item in optionsSize" |
| | | :key="item.dictId" |
| | | :label="item.dictName" |
| | | :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-option v-for="item in optionsSize" :key="item.dictId" :label="item.dictName" :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="配筋:" prop="hass"> |
| | | <el-form-item label="配筋:" prop="hass"> |
| | | <el-select v-model="ruleForm.hass" placeholder="请选择配筋" multiple> |
| | | <el-option |
| | | v-for="item in optionsHass" |
| | | :key="item.dictId" |
| | | :label="item.dictName" |
| | | :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-option v-for="item in optionsHass" :key="item.dictId" :label="item.dictName" :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="转向:" prop="turns"> |
| | | <el-form-item label="转向:" prop="turns"> |
| | | <el-select v-model="ruleForm.turns" placeholder="请选择转向" multiple> |
| | | <el-option |
| | | v-for="item in optionsTurn" |
| | | :key="item.dictId" |
| | | :label="item.dictName" |
| | | :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-option v-for="item in optionsTurn" :key="item.dictId" :label="item.dictName" :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="注浆孔:" prop="groutings"> |
| | | <el-form-item label="注浆孔:" prop="groutings"> |
| | | <el-select v-model="ruleForm.groutings" placeholder="请选择注浆孔" multiple> |
| | | <el-option |
| | | v-for="item in optionsGrout" |
| | | :key="item.dictId" |
| | | :label="item.dictName" |
| | | :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-option v-for="item in optionsGrout" :key="item.dictId" :label="item.dictName" :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="块号:" prop="bloks"> |
| | | <el-form-item label="块号:" prop="bloks"> |
| | | <el-select v-model="ruleForm.bloks" placeholder="请选择块号" multiple> |
| | | <el-option |
| | | v-for="item in optionsBlocks" |
| | | :key="item.dictId" |
| | | :label="item.dictName" |
| | | :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-option v-for="item in optionsBlocks" :key="item.dictId" :label="item.dictName" :value="item.dictId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="建设单位:" prop="createUnit"> |
| | | <el-input v-model="ruleForm.createUnit" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="设计单位:" prop="planUnit"> |
| | | <el-input v-model="ruleForm.planUnit" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="监理单位:" prop="supervisionUnit"> |
| | | <el-input v-model="ruleForm.supervisionUnit" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="施工单位:" prop="constructionUnit"> |
| | | <el-input v-model="ruleForm.constructionUnit" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="外径:" prop="outsideDiameter"> |
| | | <el-input v-model="ruleForm.outsideDiameter" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="内径:" prop="innerDiameter"> |
| | | <el-input v-model="ruleForm.innerDiameter" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="厚度:" prop="thickness"> |
| | | <el-input v-model="ruleForm.thickness" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="环宽:" prop="ringWidth"> |
| | | <el-input v-model="ruleForm.ringWidth" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="混凝土强度等级:" prop="concreteStrengthGrade"> |
| | | <el-input v-model="ruleForm.concreteStrengthGrade" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="抗渗等级:" prop="impermeabilityLevel"> |
| | | <el-input v-model="ruleForm.impermeabilityLevel" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="有无外弧面防水:" prop="waterproofType"> |
| | | <el-radio-group v-model="ruleForm.waterproofType"> |
| | | <el-radio :label="0">有</el-radio> |
| | | <el-radio :label="1">无</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="开始日期:" prop="startDate"> |
| | | <el-date-picker |
| | | v-model="ruleForm.startDate" |
| | | type="date" |
| | | style="width:100%" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择开始日期"> |
| | | </el-date-picker> |
| | | <el-date-picker v-model="ruleForm.startDate" type="date" style="width:100%" value-format="yyyy-MM-dd" |
| | | placeholder="请选择开始日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="工期(月):" prop="proTime"> |
| | | <el-input v-model="ruleForm.proTime" :size="size" type="number" clearable placeholder="请输入工期"></el-input> |
| | | <el-form-item label="工期(月):" prop="proTime"> |
| | | <el-input v-model="ruleForm.proTime" type="number" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="总需求(环):" prop="planOutput"> |
| | | <el-input v-model="ruleForm.planOutput" :size="size" type="number" clearable placeholder="请输入总需求"></el-input> |
| | | <el-form-item label="总需求(环):" prop="planOutput"> |
| | | <el-input v-model="ruleForm.planOutput" type="number" clearable placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncVisible = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="asyncTitle ? submitInsert() : submitUpdate()">提 交</el-button> |
| | | <el-button class="submit_btn" @click="onSubmit('ruleForm')">提 交</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- detail dialog --> |
| | | <el-dialog class="prop_dialog" v-if="detail.isRenderDetail" title="管片数量" :visible.sync="detail.asyncVisible" |
| | | width="800px"> |
| | | <cpnTable :table-index="true" :table-data="detail.tableData" :table-columns-config="detail.tableColumns" |
| | | :page-total="detail.total" :page-num.sync="detail.pageNum" :page-size.sync="detail.pageSize" |
| | | :page-change="pageChange"> |
| | | </cpnTable> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { buttonPinia } from '../../pinia/index'; |
| | | import { throttle, changeSize } from '../../plugins/public'; // 导入节流、动态切换组件尺寸方法 |
| | | export default { |
| | | data() { |
| | | return { |
| | | size: changeSize(), // 组件尺寸 |
| | | import {buttonPinia} from '../../pinia/index'; |
| | | import {throttle} from '../../plugins/public'; // 导入节流、动态切换组件尺寸方法 |
| | | import cpnTable from '@/components/table/Table' |
| | | export default { |
| | | data() { |
| | | return { |
| | | isRender: false, |
| | | loading: false, |
| | | submitMode: '', // add update |
| | | asyncVisible: false, // 添加 修改对话框 |
| | | total: 0, |
| | | queryInfo: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | search:{},//查询条件 |
| | | }, |
| | | dataList: [], |
| | | ruleForm: {}, // 表单数据 {} |
| | | rules: { |
| | | proName: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | proDesc: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | sizes: [{required: true, message: '请选择', trigger: 'blur'}], |
| | | hass: [{required: true, message: '请选择', trigger: 'blur'}], |
| | | turns: [{required: true, message: '请选择', trigger: 'blur'}], |
| | | groutings: [{required: true, message: '请选择', trigger: 'blur'}], |
| | | bloks: [{required: true, message: '请选择', trigger: 'blur'}], |
| | | createUnit: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | planUnit: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | supervisionUnit: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | constructionUnit: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | outsideDiameter: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | innerDiameter: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | thickness: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | ringWidth: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | concreteStrengthGrade: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | impermeabilityLevel: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | waterproofType: [{required: true, message: '请选择', trigger: 'blur'}], |
| | | }, |
| | | optionsSize: [],//尺寸下拉框 |
| | | optionsHass: [],//配筋下拉框 |
| | | optionsTurn: [],//转向下拉框 |
| | | optionsGrout: [],//注浆孔下拉框 |
| | | optionsBlocks: [],//块号下拉框 |
| | | detail: { |
| | | rowId: '', |
| | | isRenderDetail: false, |
| | | asyncVisible: false, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | total: 0, |
| | | loading: false, |
| | | dataList: [], //项目管理信息列表 |
| | | asyncTitle: true, // 对话框title 新增:true 修改:false |
| | | asyncVisible: false, // 添加 修改对话框 |
| | | ruleForm: { |
| | | }, // 按钮表单 |
| | | rules: { |
| | | proName: [{ |
| | | required: true, |
| | | message: '请输入项目名称', |
| | | trigger: 'blur' |
| | | }], |
| | | proDesc: [{ |
| | | required: true, |
| | | message: '请输入项目简介', |
| | | trigger: 'blur' |
| | | }], |
| | | sizes: [{ |
| | | required: true, |
| | | message: '请选择尺寸', |
| | | trigger: 'blur' |
| | | }], |
| | | hass: [{ |
| | | required: true, |
| | | message: '请选择配筋', |
| | | trigger: 'blur' |
| | | }], |
| | | turns: [{ |
| | | required: true, |
| | | message: '请选择转向', |
| | | trigger: 'blur' |
| | | }], |
| | | groutings: [{ |
| | | required: true, |
| | | message: '请选择注浆孔', |
| | | trigger: 'blur' |
| | | }], |
| | | bloks: [{ |
| | | required: true, |
| | | message: '请选择块号', |
| | | trigger: 'blur' |
| | | }], |
| | | }, |
| | | optionsSize:[],//尺寸下拉框 |
| | | optionsHass:[],//配筋下拉框 |
| | | optionsTurn:[],//转向下拉框 |
| | | optionsGrout:[],//注浆孔下拉框 |
| | | optionsBlocks:[],//块号下拉框 |
| | | } |
| | | }, |
| | | watch: { |
| | | asyncVisible(bol) { |
| | | if(!bol) { |
| | | this.ruleForm = {}; |
| | | this.$refs['ruleForm'].resetFields(); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | const that = this; |
| | | // 根据窗口大小动态修改组件尺寸 |
| | | window.onresize = () => { |
| | | that.size = changeSize(); |
| | | } |
| | | that.searchButtonInfo(true); |
| | | that.getAllTypes()//获取尺寸配筋等信息 |
| | | }, |
| | | methods: { |
| | | //table上展示尺寸等信息 |
| | | showInfo(val){ |
| | | let str='' |
| | | let str1 = '' |
| | | if(val.length===1){ |
| | | str = val[0].dictName |
| | | }else{ |
| | | val.forEach(item=>{ |
| | | str+=item.dictName+',' |
| | | }) |
| | | str1 = str.lastIndexOf(',') |
| | | str = str.substring(0,str1) |
| | | } |
| | | return str |
| | | }, |
| | | //获取尺寸配筋转向等信息 |
| | | getAllTypes(){ |
| | | let params = { |
| | | pageNum: 1, |
| | | pageSize: 100000000 |
| | | } |
| | | this.$api.Dictionary.searchDictionary(params).then(res=>{ |
| | | if(res.statusMsg === 'ok'){ |
| | | this.optionsSize = res.data.list.filter(item =>item.dictType === '1') |
| | | this.optionsHass = res.data.list.filter(item =>item.dictType === '2') |
| | | this.optionsTurn = res.data.list.filter(item =>item.dictType === '3') |
| | | this.optionsGrout = res.data.list.filter(item =>item.dictType === '4') |
| | | this.optionsBlocks = res.data.list.filter(item =>item.dictType === '5') |
| | | }else{ |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }, |
| | | // 查询按钮列表信息 |
| | | searchButtonInfo(bol) { |
| | | if(bol) { |
| | | this.pageNum = 1; |
| | | } |
| | | let params = Object.assign({},this.search,{ |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize |
| | | }) |
| | | this.loading = true; |
| | | this.$api.Engineer.searchProjects(params).then((res) => { |
| | | if(res.statusMsg === 'ok') { |
| | | this.total = res.data.total; |
| | | this.dataList = res.data.list; |
| | | } |
| | | this.loading = false; |
| | | }) |
| | | }, |
| | | // 新增按钮信息 |
| | | insertProp() { |
| | | this.asyncTitle = true; |
| | | this.asyncVisible = true; |
| | | }, |
| | | // 修改按钮信息 |
| | | updateProp(row) { |
| | | this.asyncTitle = false; |
| | | this.asyncVisible = true; |
| | | this.$api.Engineer.detailsProjects({proId: row.proId}).then(res=>{ |
| | | if(res.statusMsg === 'ok'){ |
| | | this.ruleForm = res.data |
| | | let sizeArr = [] |
| | | let hassArr = [] |
| | | let turnArr = [] |
| | | let groutArr = [] |
| | | let blockArr = [] |
| | | res.data.proSizes.forEach(item=>{ |
| | | sizeArr.push(item.sizes) |
| | | }) |
| | | res.data.proHas.forEach(item=>{ |
| | | hassArr.push(item.hasSteel) |
| | | }) |
| | | res.data.proTurns.forEach(item=>{ |
| | | turnArr.push(item.turn) |
| | | }) |
| | | res.data.proGroutings.forEach(item=>{ |
| | | groutArr.push(item.groutingHoles) |
| | | }) |
| | | res.data.proBloks.forEach(item=>{ |
| | | blockArr.push(item.blockNum) |
| | | }) |
| | | this.$set(this.ruleForm,'sizes',sizeArr) |
| | | this.$set(this.ruleForm,'hass',hassArr) |
| | | this.$set(this.ruleForm,'turns',turnArr) |
| | | this.$set(this.ruleForm,'groutings',groutArr) |
| | | this.$set(this.ruleForm,'bloks',blockArr) |
| | | }else{ |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }, |
| | | // 删除按钮信息 |
| | | deleteInfo(row) { |
| | | this.$confirm("该操作将删除该信息,是否继续删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | this.$api.Engineer.deleteProjects({proId: row.proId}) |
| | | .then(res => { |
| | | if(res.statusMsg === 'ok') { |
| | | this.searchButtonInfo(true); |
| | | this.$message.success("删除成功!"); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | }) |
| | | .catch(() => { |
| | | this.$message.warning("您已取消"); |
| | | }) |
| | | }, |
| | | // 提交添加按钮信息 |
| | | submitInsert: throttle(function() { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if(valid) { |
| | | const params = Object.assign({}, this.ruleForm); |
| | | this.$api.Engineer.insertProjects(params).then((res) => { |
| | | if(res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('添加成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 提交修改按钮信息 |
| | | submitUpdate: throttle(function() { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if(valid) { |
| | | const params = Object.assign({}, this.ruleForm); |
| | | this.$api.Engineer.updateProjects(params).then((res) => { |
| | | if(res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('添加成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchButtonInfo(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchButtonInfo(); |
| | | tableData: [], |
| | | tableColumns: [], |
| | | } |
| | | } |
| | | }, |
| | | components: { |
| | | cpnTable |
| | | }, |
| | | computed: { |
| | | dialogTitle() { |
| | | return this.submitMode === 'update' ? '修改项目' : '新增项目' |
| | | }, |
| | | isUpdate() { |
| | | return this.submitMode === 'update' |
| | | }, |
| | | }, |
| | | created() { |
| | | this.setFormProps() |
| | | this.getAllTypes() |
| | | this.getLists() |
| | | }, |
| | | methods: { |
| | | getLists() { |
| | | let params = this.queryInfo |
| | | this.loading = true |
| | | this.$api.Engineer.searchProjects(params).then(res => { |
| | | this.loading = false |
| | | if (res.statusMsg === 'ok') { |
| | | this.total = res.data.total |
| | | this.dataList = res.data.list |
| | | } |
| | | }) |
| | | }, |
| | | //获取尺寸配筋转向等信息 |
| | | getAllTypes() { |
| | | let params = {pageNum: 1, pageSize: 100000000} |
| | | this.$api.Dictionary.searchDictionary(params).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | res.data.list.forEach(item => { |
| | | switch (item.dictType) { |
| | | case '1': |
| | | this.optionsSize.push(item) |
| | | break |
| | | case '2': |
| | | this.optionsHass.push(item) |
| | | break |
| | | case '3': |
| | | this.optionsTurn.push(item) |
| | | break |
| | | case '4': |
| | | this.optionsGrout.push(item) |
| | | break |
| | | case '5': |
| | | this.optionsBlocks.push(item) |
| | | break |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | setFormProps(options = {}) { |
| | | let _form = { |
| | | proName: '', // 项目名称 |
| | | proDesc: '', // 项目描述 |
| | | sizes: '', // 尺寸 |
| | | hass: '', // 配筋 |
| | | turns: '', // 转向 |
| | | groutings: '', // 注浆孔 |
| | | bloks: '', // 块号 |
| | | createUnit: '', // 建设单位 |
| | | planUnit: '', // 设计单位 |
| | | supervisionUnit: '', // 监理单位 |
| | | constructionUnit: '', // 施工单位 |
| | | outsideDiameter: '', // 外径 |
| | | innerDiameter: '', // 内径 |
| | | thickness: '', // 厚度 |
| | | ringWidth: '', // 环宽 |
| | | concreteStrengthGrade: '', // 混凝土强度等级 |
| | | impermeabilityLevel: '', // 抗渗等级 |
| | | waterproofType: '', // 有无外弧面防水 |
| | | startDate: '', // 开始日期 |
| | | proTime: '', // 工期 |
| | | planOutput: '', // 总需求 |
| | | } |
| | | this.ruleForm = Object.keys(options).length ? options : _form |
| | | }, |
| | | //table上展示尺寸等信息 |
| | | showInfo(val) { |
| | | let str = '' |
| | | let str1 = '' |
| | | if (val.length === 1) { |
| | | str = val[0].dictName |
| | | } else { |
| | | val.forEach(item => { |
| | | str += item.dictName + ',' |
| | | }) |
| | | str1 = str.lastIndexOf(',') |
| | | str = str.substring(0, str1) |
| | | } |
| | | return str |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields() |
| | | }, |
| | | showForm() { |
| | | !this.isRender && (this.isRender = true) |
| | | this.asyncVisible = true |
| | | }, |
| | | closeForm() { |
| | | this.asyncVisible = false |
| | | this.resetForm('ruleForm') |
| | | this.setFormProps() |
| | | }, |
| | | addRow() { |
| | | this.submitMode = 'add' |
| | | this.showForm() |
| | | }, |
| | | updateRow(rowIndex) { |
| | | const rowData = this.dataList[rowIndex] |
| | | // 以下字段不能直接使用,需要处理后赋值 |
| | | // a:[b,c] a:ruleForm的key b:rowData的key c:rowData[key]数据里的key |
| | | const formFormatKeys = { |
| | | sizes: ['proSizes', 'sizes'], |
| | | hass: ['proHas', 'hasSteel'], |
| | | turns: ['proTurns', 'turn'], |
| | | groutings: ['proGroutings', 'groutingHoles'], |
| | | bloks: ['proBloks', 'blockNum'], |
| | | } |
| | | Object.keys(formFormatKeys).forEach(item => { |
| | | const targetKey = formFormatKeys[item].shift() |
| | | const targetValKey = formFormatKeys[item].pop() |
| | | if (Array.isArray(rowData[targetKey])) { |
| | | rowData[targetKey].forEach(val => { |
| | | formFormatKeys[item].push(val[targetValKey]) |
| | | }) |
| | | } else { |
| | | formFormatKeys[item] = rowData[targetKey] |
| | | } |
| | | }) |
| | | Object.keys(this.ruleForm).forEach(item => { |
| | | if (rowData.hasOwnProperty.call(rowData, item)) { |
| | | this.ruleForm[item] = rowData[item] |
| | | } else if (formFormatKeys[item]) { |
| | | this.ruleForm[item] = formFormatKeys[item] |
| | | } |
| | | }) |
| | | this.ruleForm.proId = rowData.proId |
| | | this.submitMode = 'update' |
| | | this.showForm() |
| | | }, |
| | | deleteRow(row) { |
| | | this.$confirm("该操作将删除该信息,是否继续删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | this.$api.Engineer.deleteProjects({proId: row.proId}) |
| | | .then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.getLists() |
| | | this.$message.success("删除成功!") |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message.warning("您已取消") |
| | | }) |
| | | }, |
| | | onSubmit: throttle(function (formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (!valid) return false |
| | | const params = this.ruleForm |
| | | if (this.isUpdate) { |
| | | // 更新 |
| | | this.$api.Engineer.updateProjects(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.closeForm() |
| | | this.getLists(); |
| | | this.$message.success('更新成功!') |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | } else { |
| | | // 添加 |
| | | this.$api.Engineer.insertProjects(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.closeForm() |
| | | this.getLists() |
| | | this.$message.success('添加成功!') |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 1000), |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | changePageNum(page) { |
| | | this.queryInfo.pageNum = page; |
| | | this.getLists(); |
| | | }, |
| | | changePageSize(size) { |
| | | this.queryInfo.pageSize = size |
| | | this.getLists() |
| | | }, |
| | | showDetail(row) { |
| | | let detailData = this.detail |
| | | !detailData.isRenderDetail && (detailData.isRenderDetail = true) |
| | | detailData.asyncVisible = true |
| | | detailData.rowId = row.proId |
| | | detailData.total = 0 |
| | | detailData.tableData = [] |
| | | this.getDetailLists() |
| | | }, |
| | | getDetailLists() { |
| | | let detailData = this.detail |
| | | this.$api.DuctpiecePLM.searchDuctpiecePLMList({ |
| | | proId: detailData.rowId, |
| | | pageNum: detailData.pageNum, |
| | | pageSize: detailData.pageSize |
| | | }).then(res => { |
| | | if (res.success) { |
| | | if (!detailData.tableColumns.length) { |
| | | detailData.tableColumns = [ |
| | | {index: true}, |
| | | {slot: "name"}, |
| | | {name: "环号", key: "ringNum"}, |
| | | {name: "管片编号", key: "pipeNum", width: 140}, |
| | | {name: "转向", key: "turnName", width: 106}, |
| | | {name: "配筋", key: "reinforcementName"}, |
| | | {name: "注浆孔", key: "groutingHolesName"}, |
| | | {name: "块号", key: "blockNumName"}, |
| | | {name: "模具", key: "mouldNum"}, |
| | | {name: "入模时间", key: "intoModTime", width: 136}, |
| | | {name: "浇筑时间", key: "pouringTime"}, |
| | | {name: "质检时间", key: "checkTime", width: 136}, |
| | | {name: "生产班组", key: "groupName"}, |
| | | {name: "项目", key: "proName", width: 240}, |
| | | {name: "质量标注", key: "checkResultStr"}, |
| | | ] |
| | | } |
| | | detailData.total = res.data.total |
| | | detailData.tableData = res.data.list |
| | | } |
| | | }) |
| | | }, |
| | | pageChange() { |
| | | this.getDetailLists() |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="sass" scoped> |
| | | <style lang="scss" scoped> |
| | | @import '../../style/layout-main.scss'; |
| | | |
| | | /deep/ { |
| | | &::-webkit-scrollbar { |
| | | width: 8px; |
| | | height: 8px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-corner { |
| | | background-color: transparent; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-thumb { |
| | | border-radius: 10px; |
| | | box-shadow: inset 0 0 5px transparent; |
| | | background: #39B5FE; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-track { |
| | | box-shadow: inset 0 0 5px transparent; |
| | | border-radius: 10px; |
| | | background: rgba(76, 188, 254, .3); |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <!-- 工程项目管理 ==> 单位工程管理--> |
| | | <div class="main"> |
| | | <div class="main_header"> |
| | | <div class="header_item"> |
| | | <span class="header_label">标段名称:</span> |
| | | <el-input v-model="search.segmentName" :size="size" clearable placeholder="请输入标段名称"></el-input> |
| | | <el-input v-model="queryInfo.segmentName" clearable placeholder="请输入标段名称"></el-input> |
| | | </div> |
| | | <div class="header_item"> |
| | | <span class="header_label">项目名称:</span> |
| | | <el-select v-model="search.proId" placeholder="请选择项目名称" clearable> |
| | | <el-option |
| | | v-for="item in optionsProject" |
| | | :key="item.proId" |
| | | :label="item.proName" |
| | | :value="item.proId"> |
| | | </el-option> |
| | | <el-select v-model="queryInfo.proId" placeholder="请选择项目名称" clearable> |
| | | <el-option v-for="item in optionsProject" :key="item.proId" :label="item.proName" :value="item.proId"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="header_item"> |
| | | <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button> |
| | | <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="insertProp">新增</el-button> |
| | | <el-button icon="el-icon-search" v-if="showButton('search')" @click="queryReset">查询</el-button> |
| | | <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="addRow">新增</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="main_content"> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="dataList" |
| | | height="100%"> |
| | | <el-table-column align="center" label="序号" width="60"> |
| | | <template #default="scope"> |
| | | <span>{{(pageNum - 1) * pageSize + scope.$index + 1}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="proName" label="项目名称" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="segmentName" label="标段名称" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="shieldEnp" label="盾构单位" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="station" label="站点" align="center"></el-table-column> |
| | | <el-table-column prop="realName" label="负责人" align="center"></el-table-column> |
| | | <el-table-column label="操作" align="center"> |
| | | <cpnTable :table-index="true" :table-data="dataList" :table-columns-config="tableColumns" :page-total="total" |
| | | :page-num.sync="queryInfo.pageNum" :page-size.sync="queryInfo.pageSize" :page-change="pageChange"> |
| | | <el-table-column slot="finished" label="已完成(块)" align="center"> |
| | | <template #default="{ row }"> |
| | | <el-button class="table_btn" size="mini" v-if="showButton('update')" @click="updateProp(row)">修改</el-button> |
| | | <el-button class="delete_btn" size="mini" v-if="showButton('delete')" @click="deleteInfo(row)">删除</el-button> |
| | | <div style="cursor: pointer;" @click="showDetail(row)">{{ row.completedQuantity }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-table-column slot="action" label="操作" width="140" align="center"> |
| | | <template #default="{ row }"> |
| | | <el-button class="table_btn" size="mini" v-if="showButton('update')" @click="updateRow(row)">修改</el-button> |
| | | <el-button class="delete_btn" size="mini" v-if="showButton('delete')" @click="deleteRow(row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </cpnTable> |
| | | </div> |
| | | <div class="main_footer"> |
| | | <el-pagination |
| | | background |
| | | @current-change="changePageNum" |
| | | @size-change="changePageSize" |
| | | :current-page="pageNum" |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | :page-size="pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="total"> |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog |
| | | class="prop_dialog" |
| | | :title="asyncTitle ? '新增标段' : '修改标段'" |
| | | :close-on-click-modal="false" |
| | | :visible.sync="asyncVisible" |
| | | width="35%"> |
| | | <!-- dialog --> |
| | | <el-dialog class="prop_dialog" v-if="isRender" :title="dialogTitle" :visible.sync="asyncVisible" width="660px" |
| | | @close="closeForm"> |
| | | <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form"> |
| | | <el-form-item label="项目名称:" prop="proId"> |
| | | <el-select v-model="ruleForm.proId" placeholder="请选择项目名称" @change="changeNeed"> |
| | | <el-option |
| | | v-for="item in optionsProject" |
| | | :key="item.proId" |
| | | :label="item.proName" |
| | | :value="item.proId"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-form-item label="项目名称:" prop="proId"> |
| | | <el-select v-model="ruleForm.proId" placeholder="请选择" @change="changeNeed"> |
| | | <el-option v-for="item in optionsProject" :key="item.proId" :label="item.proName" :value="item.proId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="标段名称:" prop="segmentName"> |
| | | <el-input v-model="ruleForm.segmentName" :size="size" clearable placeholder="请输入标段名称"></el-input> |
| | | <el-form-item label="起讫里程:" prop="mileage"> |
| | | <el-input v-model="ruleForm.mileage" clearable placeholder="请输入起讫里程"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="需求负责人:" prop="segmentAdmin"> |
| | | <el-select v-model="ruleForm.segmentAdmin" placeholder="请选择需求负责人"> |
| | | <el-option |
| | | v-for="item in optionsUser" |
| | | :key="item.userId" |
| | | :label="item.realName" |
| | | :value="item.userId"> |
| | | </el-option> |
| | | </el-select> |
| | | <el-form-item label="单位工程名称:" prop="unitProjectName"> |
| | | <el-input v-model="ruleForm.unitProjectName" clearable placeholder="请输入单位工程名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="盾构单位:" prop="shieldEnp"> |
| | | <el-input v-model="ruleForm.shieldEnp" :size="size" clearable placeholder="请输入盾构单位"></el-input> |
| | | <el-form-item label="需求负责人:" prop="segmentAdmin"> |
| | | <el-select v-model="ruleForm.segmentAdmin" placeholder="请选择求负责人"> |
| | | <el-option v-for="item in optionsUser" :key="item.userId" :label="item.realName" :value="item.userId"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="站点:" prop="station"> |
| | | <el-input v-model="ruleForm.station" :size="size" clearable placeholder="请输入站点"></el-input> |
| | | <el-form-item label="盾构单位:" prop="shieldEnp"> |
| | | <el-input v-model="ruleForm.shieldEnp" clearable placeholder="请输入盾构单位"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="开始时间:" prop="startTime"> |
| | | <el-date-picker v-model="ruleForm.startTime" value-format="yyyy-MM-dd" placeholder="请选择开始日期"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="结束时间:" prop="endTime"> |
| | | <el-date-picker v-model="ruleForm.endTime" value-format="yyyy-MM-dd" placeholder="请选择结束日期"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="工期:" prop="duration"> |
| | | <el-input v-model="ruleForm.duration" clearable placeholder="请输入工期"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="站点:" prop="station"> |
| | | <el-input v-model="ruleForm.station" clearable placeholder="请输入站点"></el-input> |
| | | </el-form-item> |
| | | <div class="section_needs">标段需求</div> |
| | | <div class="section_needs_content"> |
| | | <div v-for="item in needBlocks" :key="item.dictId" class="needs_items"> |
| | | <div class="needs_text">{{item.dictName}}</div> |
| | | <el-input placeholder="请输入数量" type="number" v-model="item.needNum" class="needs_num"> |
| | | <template slot="append">块</template> |
| | | </el-input> |
| | | </div> |
| | | <div v-for="item in ruleForm.segmentList" :key="item.dictId" class="needs_items"> |
| | | <div class="needs_text">{{ item.dictName }}</div> |
| | | <el-input placeholder="请输入数量" type="number" v-model="item.needNum" class="needs_num"> |
| | | <template slot="append">块</template> |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | | <div slot="footer"> |
| | | <el-button @click="asyncVisible = false">取 消</el-button> |
| | | <el-button class="submit_btn" @click="asyncTitle ? submitInsert() : submitUpdate()">提 交</el-button> |
| | | <el-button class="submit_btn" @click="onSubmit('ruleForm')">提 交</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- detail dialog --> |
| | | <el-dialog class="prop_dialog" v-if="detail.isRenderDetail" title="管片数量" :visible.sync="detail.asyncVisible" |
| | | width="1000px"> |
| | | <el-card> |
| | | <div class="titles" v-for="item in detail.infoMap" :key="item.key"> |
| | | {{ item.name }} : |
| | | <template v-if="item.key === 'waterproofType'"> |
| | | <span>{{ detail.infos[item.key] === 0 ? '有' : '无' }} </span> |
| | | </template> |
| | | <template v-else-if="item.key === 'proHas'"> |
| | | <span v-for="val in detail.infos[item.key]" :key="val.hasSteel"> |
| | | {{ val.dictName }} |
| | | </span> |
| | | </template> |
| | | <template v-else> |
| | | <span>{{ detail.infos[item.key] }}</span> |
| | | </template> |
| | | </div> |
| | | </el-card> |
| | | <cpnTable :table-index="true" :table-data="detail.tableData" :table-columns-config="detail.tableColumns" |
| | | :page-total="detail.total" :page-num.sync="detail.pageNum" :page-size.sync="detail.pageSize" |
| | | :page-change="detailPageChange"> |
| | | </cpnTable> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { buttonPinia } from '../../pinia/index'; |
| | | import { throttle, changeSize } from '../../plugins/public'; // 导入节流、动态切换组件尺寸方法 |
| | | export default { |
| | | data() { |
| | | return { |
| | | size: changeSize(), // 组件尺寸 |
| | | import {buttonPinia} from '../../pinia/index'; |
| | | import {throttle} from '../../plugins/public'; // 导入节流、动态切换组件尺寸方法 |
| | | import cpnTable from '@/components/table/Table' |
| | | export default { |
| | | data() { |
| | | return { |
| | | isRender: false, |
| | | loading: false, |
| | | asyncVisible: false, |
| | | submitMode: '', // add update |
| | | total: 0, |
| | | queryInfo: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | search:{},//查询条件 |
| | | segmentName: '', |
| | | proId: '', |
| | | }, |
| | | dataList: [], |
| | | tableColumns: [], |
| | | optionsUser: [], //需求负责人 |
| | | optionsProject: [], // 项目名称 |
| | | ruleForm: {}, // 按钮表单 |
| | | rules: { |
| | | proId: [{required: true, message: '请选择', trigger: 'change'}], |
| | | mileage: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | unitProjectName: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | segmentAdmin: [{required: true, message: '请选择', trigger: 'change'}], |
| | | shieldEnp: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | startTime: [{required: true, message: '请选择', trigger: 'change'}], |
| | | endTime: [{required: true, message: '请选择', trigger: 'change'}], |
| | | duration: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | station: [{required: true, message: '请输入', trigger: 'blur'}], |
| | | }, |
| | | detail: { |
| | | rowId: '', |
| | | isRenderDetail: false, |
| | | asyncVisible: false, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | total: 0, |
| | | loading: false, |
| | | dataList: [], //标段信息列表 |
| | | optionsUser:[],//需求负责人 |
| | | optionsProject:[],//项目名称 |
| | | asyncTitle: true, // 对话框title 新增:true 修改:false |
| | | asyncVisible: false, // 添加 修改对话框 |
| | | ruleForm: {}, // 按钮表单 |
| | | rules: { |
| | | segmentName: [{ |
| | | required: true, |
| | | message: '请输入标段名称', |
| | | trigger: 'blur' |
| | | }], |
| | | shieldEnp: [{ |
| | | required: true, |
| | | message: '请输入盾构单位', |
| | | trigger: 'blur' |
| | | }], |
| | | station: [{ |
| | | required: true, |
| | | message: '请输入站点', |
| | | trigger: 'blur' |
| | | }], |
| | | proId: [{ |
| | | required: true, |
| | | message: '请选择项目名称', |
| | | trigger: 'change' |
| | | }], |
| | | segmentAdmin: [{ |
| | | required: true, |
| | | message: '请选择需求负责人', |
| | | trigger: 'change' |
| | | }], |
| | | }, |
| | | needBlocks:[],//标段需求 |
| | | } |
| | | }, |
| | | watch: { |
| | | asyncVisible(bol) { |
| | | if(!bol) { |
| | | this.ruleForm = {}; |
| | | this.$refs.ruleForm.resetFields(); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | const that = this; |
| | | // 根据窗口大小动态修改组件尺寸 |
| | | window.onresize = () => { |
| | | that.size = changeSize(); |
| | | } |
| | | that.searchButtonInfo(true); |
| | | that.getAllProjects() |
| | | that.getAllPersons() |
| | | }, |
| | | methods: { |
| | | //通过不同的项目展示不同的标段需求 |
| | | changeNeed(val){ |
| | | let obj = { |
| | | proId:val |
| | | } |
| | | this.needBlocks = [] |
| | | this.$api.Reinforce.searchProjectBears(obj).then(res=>{ |
| | | if(res.statusMsg ==='ok'){ |
| | | if(this.ruleForm.proId ===''){ |
| | | this.needBlocks = [] |
| | | }else{ |
| | | res.data.blokDtos.forEach(item=>{ |
| | | this.needBlocks.push({ |
| | | dictName:item.blockName, |
| | | needType:item.blockNum, |
| | | needNum:0, |
| | | segmentId:'' |
| | | }) |
| | | }) |
| | | } |
| | | }else{ |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }, |
| | | //获得所有人员 |
| | | getAllPersons(){ |
| | | this.$api.Engineer.getPersonsList({}).then(res=>{ |
| | | if(res.statusMsg === 'ok'){ |
| | | this.optionsUser = res.data |
| | | }else{ |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }, |
| | | //获得所有项目名称 |
| | | getAllProjects(){ |
| | | let obj = { |
| | | pageNum: 1, |
| | | pageSize: 100000000 |
| | | } |
| | | this.$api.Engineer.searchProjects(obj).then(res=>{ |
| | | if(res.statusMsg === 'ok'){ |
| | | this.optionsProject = res.data.list |
| | | }else{ |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }, |
| | | //获取块号 |
| | | getAllBlocks(){ |
| | | let params = { |
| | | pageNum: 1, |
| | | pageSize: 100000000 |
| | | } |
| | | this.$api.Dictionary.searchDictionary(params).then(res=>{ |
| | | if(res.statusMsg === 'ok'){ |
| | | if(this.ruleForm.proId===undefined){ |
| | | this.needBlocks = [] |
| | | }else{ |
| | | res.data.list.filter(item =>item.dictType === '5').forEach(iten=>{ |
| | | this.needBlocks.push({ |
| | | dictName:iten.dictName, |
| | | needType:iten.dictId, |
| | | needNum:0, |
| | | segmentId:'' |
| | | }) |
| | | }) |
| | | } |
| | | }else{ |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }, |
| | | // 查询按钮列表信息 |
| | | searchButtonInfo(bol) { |
| | | if(bol) { |
| | | this.pageNum = 1; |
| | | } |
| | | let params = Object.assign({},this.search,{ |
| | | pageNum: this.pageNum, |
| | | pageSize: this.pageSize |
| | | }) |
| | | this.loading = true; |
| | | this.$api.Engineer.searchSegment(params).then((res) => { |
| | | if(res.statusMsg === 'ok') { |
| | | this.total = res.data.total; |
| | | this.dataList = res.data.list; |
| | | tableData: [], |
| | | tableColumns: [], |
| | | infos: [], |
| | | infoMap: [ |
| | | { |
| | | name: '项目名称', |
| | | key: 'proName', |
| | | }, |
| | | { |
| | | name: '单位工程名称', |
| | | key: 'createUnit', |
| | | }, |
| | | { |
| | | name: '外径', |
| | | key: 'outsideDiameter', |
| | | }, |
| | | { |
| | | name: '內径', |
| | | key: 'innerDiameter', |
| | | }, |
| | | { |
| | | name: '厚度', |
| | | key: 'thickness', |
| | | }, |
| | | { |
| | | name: '环宽', |
| | | key: 'ringWidth', |
| | | }, |
| | | { |
| | | name: '混凝土强度等级', |
| | | key: 'concreteStrengthGrade', |
| | | }, |
| | | { |
| | | name: '抗渗等级', |
| | | key: 'impermeabilityLevel', |
| | | }, |
| | | { |
| | | name: '配筋型号', |
| | | key: 'proHas', |
| | | }, |
| | | { |
| | | name: '有无外弧面防水', |
| | | key: 'waterproofType', |
| | | } |
| | | this.loading = false; |
| | | }) |
| | | }, |
| | | // 新增按钮信息 |
| | | insertProp() { |
| | | this.asyncTitle = true; |
| | | this.asyncVisible = true; |
| | | this.getAllBlocks() |
| | | if(this.ruleForm.proId===undefined){ |
| | | this.needBlocks = [] |
| | | }else{ |
| | | this.needBlocks.forEach(item=>{ |
| | | item.needNum = 0 |
| | | }) |
| | | } |
| | | }, |
| | | // 修改按钮信息 |
| | | updateProp(row) { |
| | | this.asyncTitle = false; |
| | | this.asyncVisible = true; |
| | | this.$api.Engineer.detailsSegment({segmentId: row.segmentId}).then(res=>{ |
| | | if(res.statusMsg === 'ok'){ |
| | | this.ruleForm = res.data |
| | | this.needBlocks = res.data.segmentNeeds |
| | | }else{ |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }, |
| | | // 删除按钮信息 |
| | | deleteInfo(row) { |
| | | this.$confirm("该操作将删除该信息,是否继续删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | this.$api.Engineer.deleteSegment({segmentId: row.segmentId}) |
| | | .then(res => { |
| | | if(res.statusMsg === 'ok') { |
| | | this.searchButtonInfo(true); |
| | | this.$message.success("删除成功!"); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | }) |
| | | .catch(() => { |
| | | this.$message.warning("您已取消"); |
| | | }) |
| | | }, |
| | | // 提交添加按钮信息 |
| | | submitInsert: throttle(function() { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if(valid) { |
| | | const params = Object.assign({}, this.ruleForm); |
| | | params.segmentList = this.needBlocks |
| | | this.$api.Engineer.insertSegment(params).then((res) => { |
| | | if(res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('添加成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 提交修改按钮信息 |
| | | submitUpdate: throttle(function() { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if(valid) { |
| | | const params = Object.assign({}, this.ruleForm); |
| | | params.segmentList = this.needBlocks |
| | | this.$api.Engineer.updateSegment(params).then((res) => { |
| | | if(res.statusMsg === 'ok') { |
| | | this.asyncVisible = false; |
| | | this.searchButtonInfo(true); |
| | | this.$message.success('添加成功!'); |
| | | } else { |
| | | this.$message.warning(res.statusMsg); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 3000), |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | // 切换页数 |
| | | changePageNum(page) { |
| | | this.pageNum = page; |
| | | this.searchButtonInfo(); |
| | | }, |
| | | // 切换每页条数 |
| | | changePageSize(size) { |
| | | this.pageSize = size; |
| | | this.searchButtonInfo(); |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | components: { |
| | | cpnTable |
| | | }, |
| | | computed: { |
| | | dialogTitle() { |
| | | return this.submitMode === 'update' ? '修改新增单位工程' : '新增单位工程' |
| | | }, |
| | | isUpdate() { |
| | | return this.submitMode === 'update' |
| | | }, |
| | | }, |
| | | created() { |
| | | this.setFormProps() |
| | | this.setTableColumn() |
| | | this.getLists() |
| | | this.getAllProjects() |
| | | this.getAllPersons() |
| | | // this.getAllBlocks() // 暂时没用,先屏蔽 |
| | | }, |
| | | methods: { |
| | | getLists() { |
| | | this.loading = true |
| | | let params = this.queryInfo |
| | | this.$api.Engineer.searchSegment(params).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.total = res.data.total |
| | | this.dataList = res.data.list |
| | | } |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | //获得所有人员 |
| | | getAllPersons() { |
| | | this.$api.Engineer.getPersonsList({}).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.optionsUser = res.data |
| | | } else { |
| | | this.$message.warning('人员名称获取失败') |
| | | } |
| | | }) |
| | | }, |
| | | //获得所有项目名称 |
| | | getAllProjects() { |
| | | let obj = { |
| | | pageNum: 1, |
| | | pageSize: 100000000 |
| | | } |
| | | this.$api.Engineer.searchProjects(obj).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.optionsProject = res.data.list |
| | | } else { |
| | | this.$message.warning('项目名称获取失败') |
| | | } |
| | | }) |
| | | }, |
| | | //字典里获取所有标段块号 |
| | | getAllBlocks() { |
| | | let params = { |
| | | pageNum: 1, |
| | | pageSize: 100000000 |
| | | } |
| | | this.$api.Dictionary.searchDictionary(params).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | const segmentList = [] |
| | | res.data.list.forEach(item => { |
| | | if (item.dictType === '5') { |
| | | segmentList.push({ |
| | | dictName: item.dictName, |
| | | needType: item.dictId, |
| | | needNum: 0, |
| | | segmentId: '' |
| | | }) |
| | | } |
| | | }) |
| | | this.ruleForm.segmentList = segmentList |
| | | } else { |
| | | this.$message.warning('标段获取失败') |
| | | } |
| | | }) |
| | | }, |
| | | getDetailLists() { |
| | | let detailData = this.detail |
| | | this.$api.DuctpiecePLM.searchDuctpiecePLMList({ |
| | | segmentId: detailData.rowId, |
| | | pageNum: detailData.pageNum, |
| | | pageSize: detailData.pageSize |
| | | }).then(res => { |
| | | if (res.success) { |
| | | detailData.total = res.data.total |
| | | detailData.tableData = res.data.list |
| | | } |
| | | }) |
| | | }, |
| | | getDetailInfos(id) { |
| | | this.$api.Engineer.detailsProjects({proId: id}).then(res => { |
| | | if (res.success) { |
| | | this.detail.infos = res.data |
| | | } |
| | | }) |
| | | }, |
| | | setFormProps(options = {}) { |
| | | let _form = { |
| | | proId: '', // 项目名称id |
| | | mileage: '', // 起讫里程 |
| | | unitProjectName: '', // 单位工程名称 |
| | | segmentAdmin: '', // 需求负责人 |
| | | shieldEnp: '', // 盾构单位 |
| | | startTime: null, // 开始时间 |
| | | endTime: null, // 结束时间 |
| | | duration: '', // 工期 |
| | | station: '', // 站点 |
| | | segmentList: [], // 标段需求 |
| | | } |
| | | this.ruleForm = Object.keys(options).length ? options : _form |
| | | }, |
| | | setTableColumn() { |
| | | this.tableColumns = [ |
| | | {index: true}, |
| | | {slot: "finished"}, |
| | | {name: "项目名称", key: "proName", width: 160}, |
| | | {name: "起讫里程", key: "mileage"}, |
| | | {name: "单位工程名称", key: "unitProjectName"}, |
| | | {name: "盾构单位", key: "shieldEnp"}, |
| | | {name: "开始时间", key: "startTime", width: 100}, |
| | | {name: "结束时间", key: "endTime", width: 100}, |
| | | {name: "工期", key: "duration"}, |
| | | {name: "站点", key: "station"}, |
| | | {name: "负责人", key: "realName"}, |
| | | {slot: 'action'}, |
| | | ] |
| | | this.detail.tableColumns = [ |
| | | {index: true}, |
| | | {slot: "name"}, |
| | | {name: "环号", key: "ringNum"}, |
| | | {name: "管片编号", key: "pipeNum", width: 140}, |
| | | {name: "转向", key: "turnName", width: 106}, |
| | | {name: "配筋", key: "reinforcementName"}, |
| | | {name: "注浆孔", key: "groutingHolesName"}, |
| | | {name: "块号", key: "blockNumName"}, |
| | | {name: "模具", key: "mouldNum"}, |
| | | {name: "入模时间", key: "intoModTime", width: 136}, |
| | | {name: "浇筑时间", key: "pouringTime"}, |
| | | {name: "质检时间", key: "checkTime", width: 136}, |
| | | {name: "生产班组", key: "groupName"}, |
| | | {name: "项目", key: "proName", width: 240}, |
| | | {name: "质量标注", key: "checkResultStr"}, |
| | | ] |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields() |
| | | }, |
| | | showForm() { |
| | | !this.isRender && (this.isRender = true) |
| | | this.asyncVisible = true |
| | | }, |
| | | closeForm() { |
| | | this.asyncVisible = false |
| | | this.resetForm('ruleForm') |
| | | this.setFormProps() |
| | | }, |
| | | // 查询按钮列表信息 |
| | | queryReset() { |
| | | this.queryInfo.pageNum = 1 |
| | | this.queryInfo.pageSize = 10 |
| | | this.getLists() |
| | | }, |
| | | addRow() { |
| | | this.submitMode = 'add' |
| | | this.showForm() |
| | | }, |
| | | async updateRow(row) { |
| | | this.submitMode = 'update' |
| | | this.showForm() |
| | | const segmentList = await this.getProjectBlocks(row.segmentId) |
| | | Object.keys(this.ruleForm).forEach(item => { |
| | | if (row.hasOwnProperty.call(row, item)) { |
| | | this.ruleForm[item] = row[item] |
| | | } |
| | | }) |
| | | this.ruleForm.segmentId = row.segmentId |
| | | this.ruleForm.segmentList = segmentList |
| | | }, |
| | | deleteRow(row) { |
| | | this.$confirm("该操作将删除该信息,是否继续删除?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | this.$api.Engineer.deleteSegment({segmentId: row.segmentId}).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.queryReset(); |
| | | this.$message.success("删除成功!") |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message.warning("您已取消") |
| | | }) |
| | | }, |
| | | //获取项目标段 |
| | | getProjectBlocks(id) { |
| | | return new Promise(resolve => { |
| | | this.$api.Engineer.detailsSegment({segmentId: id}).then(res => { |
| | | let outData = [] |
| | | if (res.statusMsg === 'ok') { |
| | | outData.push(...res.data.segmentNeeds) |
| | | } |
| | | resolve(outData) |
| | | }) |
| | | }) |
| | | }, |
| | | //通过不同的项目展示不同的标段需求 |
| | | changeNeed(val) { |
| | | this.$api.Reinforce.searchProjectBears({proId: val}).then(res => { |
| | | if (res.statusMsg === 'ok') { |
| | | const segmentList = [] |
| | | res.data.blokDtos.forEach(item => { |
| | | segmentList.push({ |
| | | dictName: item.blockName, |
| | | needType: item.blockNum, |
| | | needNum: 0, |
| | | segmentId: '' |
| | | }) |
| | | }) |
| | | this.ruleForm.segmentList = segmentList |
| | | } else { |
| | | this.$message.warning('标段获取失败') |
| | | } |
| | | }) |
| | | }, |
| | | onSubmit: throttle(function () { |
| | | this.$refs.ruleForm.validate(valid => { |
| | | if (!valid) return |
| | | const params = this.ruleForm |
| | | if (this.isUpdate) { |
| | | // 更新 |
| | | this.$api.Engineer.updateSegment(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.closeForm() |
| | | this.getLists() |
| | | this.$message.success('更新成功!') |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | } else { |
| | | // 添加 |
| | | this.$api.Engineer.insertSegment(params).then((res) => { |
| | | if (res.statusMsg === 'ok') { |
| | | this.closeForm() |
| | | this.getLists() |
| | | this.$message.success('添加成功!') |
| | | } else { |
| | | this.$message.warning(res.statusMsg) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 1000), |
| | | // 判断按钮权限信息 |
| | | showButton(str) { |
| | | const pinia = buttonPinia(); |
| | | return pinia.$state.buttonInfo.includes(str); |
| | | }, |
| | | showDetail(row) { |
| | | let detailData = this.detail |
| | | !detailData.isRenderDetail && (detailData.isRenderDetail = true) |
| | | detailData.asyncVisible = true |
| | | detailData.rowId = row.segmentId |
| | | detailData.total = 0 |
| | | detailData.tableData = [] |
| | | detailData.infos = [] |
| | | this.getDetailInfos(row.proId) |
| | | this.getDetailLists() |
| | | }, |
| | | pageChange() { |
| | | this.getLists(); |
| | | }, |
| | | detailPageChange() { |
| | | this.getDetailLists(); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import '../../style/layout-main.scss'; |
| | | .section_needs{ |
| | | position: relative; |
| | | color:#18F5F7; |
| | | padding: 20px 20px 10px 15px; |
| | | border-bottom: 1px solid #1949A3; |
| | | &::before{ |
| | | position: absolute; |
| | | content: ""; |
| | | width: 2px; |
| | | height: 20px; |
| | | background-color: #18F5F7; |
| | | top: 20px; |
| | | left: 5px; |
| | | } |
| | | } |
| | | .section_needs_content{ |
| | | height: 180px; |
| | | overflow: auto; |
| | | display: flex; |
| | | // flex-direction: column; |
| | | // justify-content: space-between; |
| | | flex-wrap: wrap; |
| | | // &:after{ |
| | | // content: ""; |
| | | // flex: 0 0 412px; |
| | | // } |
| | | .needs_items{ |
| | | max-width: 190px; |
| | | min-width: 142px; |
| | | padding: 15px; |
| | | display: flex; |
| | | .needs_text{ |
| | | // width: 50px; |
| | | flex: none; |
| | | align-self: center; |
| | | text-align: center; |
| | | padding-right: 15px; |
| | | color: #E1E3E9; |
| | | } |
| | | .needs_num{ |
| | | align-self: center; |
| | | } |
| | | } |
| | | |
| | | /deep/ { |
| | | &::-webkit-scrollbar { |
| | | width: 8px; |
| | | height: 8px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-corner { |
| | | background-color: transparent; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-thumb { |
| | | border-radius: 10px; |
| | | box-shadow: inset 0 0 5px transparent; |
| | | background: #39B5FE; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-track { |
| | | box-shadow: inset 0 0 5px transparent; |
| | | border-radius: 10px; |
| | | background: rgba(76, 188, 254, .3); |
| | | } |
| | | } |
| | | |
| | | .el-card { |
| | | margin-bottom: 20px; |
| | | border: none; |
| | | color: #fff; |
| | | background: rgba(9, 64, 101, 1); |
| | | |
| | | .titles { |
| | | float: left; |
| | | width: 25%; |
| | | min-height: 36px; |
| | | padding-right: 6px; |
| | | margin-bottom: 6px; |
| | | line-height: 18px; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | span { |
| | | color: #39B5FE; |
| | | } |
| | | } |
| | | |
| | | .section_needs { |
| | | position: relative; |
| | | color: #18F5F7; |
| | | padding: 20px 20px 10px 15px; |
| | | border-bottom: 1px solid #1949A3; |
| | | |
| | | &::before { |
| | | position: absolute; |
| | | content: ""; |
| | | width: 2px; |
| | | height: 20px; |
| | | background-color: #18F5F7; |
| | | top: 20px; |
| | | left: 5px; |
| | | } |
| | | } |
| | | |
| | | .section_needs_content { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | |
| | | .needs_items { |
| | | max-width: 190px; |
| | | min-width: 142px; |
| | | padding: 15px; |
| | | display: flex; |
| | | |
| | | .needs_text { |
| | | // width: 50px; |
| | | flex: none; |
| | | align-self: center; |
| | | text-align: center; |
| | | padding-right: 15px; |
| | | color: #E1E3E9; |
| | | } |
| | | |
| | | .needs_num { |
| | | align-self: center; |
| | | } |
| | | } |
| | | } |
| | | </style> |