新增生产制单
This commit is contained in:
parent
8d1ce49ac8
commit
f1332e2765
|
|
@ -14,6 +14,7 @@ public interface ErrorCodeConstants extends cn.hangtag.module.system.enums.Erro
|
|||
ErrorCode CUSTOMER_BRAND_NOT_EXISTS = new ErrorCode(3800, "客户和品牌关联不存在");
|
||||
ErrorCode PRODUCT_CARE_ITEM_NOT_EXISTS = new ErrorCode(3900, "产品保养项 不存在");
|
||||
ErrorCode PRODUCE_ORDER_NOT_EXISTS = new ErrorCode(4000, "生产制单不存在");
|
||||
|
||||
ErrorCode PRODUCE_ORDER_EXISTS = new ErrorCode(4002, "生产制单已经存在");
|
||||
ErrorCode PRODUCE_ORDER_IMPORT_LIST_IS_EMPTY = new ErrorCode(4003, "导入生产制单数据不能为空");
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
package cn.hangtag.module.oms.controller.admin.produceorder;
|
||||
|
||||
import cn.hangtag.framework.common.enums.CommonStatusEnum;
|
||||
import cn.hangtag.module.system.controller.admin.user.vo.user.UserImportExcelVO;
|
||||
import cn.hangtag.module.system.controller.admin.user.vo.user.UserImportRespVO;
|
||||
import cn.hangtag.module.system.enums.common.SexEnum;
|
||||
import io.swagger.v3.oas.annotations.Parameters;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
|
@ -28,6 +33,7 @@ import static cn.hangtag.framework.apilog.core.enums.OperateTypeEnum.*;
|
|||
import cn.hangtag.module.oms.controller.admin.produceorder.vo.*;
|
||||
import cn.hangtag.module.oms.dal.dataobject.produceorder.ProduceOrderDO;
|
||||
import cn.hangtag.module.oms.service.produceorder.ProduceOrderService;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@Tag(name = "管理后台 - 生产制单")
|
||||
@RestController
|
||||
|
|
@ -92,4 +98,26 @@ public class ProduceOrderController {
|
|||
BeanUtils.toBean(list, ProduceOrderRespVO.class));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/get-import-template")
|
||||
@Operation(summary = "获得导入生产制单模板")
|
||||
public void importTemplate(HttpServletResponse response) throws IOException {
|
||||
// 输出
|
||||
ExcelUtils.write(response, "生产制单导入模板.xls", "生产制单列表", ProduceOrderImportExcelVO.class, null);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/import")
|
||||
@Operation(summary = "导入生产制单")
|
||||
@Parameters({
|
||||
@Parameter(name = "file", description = "Excel 文件", required = true),
|
||||
@Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true")
|
||||
})
|
||||
//@PreAuthorize("@ss.hasPermission('system:user:import')")
|
||||
public CommonResult<ProduceOrderImportRespVO> importExcel(@RequestParam("file") MultipartFile file,
|
||||
@RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception {
|
||||
List<ProduceOrderImportExcelVO> list = ExcelUtils.read(file, ProduceOrderImportExcelVO.class);
|
||||
return success(produceOrderService.importList(list, updateSupport));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
package cn.hangtag.module.oms.controller.admin.produceorder.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 用户 Excel 导入 VO
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Accessors(chain = false) // 设置 chain = false,避免数据导入有问题
|
||||
public class ProduceOrderImportExcelVO {
|
||||
|
||||
@ExcelProperty("单据编号")
|
||||
private String billno;
|
||||
|
||||
@ExcelProperty("订单号")
|
||||
private String orderNo;
|
||||
|
||||
@ExcelProperty("客户编号")
|
||||
private String customerCode;
|
||||
|
||||
@ExcelProperty("客户名称")
|
||||
private String customerName;
|
||||
|
||||
@ExcelProperty("产品编码")
|
||||
private String productCode;
|
||||
|
||||
@ExcelProperty("产品名称")
|
||||
private String productName;
|
||||
|
||||
@ExcelProperty("合约号")
|
||||
private String saleContractNo;
|
||||
|
||||
@ExcelProperty("合约日期")
|
||||
private LocalDateTime contractDate;
|
||||
|
||||
@ExcelProperty("合约数量")
|
||||
private Long contractQty;
|
||||
|
||||
@ExcelProperty("生产数量")
|
||||
private Long produceQty;
|
||||
|
||||
@ExcelProperty("交货地点")
|
||||
private String deliveryPlace;
|
||||
|
||||
@ExcelProperty("职员")
|
||||
private String clerk;
|
||||
|
||||
@ExcelProperty("报告日期")
|
||||
private LocalDateTime reportDate;
|
||||
|
||||
@ExcelProperty("生产日期")
|
||||
private LocalDateTime produceDate;
|
||||
|
||||
@ExcelProperty("天数")
|
||||
private Long days;
|
||||
|
||||
@ExcelProperty("生产线")
|
||||
private String produceLine;
|
||||
|
||||
@ExcelProperty("交货方式")
|
||||
private String deliveryMethod;
|
||||
|
||||
@ExcelProperty("验货日期")
|
||||
private LocalDateTime inspectionDate;
|
||||
|
||||
@Schema(description = "交货日期")
|
||||
@ExcelProperty("交货日期")
|
||||
private LocalDateTime deliverydate;
|
||||
|
||||
@Schema(description = "交货数量")
|
||||
@ExcelProperty("交货数量")
|
||||
private Integer deliveryQty;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package cn.hangtag.module.oms.controller.admin.produceorder.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Schema(description = "管理后台 - 生产制单导入 Response VO")
|
||||
@Data
|
||||
@Builder
|
||||
public class ProduceOrderImportRespVO {
|
||||
|
||||
@Schema(description = "创建成功的单据编号数组", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<String> createBillNos;
|
||||
|
||||
@Schema(description = "更新成功的单据编号数组", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<String> updateBillNos;
|
||||
|
||||
@Schema(description = "导入失败的单据编号集合,key 为用户名,value 为失败原因", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Map<String, String> failureBillNos;
|
||||
|
||||
}
|
||||
|
|
@ -25,7 +25,7 @@ public class ProduceOrderPageReqVO extends PageParam {
|
|||
private String customerCode;
|
||||
|
||||
@Schema(description = "合约号")
|
||||
private Integer saleContractNo;
|
||||
private String saleContractNo;
|
||||
|
||||
@Schema(description = "报告日期")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public class ProduceOrderRespVO {
|
|||
|
||||
@Schema(description = "合约号")
|
||||
@ExcelProperty("合约号")
|
||||
private Integer saleContractNo;
|
||||
private String saleContractNo;
|
||||
|
||||
@Schema(description = "合约日期")
|
||||
@ExcelProperty("合约日期")
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ public class ProduceOrderSaveReqVO {
|
|||
private String productName;
|
||||
|
||||
@Schema(description = "合约号")
|
||||
private Integer saleContractNo;
|
||||
private String saleContractNo;
|
||||
|
||||
@Schema(description = "合约日期")
|
||||
private Date contractDate;
|
||||
private LocalDateTime contractDate;
|
||||
|
||||
@Schema(description = "合约数量")
|
||||
private Long contractQty;
|
||||
|
|
@ -51,10 +51,10 @@ public class ProduceOrderSaveReqVO {
|
|||
private String clerk;
|
||||
|
||||
@Schema(description = "报告日期")
|
||||
private Date reportDate;
|
||||
private LocalDateTime reportDate;
|
||||
|
||||
@Schema(description = "生产日期")
|
||||
private Date produceDate;
|
||||
private LocalDateTime produceDate;
|
||||
|
||||
@Schema(description = "天数")
|
||||
private Long days;
|
||||
|
|
@ -66,10 +66,10 @@ public class ProduceOrderSaveReqVO {
|
|||
private String deliveryMethod;
|
||||
|
||||
@Schema(description = "验货日期")
|
||||
private Date inspectionDate;
|
||||
private LocalDateTime inspectionDate;
|
||||
|
||||
@Schema(description = "交货日期")
|
||||
private Date deliverydate;
|
||||
private LocalDateTime deliverydate;
|
||||
|
||||
@Schema(description = "交货数量")
|
||||
private Integer deliveryQty;
|
||||
|
|
|
|||
|
|
@ -63,11 +63,11 @@ public class ProduceOrderDO extends BaseDO {
|
|||
/**
|
||||
* 合约号
|
||||
*/
|
||||
private Integer saleContractNo;
|
||||
private String saleContractNo;
|
||||
/**
|
||||
* 合约日期
|
||||
*/
|
||||
private LocalDateTime contractDate;
|
||||
private Date contractDate;
|
||||
/**
|
||||
* 合约数量
|
||||
*/
|
||||
|
|
@ -87,11 +87,11 @@ public class ProduceOrderDO extends BaseDO {
|
|||
/**
|
||||
* 报告日期
|
||||
*/
|
||||
private LocalDateTime reportDate;
|
||||
private Date reportDate;
|
||||
/**
|
||||
* 生产日期
|
||||
*/
|
||||
private LocalDateTime produceDate;
|
||||
private Date produceDate;
|
||||
/**
|
||||
* 天数
|
||||
*/
|
||||
|
|
@ -107,11 +107,11 @@ public class ProduceOrderDO extends BaseDO {
|
|||
/**
|
||||
* 验货日期
|
||||
*/
|
||||
private LocalDateTime inspectionDate;
|
||||
private Date inspectionDate;
|
||||
/**
|
||||
* 交货日期
|
||||
*/
|
||||
private LocalDateTime deliverydate;
|
||||
private Date deliverydate;
|
||||
/**
|
||||
* 交货数量
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -32,4 +32,7 @@ public interface ProduceOrderMapper extends BaseMapperX<ProduceOrderDO> {
|
|||
.orderByDesc(ProduceOrderDO::getId));
|
||||
}
|
||||
|
||||
default ProduceOrderDO selectByBillNo(String billNo){
|
||||
return selectOne(ProduceOrderDO::getBillno, billNo);
|
||||
}
|
||||
}
|
||||
|
|
@ -52,4 +52,5 @@ public interface ProduceOrderService {
|
|||
*/
|
||||
PageResult<ProduceOrderDO> getProduceOrderPage(ProduceOrderPageReqVO pageReqVO);
|
||||
|
||||
ProduceOrderImportRespVO importList(List<ProduceOrderImportExcelVO> list, Boolean updateSupport);
|
||||
}
|
||||
|
|
@ -3,13 +3,21 @@ package cn.hangtag.module.oms.service.produceorder;
|
|||
import cn.hangtag.framework.common.exception.ServiceException;
|
||||
import cn.hangtag.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import cn.hangtag.framework.common.util.FuncUtil;
|
||||
import cn.hangtag.framework.common.util.validation.ValidationUtils;
|
||||
import cn.hangtag.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.hangtag.module.oms.dal.dataobject.saleorder.SaleOrderDO;
|
||||
import cn.hangtag.module.oms.serialnumber.CodingRulesUtils;
|
||||
import cn.hangtag.module.system.controller.admin.user.vo.user.UserImportRespVO;
|
||||
import cn.hangtag.module.system.controller.admin.user.vo.user.UserSaveReqVO;
|
||||
import cn.hangtag.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.ConstraintViolationException;
|
||||
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -86,7 +94,44 @@ public class ProduceOrderServiceImpl implements ProduceOrderService {
|
|||
return produceOrderMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProduceOrderImportRespVO importList(List<ProduceOrderImportExcelVO> importDatas, Boolean isUpdateSupport) {
|
||||
// 1.1 参数校验
|
||||
if (CollUtil.isEmpty(importDatas)) {
|
||||
throw exception(PRODUCE_ORDER_IMPORT_LIST_IS_EMPTY);
|
||||
}
|
||||
|
||||
// 2. 遍历,逐个创建 or 更新
|
||||
ProduceOrderImportRespVO respVO = ProduceOrderImportRespVO.builder().createBillNos(new ArrayList<>())
|
||||
.updateBillNos(new ArrayList<>()).failureBillNos(new LinkedHashMap<>()).build();
|
||||
importDatas.forEach(importData -> {
|
||||
// 2.1.1 校验字段是否符合要求
|
||||
try {
|
||||
ValidationUtils.validate(BeanUtils.toBean(importData, ProduceOrderSaveReqVO.class));
|
||||
} catch (ConstraintViolationException ex){
|
||||
respVO.getFailureBillNos().put(importData.getBillno(), ex.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
// 2.2.1 判断如果不存在,在进行插入
|
||||
ProduceOrderDO existData = produceOrderMapper.selectByBillNo(importData.getBillno());
|
||||
if (existData == null) {
|
||||
produceOrderMapper.insert(BeanUtils.toBean(importData, ProduceOrderDO.class));
|
||||
respVO.getCreateBillNos().add(importData.getBillno());
|
||||
return;
|
||||
}
|
||||
// 2.2.2 如果存在,判断是否允许更新
|
||||
if (!isUpdateSupport) {
|
||||
respVO.getFailureBillNos().put(importData.getBillno(), PRODUCE_ORDER_EXISTS.getMsg());
|
||||
return;
|
||||
}
|
||||
ProduceOrderDO updateData = BeanUtils.toBean(importData, ProduceOrderDO.class);
|
||||
updateData.setId(existData.getId());
|
||||
produceOrderMapper.updateById(updateData);
|
||||
respVO.getUpdateBillNos().add(importData.getBillno());
|
||||
});
|
||||
return respVO;
|
||||
}
|
||||
|
||||
|
||||
private String getNewCode() {
|
||||
|
|
|
|||
|
|
@ -1,23 +1,16 @@
|
|||
package cn.hangtag.module.oms.service.saleorder;
|
||||
|
||||
import cn.hangtag.framework.common.exception.ServiceException;
|
||||
import cn.hangtag.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||
import cn.hangtag.framework.common.pojo.PageResult;
|
||||
import cn.hangtag.framework.common.util.FuncUtil;
|
||||
import cn.hangtag.framework.common.util.object.BeanUtils;
|
||||
import cn.hangtag.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.hangtag.module.oms.controller.admin.produceorder.vo.ProduceOrderSaveReqVO;
|
||||
import cn.hangtag.module.oms.controller.admin.saleorder.vo.SaleOrderPageReqVO;
|
||||
import cn.hangtag.module.oms.controller.admin.saleorder.vo.SaleOrderSaveReqVO;
|
||||
import cn.hangtag.module.oms.dal.dataobject.brand.BrandDO;
|
||||
import cn.hangtag.module.oms.dal.dataobject.saleorder.SaleOrderDO;
|
||||
import cn.hangtag.module.oms.dal.dataobject.saleorderentry.SaleOrderEntryDO;
|
||||
import cn.hangtag.module.oms.dal.mysql.saleorder.SaleOrderMapper;
|
||||
import cn.hangtag.module.oms.dal.mysql.saleorderentry.SaleOrderEntryMapper;
|
||||
import cn.hangtag.module.oms.enums.saleorder.SaleOrderStatusEnum;
|
||||
import cn.hangtag.module.oms.serialnumber.CodingRulesUtils;
|
||||
import cn.hangtag.module.oms.service.produceorder.ProduceOrderService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.google.common.collect.Maps;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -25,7 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
|
@ -143,7 +136,7 @@ public class SaleOrderServiceImpl implements SaleOrderService {
|
|||
saveReqVO.setDeliveryQty(1111111);
|
||||
saveReqVO.setDays(5L);
|
||||
saveReqVO.setClerk("职员");
|
||||
saveReqVO.setContractDate(new Date());
|
||||
saveReqVO.setContractDate(LocalDateTime.now() );
|
||||
Long produceOrderId = produceOrderService.createProduceOrder(saveReqVO);
|
||||
//更新销售订单已完成
|
||||
/*if(produceOrderId!=null){
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<link rel="stylesheet" type="text/css" media="print" href="/print-lock.css"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@
|
|||
"vue": "3.4.21",
|
||||
"vue-dompurify-html": "^4.1.4",
|
||||
"vue-i18n": "9.10.2",
|
||||
"vue-plugin-hiprint": "^0.0.56",
|
||||
"vue-router": "^4.3.0",
|
||||
"vue-types": "^5.1.1",
|
||||
"vuedraggable": "^4.1.0",
|
||||
|
|
@ -108,6 +109,7 @@
|
|||
"eslint-define-config": "^2.1.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-vue": "^9.22.0",
|
||||
"jquery": "^3.7.1",
|
||||
"lint-staged": "^15.2.2",
|
||||
"postcss": "^8.4.35",
|
||||
"postcss-html": "^1.6.0",
|
||||
|
|
|
|||
|
|
@ -158,6 +158,9 @@ importers:
|
|||
vue-i18n:
|
||||
specifier: 9.10.2
|
||||
version: 9.10.2(vue@3.4.21(typescript@5.3.3))
|
||||
vue-plugin-hiprint:
|
||||
specifier: ^0.0.56
|
||||
version: 0.0.56
|
||||
vue-router:
|
||||
specifier: ^4.3.0
|
||||
version: 4.4.3(vue@3.4.21(typescript@5.3.3))
|
||||
|
|
@ -252,6 +255,9 @@ importers:
|
|||
eslint-plugin-vue:
|
||||
specifier: ^9.22.0
|
||||
version: 9.27.0(eslint@8.57.0)
|
||||
jquery:
|
||||
specifier: ^3.7.1
|
||||
version: 3.7.1
|
||||
lint-staged:
|
||||
specifier: ^15.2.2
|
||||
version: 15.2.9
|
||||
|
|
@ -1035,6 +1041,11 @@ packages:
|
|||
'@camunda/element-templates-json-schema@0.4.0':
|
||||
resolution: {integrity: sha512-M5xW61ba7z2maBxfoT4c1bjuLD8OIL7863et/hULiNG6+R/B9CZ4Qze1juuIfXv4zpF2fYSuUsTPkTtiZrcspQ==}
|
||||
|
||||
'@claviska/jquery-minicolors@2.3.6':
|
||||
resolution: {integrity: sha512-8Ro6D4GCrmOl41+6w4NFhEOpx8vjxwVRI69bulXsFDt49uVRKhLU5TnzEV7AmOJrylkVq+ugnYNMiGHBieeKUQ==}
|
||||
peerDependencies:
|
||||
jquery: '>= 1.7.x'
|
||||
|
||||
'@commitlint/cli@19.4.0':
|
||||
resolution: {integrity: sha512-sJX4J9UioVwZHq7JWM9tjT5bgWYaIN3rC4FP7YwfEwBYiIO+wMyRttRvQLNkow0vCdM0D67r9NEWU0Ui03I4Eg==}
|
||||
engines: {node: '>=v18'}
|
||||
|
|
@ -1599,6 +1610,9 @@ packages:
|
|||
'@sinclair/typebox@0.27.8':
|
||||
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
|
||||
|
||||
'@socket.io/component-emitter@3.1.2':
|
||||
resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==}
|
||||
|
||||
'@swc/core-darwin-arm64@1.7.18':
|
||||
resolution: {integrity: sha512-MwLc5U+VGPMZm8MjlFBjEB2wyT1EK0NNJ3tn+ps9fmxdFP+PL8EpMiY1O1F2t1ydy2OzBtZz81sycjM9RieFBg==}
|
||||
engines: {node: '>=10'}
|
||||
|
|
@ -1724,6 +1738,9 @@ packages:
|
|||
'@types/qs@6.9.15':
|
||||
resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==}
|
||||
|
||||
'@types/raf@3.4.3':
|
||||
resolution: {integrity: sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==}
|
||||
|
||||
'@types/semver@7.5.8':
|
||||
resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
|
||||
|
||||
|
|
@ -2348,6 +2365,10 @@ packages:
|
|||
balanced-match@2.0.0:
|
||||
resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==}
|
||||
|
||||
base64-arraybuffer@1.0.2:
|
||||
resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==}
|
||||
engines: {node: '>= 0.6.0'}
|
||||
|
||||
base@0.11.2:
|
||||
resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
|
@ -2411,9 +2432,18 @@ packages:
|
|||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
||||
hasBin: true
|
||||
|
||||
btoa@1.2.1:
|
||||
resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==}
|
||||
engines: {node: '>= 0.4.0'}
|
||||
hasBin: true
|
||||
|
||||
buffer-from@1.1.2:
|
||||
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
|
||||
|
||||
bwip-js@4.5.1:
|
||||
resolution: {integrity: sha512-83yQCKiIftz5YonnsTh6wIkFoHHWl+B/XaGWD1UdRw7aB6XP9JtyYP9n8sRy3m5rzL+Ch/RUPnu28UW0RrPZUA==}
|
||||
hasBin: true
|
||||
|
||||
cac@6.7.14:
|
||||
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -2444,6 +2474,10 @@ packages:
|
|||
caniuse-lite@1.0.30001653:
|
||||
resolution: {integrity: sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==}
|
||||
|
||||
canvg@3.0.10:
|
||||
resolution: {integrity: sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
|
||||
chalk@1.1.3:
|
||||
resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
|
@ -2646,6 +2680,9 @@ packages:
|
|||
resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==}
|
||||
engines: {node: '>=12 || >=16'}
|
||||
|
||||
css-line-break@2.1.0:
|
||||
resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==}
|
||||
|
||||
css-select@4.3.0:
|
||||
resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
|
||||
|
||||
|
|
@ -2826,6 +2863,9 @@ packages:
|
|||
domify@1.4.2:
|
||||
resolution: {integrity: sha512-m4yreHcUWHBncGVV7U+yQzc12vIlq0jMrtHZ5mW6dQMiL/7skSYNVX9wqKwOtyO9SGCgevrAFEgOCAHmamHTUA==}
|
||||
|
||||
dompurify@2.5.6:
|
||||
resolution: {integrity: sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==}
|
||||
|
||||
dompurify@3.1.6:
|
||||
resolution: {integrity: sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==}
|
||||
|
||||
|
|
@ -2885,6 +2925,13 @@ packages:
|
|||
resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
|
||||
engines: {node: '>= 4'}
|
||||
|
||||
engine.io-client@6.5.4:
|
||||
resolution: {integrity: sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==}
|
||||
|
||||
engine.io-parser@5.2.3:
|
||||
resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
|
||||
entities@1.1.2:
|
||||
resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}
|
||||
|
||||
|
|
@ -3114,6 +3161,9 @@ packages:
|
|||
fastq@1.17.1:
|
||||
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
|
||||
|
||||
fflate@0.4.8:
|
||||
resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==}
|
||||
|
||||
file-entry-cache@6.0.1:
|
||||
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
|
||||
engines: {node: ^10.12.0 || >=12.0.0}
|
||||
|
|
@ -3384,6 +3434,10 @@ packages:
|
|||
html-void-elements@2.0.1:
|
||||
resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
|
||||
|
||||
html2canvas@1.4.1:
|
||||
resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
|
||||
htmlparser2@3.10.1:
|
||||
resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
|
||||
|
||||
|
|
@ -3647,6 +3701,9 @@ packages:
|
|||
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
|
||||
hasBin: true
|
||||
|
||||
jquery@3.7.1:
|
||||
resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==}
|
||||
|
||||
js-base64@2.6.4:
|
||||
resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
|
||||
|
||||
|
|
@ -3660,6 +3717,9 @@ packages:
|
|||
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
|
||||
hasBin: true
|
||||
|
||||
jsbarcode@3.11.6:
|
||||
resolution: {integrity: sha512-G5TKGyKY1zJo0ZQKFM1IIMfy0nF2rs92BLlCz+cU4/TazIc4ZH+X1GYeDRt7TKjrYqmPfTjwTBkU/QnQlsYiuA==}
|
||||
|
||||
jsencrypt@3.3.2:
|
||||
resolution: {integrity: sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==}
|
||||
|
||||
|
|
@ -3710,6 +3770,9 @@ packages:
|
|||
resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
|
||||
engines: {'0': node >= 0.2.0}
|
||||
|
||||
jspdf@2.5.1:
|
||||
resolution: {integrity: sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA==}
|
||||
|
||||
keycode@2.2.1:
|
||||
resolution: {integrity: sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==}
|
||||
|
||||
|
|
@ -4073,6 +4136,9 @@ packages:
|
|||
nth-check@2.1.1:
|
||||
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
|
||||
|
||||
nzh@1.0.13:
|
||||
resolution: {integrity: sha512-K3npIPUq155Oqal3KHZZ8fjiAiBw3NOGcdisTbxr0KQ4N1xlqgsMwzJ1a/oagcsl7f1FWnFh56MSS15fqvCF+Q==}
|
||||
|
||||
object-assign@4.1.1:
|
||||
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
|
@ -4214,6 +4280,9 @@ packages:
|
|||
perfect-debounce@1.0.0:
|
||||
resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
|
||||
|
||||
performance-now@2.1.0:
|
||||
resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
|
||||
|
||||
picocolors@1.0.1:
|
||||
resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
|
||||
|
||||
|
|
@ -4399,6 +4468,9 @@ packages:
|
|||
queue-microtask@1.2.3:
|
||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||
|
||||
raf@3.4.1:
|
||||
resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==}
|
||||
|
||||
rd@2.0.1:
|
||||
resolution: {integrity: sha512-/XdKU4UazUZTXFmI0dpABt8jSXPWcEyaGdk340KdHnsEOdkTctlX23aAK7ChQDn39YGNlAJr1M5uvaKt4QnpNw==}
|
||||
|
||||
|
|
@ -4420,6 +4492,9 @@ packages:
|
|||
regenerate@1.4.2:
|
||||
resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
|
||||
|
||||
regenerator-runtime@0.13.11:
|
||||
resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
|
||||
|
||||
regenerator-runtime@0.14.1:
|
||||
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
|
||||
|
||||
|
|
@ -4495,6 +4570,10 @@ packages:
|
|||
rfdc@1.4.1:
|
||||
resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
|
||||
|
||||
rgbcolor@1.0.1:
|
||||
resolution: {integrity: sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==}
|
||||
engines: {node: '>= 0.8.15'}
|
||||
|
||||
rimraf@3.0.2:
|
||||
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
|
||||
deprecated: Rimraf versions prior to v4 are no longer supported
|
||||
|
|
@ -4648,6 +4727,14 @@ packages:
|
|||
resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
socket.io-client@4.7.5:
|
||||
resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
|
||||
socket.io-parser@4.2.4:
|
||||
resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
|
||||
sortablejs@1.14.0:
|
||||
resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==}
|
||||
|
||||
|
|
@ -4689,6 +4776,10 @@ packages:
|
|||
resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
|
||||
deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
|
||||
|
||||
stackblur-canvas@2.7.0:
|
||||
resolution: {integrity: sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==}
|
||||
engines: {node: '>=0.1.14'}
|
||||
|
||||
static-extend@0.1.2:
|
||||
resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
|
@ -4813,6 +4904,10 @@ packages:
|
|||
svg-baker@1.7.0:
|
||||
resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==}
|
||||
|
||||
svg-pathdata@6.0.3:
|
||||
resolution: {integrity: sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
svg-tags@1.0.0:
|
||||
resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
|
||||
|
||||
|
|
@ -4848,6 +4943,9 @@ packages:
|
|||
resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
text-segmentation@1.0.3:
|
||||
resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==}
|
||||
|
||||
text-table@0.2.0:
|
||||
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
|
||||
|
||||
|
|
@ -5068,6 +5166,9 @@ packages:
|
|||
resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
|
||||
engines: {node: '>= 4'}
|
||||
|
||||
utrie@1.0.2:
|
||||
resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==}
|
||||
|
||||
uuid@10.0.0:
|
||||
resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==}
|
||||
hasBin: true
|
||||
|
|
@ -5179,6 +5280,9 @@ packages:
|
|||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
|
||||
vue-plugin-hiprint@0.0.56:
|
||||
resolution: {integrity: sha512-YbJHH/MwdwIV1urL8V86ea+E8ixX1RYp/u/8/giPt4vfREUak9s2KYw4JFzM/Z6th9BCCpWTLPC+SOeoggxBbw==}
|
||||
|
||||
vue-router@4.4.3:
|
||||
resolution: {integrity: sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==}
|
||||
peerDependencies:
|
||||
|
|
@ -5283,6 +5387,18 @@ packages:
|
|||
resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
|
||||
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
||||
|
||||
ws@8.17.1:
|
||||
resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
peerDependencies:
|
||||
bufferutil: ^4.0.1
|
||||
utf-8-validate: '>=5.0.2'
|
||||
peerDependenciesMeta:
|
||||
bufferutil:
|
||||
optional: true
|
||||
utf-8-validate:
|
||||
optional: true
|
||||
|
||||
xml-js@1.6.11:
|
||||
resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
|
||||
hasBin: true
|
||||
|
|
@ -5291,6 +5407,10 @@ packages:
|
|||
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
xmlhttprequest-ssl@2.0.0:
|
||||
resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
|
||||
y18n@4.0.3:
|
||||
resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
|
||||
|
||||
|
|
@ -6226,6 +6346,10 @@ snapshots:
|
|||
|
||||
'@camunda/element-templates-json-schema@0.4.0': {}
|
||||
|
||||
'@claviska/jquery-minicolors@2.3.6(jquery@3.7.1)':
|
||||
dependencies:
|
||||
jquery: 3.7.1
|
||||
|
||||
'@commitlint/cli@19.4.0(@types/node@20.16.1)(typescript@5.3.3)':
|
||||
dependencies:
|
||||
'@commitlint/format': 19.3.0
|
||||
|
|
@ -6762,6 +6886,8 @@ snapshots:
|
|||
|
||||
'@sinclair/typebox@0.27.8': {}
|
||||
|
||||
'@socket.io/component-emitter@3.1.2': {}
|
||||
|
||||
'@swc/core-darwin-arm64@1.7.18':
|
||||
optional: true
|
||||
|
||||
|
|
@ -6855,6 +6981,8 @@ snapshots:
|
|||
|
||||
'@types/qs@6.9.15': {}
|
||||
|
||||
'@types/raf@3.4.3': {}
|
||||
|
||||
'@types/semver@7.5.8': {}
|
||||
|
||||
'@types/svgo@2.6.4':
|
||||
|
|
@ -7728,6 +7856,8 @@ snapshots:
|
|||
|
||||
balanced-match@2.0.0: {}
|
||||
|
||||
base64-arraybuffer@1.0.2: {}
|
||||
|
||||
base@0.11.2:
|
||||
dependencies:
|
||||
cache-base: 1.0.1
|
||||
|
|
@ -7830,8 +7960,12 @@ snapshots:
|
|||
node-releases: 2.0.18
|
||||
update-browserslist-db: 1.1.0(browserslist@4.23.3)
|
||||
|
||||
btoa@1.2.1: {}
|
||||
|
||||
buffer-from@1.1.2: {}
|
||||
|
||||
bwip-js@4.5.1: {}
|
||||
|
||||
cac@6.7.14: {}
|
||||
|
||||
cache-base@1.0.1:
|
||||
|
|
@ -7864,6 +7998,17 @@ snapshots:
|
|||
|
||||
caniuse-lite@1.0.30001653: {}
|
||||
|
||||
canvg@3.0.10:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.4
|
||||
'@types/raf': 3.4.3
|
||||
core-js: 3.38.1
|
||||
raf: 3.4.1
|
||||
regenerator-runtime: 0.13.11
|
||||
rgbcolor: 1.0.1
|
||||
stackblur-canvas: 2.7.0
|
||||
svg-pathdata: 6.0.3
|
||||
|
||||
chalk@1.1.3:
|
||||
dependencies:
|
||||
ansi-styles: 2.2.1
|
||||
|
|
@ -8071,6 +8216,10 @@ snapshots:
|
|||
|
||||
css-functions-list@3.2.2: {}
|
||||
|
||||
css-line-break@2.1.0:
|
||||
dependencies:
|
||||
utrie: 1.0.2
|
||||
|
||||
css-select@4.3.0:
|
||||
dependencies:
|
||||
boolbase: 1.0.0
|
||||
|
|
@ -8263,6 +8412,9 @@ snapshots:
|
|||
|
||||
domify@1.4.2: {}
|
||||
|
||||
dompurify@2.5.6:
|
||||
optional: true
|
||||
|
||||
dompurify@3.1.6: {}
|
||||
|
||||
domutils@1.7.0:
|
||||
|
|
@ -8336,6 +8488,20 @@ snapshots:
|
|||
|
||||
emojis-list@3.0.0: {}
|
||||
|
||||
engine.io-client@6.5.4:
|
||||
dependencies:
|
||||
'@socket.io/component-emitter': 3.1.2
|
||||
debug: 4.3.6
|
||||
engine.io-parser: 5.2.3
|
||||
ws: 8.17.1
|
||||
xmlhttprequest-ssl: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
engine.io-parser@5.2.3: {}
|
||||
|
||||
entities@1.1.2: {}
|
||||
|
||||
entities@2.2.0: {}
|
||||
|
|
@ -8685,6 +8851,8 @@ snapshots:
|
|||
dependencies:
|
||||
reusify: 1.0.4
|
||||
|
||||
fflate@0.4.8: {}
|
||||
|
||||
file-entry-cache@6.0.1:
|
||||
dependencies:
|
||||
flat-cache: 3.2.0
|
||||
|
|
@ -8956,6 +9124,11 @@ snapshots:
|
|||
|
||||
html-void-elements@2.0.1: {}
|
||||
|
||||
html2canvas@1.4.1:
|
||||
dependencies:
|
||||
css-line-break: 2.1.0
|
||||
text-segmentation: 1.0.3
|
||||
|
||||
htmlparser2@3.10.1:
|
||||
dependencies:
|
||||
domelementtype: 1.3.1
|
||||
|
|
@ -9186,6 +9359,8 @@ snapshots:
|
|||
|
||||
jiti@1.21.6: {}
|
||||
|
||||
jquery@3.7.1: {}
|
||||
|
||||
js-base64@2.6.4: {}
|
||||
|
||||
js-tokens@4.0.0: {}
|
||||
|
|
@ -9196,6 +9371,8 @@ snapshots:
|
|||
dependencies:
|
||||
argparse: 2.0.1
|
||||
|
||||
jsbarcode@3.11.6: {}
|
||||
|
||||
jsencrypt@3.3.2: {}
|
||||
|
||||
jsesc@0.5.0: {}
|
||||
|
|
@ -9235,6 +9412,18 @@ snapshots:
|
|||
|
||||
jsonparse@1.3.1: {}
|
||||
|
||||
jspdf@2.5.1:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.4
|
||||
atob: 2.1.2
|
||||
btoa: 1.2.1
|
||||
fflate: 0.4.8
|
||||
optionalDependencies:
|
||||
canvg: 3.0.10
|
||||
core-js: 3.38.1
|
||||
dompurify: 2.5.6
|
||||
html2canvas: 1.4.1
|
||||
|
||||
keycode@2.2.1: {}
|
||||
|
||||
keyv@4.5.4:
|
||||
|
|
@ -9601,6 +9790,8 @@ snapshots:
|
|||
dependencies:
|
||||
boolbase: 1.0.0
|
||||
|
||||
nzh@1.0.13: {}
|
||||
|
||||
object-assign@4.1.1: {}
|
||||
|
||||
object-copy@0.1.0:
|
||||
|
|
@ -9729,6 +9920,8 @@ snapshots:
|
|||
|
||||
perfect-debounce@1.0.0: {}
|
||||
|
||||
performance-now@2.1.0: {}
|
||||
|
||||
picocolors@1.0.1: {}
|
||||
|
||||
picomatch@2.3.1: {}
|
||||
|
|
@ -9897,6 +10090,10 @@ snapshots:
|
|||
|
||||
queue-microtask@1.2.3: {}
|
||||
|
||||
raf@3.4.1:
|
||||
dependencies:
|
||||
performance-now: 2.1.0
|
||||
|
||||
rd@2.0.1:
|
||||
dependencies:
|
||||
'@types/node': 10.17.60
|
||||
|
|
@ -9919,6 +10116,8 @@ snapshots:
|
|||
|
||||
regenerate@1.4.2: {}
|
||||
|
||||
regenerator-runtime@0.13.11: {}
|
||||
|
||||
regenerator-runtime@0.14.1: {}
|
||||
|
||||
regenerator-transform@0.15.2:
|
||||
|
|
@ -9985,6 +10184,8 @@ snapshots:
|
|||
|
||||
rfdc@1.4.1: {}
|
||||
|
||||
rgbcolor@1.0.1: {}
|
||||
|
||||
rimraf@3.0.2:
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
|
|
@ -10186,6 +10387,24 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
socket.io-client@4.7.5:
|
||||
dependencies:
|
||||
'@socket.io/component-emitter': 3.1.2
|
||||
debug: 4.3.6
|
||||
engine.io-client: 6.5.4
|
||||
socket.io-parser: 4.2.4
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
socket.io-parser@4.2.4:
|
||||
dependencies:
|
||||
'@socket.io/component-emitter': 3.1.2
|
||||
debug: 4.3.6
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
sortablejs@1.14.0: {}
|
||||
|
||||
source-map-js@1.2.0: {}
|
||||
|
|
@ -10219,6 +10438,8 @@ snapshots:
|
|||
|
||||
stable@0.1.8: {}
|
||||
|
||||
stackblur-canvas@2.7.0: {}
|
||||
|
||||
static-extend@0.1.2:
|
||||
dependencies:
|
||||
define-property: 0.2.5
|
||||
|
|
@ -10397,6 +10618,8 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
svg-pathdata@6.0.3: {}
|
||||
|
||||
svg-tags@1.0.0: {}
|
||||
|
||||
svg.js@2.7.1: {}
|
||||
|
|
@ -10440,6 +10663,10 @@ snapshots:
|
|||
|
||||
text-extensions@2.4.0: {}
|
||||
|
||||
text-segmentation@1.0.3:
|
||||
dependencies:
|
||||
utrie: 1.0.2
|
||||
|
||||
text-table@0.2.0: {}
|
||||
|
||||
through@2.3.8: {}
|
||||
|
|
@ -10709,6 +10936,10 @@ snapshots:
|
|||
|
||||
utility-types@3.11.0: {}
|
||||
|
||||
utrie@1.0.2:
|
||||
dependencies:
|
||||
base64-arraybuffer: 1.0.2
|
||||
|
||||
uuid@10.0.0: {}
|
||||
|
||||
vary@1.1.2: {}
|
||||
|
|
@ -10841,6 +11072,22 @@ snapshots:
|
|||
'@vue/devtools-api': 6.6.3
|
||||
vue: 3.4.21(typescript@5.3.3)
|
||||
|
||||
vue-plugin-hiprint@0.0.56:
|
||||
dependencies:
|
||||
'@claviska/jquery-minicolors': 2.3.6(jquery@3.7.1)
|
||||
bwip-js: 4.5.1
|
||||
canvg: 3.0.10
|
||||
html2canvas: 1.4.1
|
||||
jquery: 3.7.1
|
||||
jsbarcode: 3.11.6
|
||||
jspdf: 2.5.1
|
||||
nzh: 1.0.13
|
||||
socket.io-client: 4.7.5
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
- supports-color
|
||||
- utf-8-validate
|
||||
|
||||
vue-router@4.4.3(vue@3.4.21(typescript@5.3.3)):
|
||||
dependencies:
|
||||
'@vue/devtools-api': 6.6.3
|
||||
|
|
@ -10959,12 +11206,16 @@ snapshots:
|
|||
imurmurhash: 0.1.4
|
||||
signal-exit: 4.1.0
|
||||
|
||||
ws@8.17.1: {}
|
||||
|
||||
xml-js@1.6.11:
|
||||
dependencies:
|
||||
sax: 1.4.1
|
||||
|
||||
xml-name-validator@4.0.0: {}
|
||||
|
||||
xmlhttprequest-ssl@2.0.0: {}
|
||||
|
||||
y18n@4.0.3: {}
|
||||
|
||||
y18n@5.0.8: {}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,349 @@
|
|||
@media print {
|
||||
body {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
@page {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.hiprint-printPaper * {
|
||||
box-sizing: border-box;
|
||||
-moz-box-sizing: border-box; /* Firefox */
|
||||
-webkit-box-sizing: border-box; /* Safari */
|
||||
}
|
||||
|
||||
.hiprint-printPaper *:focus {
|
||||
outline: -webkit-focus-ring-color auto 0px;
|
||||
}
|
||||
|
||||
.hiprint-printPaper {
|
||||
position: relative;
|
||||
padding: 0 0 0 0;
|
||||
page-break-after: always;
|
||||
-webkit-user-select: none; /* Chrome/Safari/Opera */
|
||||
-moz-user-select: none; /* Firefox */
|
||||
user-select: none;
|
||||
overflow-x: hidden;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.hiprint-printPaper .hiprint-printPaper-content {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* 火狐浏览器打印 第一页过后 重叠问题 */
|
||||
@-moz-document url-prefix() {
|
||||
.hiprint-printPaper .hiprint-printPaper-content {
|
||||
position: relative;
|
||||
margin-top: 20px;
|
||||
top: -20px
|
||||
}
|
||||
}
|
||||
|
||||
.hiprint-printPaper.design {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
|
||||
.hiprint-printTemplate .hiprint-printPanel {
|
||||
page-break-after: always;
|
||||
}
|
||||
|
||||
.hiprint-printPaper, hiprint-printPanel {
|
||||
box-sizing: border-box;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.hiprint-printPanel .hiprint-printPaper:last-child {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
|
||||
.hiprint-printTemplate .hiprint-printPanel:last-child {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
|
||||
.hiprint-printPaper .hideheaderLinetarget {
|
||||
border-top: 0px dashed rgb(201, 190, 190) !important;
|
||||
}
|
||||
|
||||
.hiprint-printPaper .hidefooterLinetarget {
|
||||
border-top: 0px dashed rgb(201, 190, 190) !important;
|
||||
}
|
||||
|
||||
.hiprint-printPaper.design {
|
||||
border: 1px dashed rgba(170, 170, 170, 0.7);
|
||||
}
|
||||
|
||||
.design .hiprint-printElement-table-content, .design .hiprint-printElement-longText-content {
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.design .resize-panel {
|
||||
box-sizing: border-box;
|
||||
border: 1px dotted;
|
||||
}
|
||||
|
||||
.hiprint-printElement-text {
|
||||
background-color: transparent;
|
||||
background-repeat: repeat;
|
||||
padding: 0 0 0 0;
|
||||
border: 0.75pt none rgb(0, 0, 0);
|
||||
direction: ltr;
|
||||
font-family: 'SimSun';
|
||||
font-size: 9pt;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
padding-bottom: 0pt;
|
||||
padding-left: 0pt;
|
||||
padding-right: 0pt;
|
||||
padding-top: 0pt;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
line-height: 9.75pt;
|
||||
box-sizing: border-box;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.design .hiprint-printElement-text-content {
|
||||
border: 1px dashed rgb(206, 188, 188);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.hiprint-printElement-longText {
|
||||
background-color: transparent;
|
||||
background-repeat: repeat;
|
||||
border: 0.75pt none rgb(0, 0, 0);
|
||||
direction: ltr;
|
||||
font-family: 'SimSun';
|
||||
font-size: 9pt;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
padding-bottom: 0pt;
|
||||
padding-left: 0pt;
|
||||
padding-right: 0pt;
|
||||
padding-top: 0pt;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
line-height: 9.75pt;
|
||||
box-sizing: border-box;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
/*white-space: pre-wrap*/
|
||||
}
|
||||
|
||||
|
||||
.hiprint-printElement-table {
|
||||
background-color: transparent;
|
||||
background-repeat: repeat;
|
||||
color: rgb(0, 0, 0);
|
||||
border-color: rgb(0, 0, 0);
|
||||
border-style: none;
|
||||
direction: ltr;
|
||||
font-family: 'SimSun';
|
||||
font-size: 9pt;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
padding-bottom: 0pt;
|
||||
padding-left: 0pt;
|
||||
padding-right: 0pt;
|
||||
padding-top: 0pt;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
padding: 0 0 0 0;
|
||||
box-sizing: border-box;
|
||||
line-height: 9.75pt;
|
||||
}
|
||||
|
||||
.hiprint-printElement-table thead {
|
||||
background: #e8e8e8;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
table.hiprint-printElement-tableTarget {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hiprint-printElement-tableTarget, .hiprint-printElement-tableTarget tr, .hiprint-printElement-tableTarget td {
|
||||
border-color: rgb(0, 0, 0);
|
||||
/*border-style: none;*/
|
||||
/*border: 1px solid rgb(0, 0, 0);*/
|
||||
font-weight: normal;
|
||||
direction: ltr;
|
||||
padding-bottom: 0pt;
|
||||
padding-left: 4pt;
|
||||
padding-right: 4pt;
|
||||
padding-top: 0pt;
|
||||
text-decoration: none;
|
||||
vertical-align: middle;
|
||||
box-sizing: border-box;
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
/*line-height: 9.75pt;
|
||||
font-size: 9pt;*/
|
||||
}
|
||||
|
||||
.hiprint-printElement-tableTarget-border-all {
|
||||
border: 1px solid;
|
||||
}
|
||||
.hiprint-printElement-tableTarget-border-none {
|
||||
border: 0px solid;
|
||||
}
|
||||
.hiprint-printElement-tableTarget-border-lr {
|
||||
border-left: 1px solid;
|
||||
border-right: 1px solid;
|
||||
}
|
||||
.hiprint-printElement-tableTarget-border-left {
|
||||
border-left: 1px solid;
|
||||
}
|
||||
.hiprint-printElement-tableTarget-border-right {
|
||||
border-right: 1px solid;
|
||||
}
|
||||
.hiprint-printElement-tableTarget-border-tb {
|
||||
border-top: 1px solid;
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
.hiprint-printElement-tableTarget-border-top {
|
||||
border-top: 1px solid;
|
||||
}
|
||||
.hiprint-printElement-tableTarget-border-bottom {
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
|
||||
.hiprint-printElement-tableTarget-border-td-none td {
|
||||
border: 0px solid;
|
||||
}
|
||||
.hiprint-printElement-tableTarget-border-td-all td:not(:nth-last-child(-n+2)) {
|
||||
border-right: 1px solid;
|
||||
}
|
||||
.hiprint-printElement-tableTarget-border-td-all td:last-child {
|
||||
border-left: 1px solid;
|
||||
}
|
||||
.hiprint-printElement-tableTarget-border-td-all td:last-child:first-child {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
/*.hiprint-printElement-tableTarget tr,*/
|
||||
.hiprint-printElement-tableTarget td {
|
||||
height: 18pt;
|
||||
}
|
||||
|
||||
.hiprint-printPaper .hiprint-paperNumber {
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.design .hiprint-printElement-table-handle {
|
||||
position: absolute;
|
||||
height: 21pt;
|
||||
width: 21pt;
|
||||
background: red;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.hiprint-printPaper .hiprint-paperNumber-disabled {
|
||||
float: right !important;
|
||||
right: 0 !important;
|
||||
color: gainsboro !important;
|
||||
}
|
||||
|
||||
.hiprint-printElement-vline, .hiprint-printElement-hline {
|
||||
border: 0px none rgb(0, 0, 0);
|
||||
|
||||
}
|
||||
|
||||
.hiprint-printElement-vline {
|
||||
border-left: 0.75pt solid #000;
|
||||
border-right: 0px none rgb(0, 0, 0) !important;
|
||||
border-bottom: 0px none rgb(0, 0, 0) !important;
|
||||
border-top: 0px none rgb(0, 0, 0) !important;
|
||||
}
|
||||
|
||||
.hiprint-printElement-hline {
|
||||
border-top: 0.75pt solid #000;
|
||||
border-right: 0px none rgb(0, 0, 0) !important;
|
||||
border-bottom: 0px none rgb(0, 0, 0) !important;
|
||||
border-left: 0px none rgb(0, 0, 0) !important;
|
||||
}
|
||||
|
||||
.hiprint-printElement-oval, .hiprint-printElement-rect {
|
||||
border: 0.75pt solid #000;
|
||||
}
|
||||
|
||||
.hiprint-text-content-middle {
|
||||
}
|
||||
|
||||
.hiprint-text-content-middle > div {
|
||||
display: grid;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.hiprint-text-content-bottom {
|
||||
}
|
||||
|
||||
.hiprint-text-content-bottom > div {
|
||||
display: grid;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.hiprint-text-content-wrap {
|
||||
}
|
||||
|
||||
.hiprint-text-content-wrap .hiprint-text-content-wrap-nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.hiprint-text-content-wrap .hiprint-text-content-wrap-clip {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: clip;
|
||||
}
|
||||
|
||||
.hiprint-text-content-wrap .hiprint-text-content-wrap-ellipsis {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/*hi-grid-row */
|
||||
.hi-grid-row {
|
||||
position: relative;
|
||||
height: auto;
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
zoom: 1;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.hi-grid-row::after, .hi-grid-row::before {
|
||||
display: table;
|
||||
content: '';
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.hi-grid-col {
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
float: left;
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.table-grid-row {
|
||||
margin-left: -0pt;
|
||||
margin-right: -0pt;
|
||||
}
|
||||
|
||||
.tableGridColumnsGutterRow {
|
||||
padding-left: 0pt;
|
||||
padding-right: 0pt;
|
||||
}
|
||||
|
||||
.hiprint-gridColumnsFooter {
|
||||
text-align: left;
|
||||
clear: both;
|
||||
}
|
||||
|
|
@ -1,59 +1,64 @@
|
|||
import request from '@/config/axios'
|
||||
|
||||
// 生产制单 VO
|
||||
export interface ProduceOrderVO {
|
||||
id: number // ID
|
||||
billno: string // 单据编号
|
||||
orderNo: string // 订单号
|
||||
customerCode: string // 客户编号
|
||||
productId: number // 产品id
|
||||
productCode: string // 产品编号
|
||||
productName: string // 产品名称
|
||||
saleContractNo: number // 合约号
|
||||
contractDate: Date // 合约日期
|
||||
contractQty: number // 合约数量
|
||||
produceQty: number // 生产数量
|
||||
deliveryPlace: string // 交货地点
|
||||
clerk: string // 职员
|
||||
reportDate: Date // 报告日期
|
||||
produceDate: Date // 生产日期
|
||||
days: number // 天数
|
||||
produceLine: string // 生产线
|
||||
deliveryMethod: string // 交货方式
|
||||
inspectionDate: Date // 验货日期
|
||||
deliverydate: Date // 交货日期
|
||||
deliveryQty: number // 交货数量
|
||||
}
|
||||
|
||||
// 生产制单 API
|
||||
export const ProduceOrderApi = {
|
||||
// 查询生产制单分页
|
||||
getProduceOrderPage: async (params: any) => {
|
||||
return await request.get({ url: `/oms/produce-order/page`, params })
|
||||
},
|
||||
|
||||
// 查询生产制单详情
|
||||
getProduceOrder: async (id: number) => {
|
||||
return await request.get({ url: `/oms/produce-order/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增生产制单
|
||||
createProduceOrder: async (data: ProduceOrderVO) => {
|
||||
return await request.post({ url: `/oms/produce-order/create`, data })
|
||||
},
|
||||
|
||||
// 修改生产制单
|
||||
updateProduceOrder: async (data: ProduceOrderVO) => {
|
||||
return await request.put({ url: `/oms/produce-order/update`, data })
|
||||
},
|
||||
|
||||
// 删除生产制单
|
||||
deleteProduceOrder: async (id: number) => {
|
||||
return await request.delete({ url: `/oms/produce-order/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出生产制单 Excel
|
||||
exportProduceOrder: async (params) => {
|
||||
return await request.download({ url: `/oms/produce-order/export-excel`, params })
|
||||
},
|
||||
}
|
||||
import request from '@/config/axios'
|
||||
|
||||
// 生产制单 VO
|
||||
export interface ProduceOrderVO {
|
||||
id: number // ID
|
||||
billno: string // 单据编号
|
||||
orderNo: string // 订单号
|
||||
customerCode: string // 客户编号
|
||||
productId: number // 产品id
|
||||
productCode: string // 产品编号
|
||||
productName: string // 产品名称
|
||||
saleContractNo: number // 合约号
|
||||
contractDate: Date // 合约日期
|
||||
contractQty: number // 合约数量
|
||||
produceQty: number // 生产数量
|
||||
deliveryPlace: string // 交货地点
|
||||
clerk: string // 职员
|
||||
reportDate: Date // 报告日期
|
||||
produceDate: Date // 生产日期
|
||||
days: number // 天数
|
||||
produceLine: string // 生产线
|
||||
deliveryMethod: string // 交货方式
|
||||
inspectionDate: Date // 验货日期
|
||||
deliverydate: Date // 交货日期
|
||||
deliveryQty: number // 交货数量
|
||||
}
|
||||
|
||||
// 生产制单 API
|
||||
export const ProduceOrderApi = {
|
||||
// 查询生产制单分页
|
||||
getProduceOrderPage: async (params: any) => {
|
||||
return await request.get({ url: `/oms/produce-order/page`, params })
|
||||
},
|
||||
|
||||
// 查询生产制单详情
|
||||
getProduceOrder: async (id: number) => {
|
||||
return await request.get({ url: `/oms/produce-order/get?id=` + id })
|
||||
},
|
||||
|
||||
// 新增生产制单
|
||||
createProduceOrder: async (data: ProduceOrderVO) => {
|
||||
return await request.post({ url: `/oms/produce-order/create`, data })
|
||||
},
|
||||
|
||||
// 修改生产制单
|
||||
updateProduceOrder: async (data: ProduceOrderVO) => {
|
||||
return await request.put({ url: `/oms/produce-order/update`, data })
|
||||
},
|
||||
|
||||
// 删除生产制单
|
||||
deleteProduceOrder: async (id: number) => {
|
||||
return await request.delete({ url: `/oms/produce-order/delete?id=` + id })
|
||||
},
|
||||
|
||||
// 导出生产制单 Excel
|
||||
exportProduceOrder: async (params) => {
|
||||
return await request.download({ url: `/oms/produce-order/export-excel`, params })
|
||||
},
|
||||
|
||||
importTemplate: async (params) => {
|
||||
return request.download({ url: '/oms/produce-order/get-import-template' })
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,138 @@
|
|||
<template>
|
||||
<Dialog v-model="dialogVisible" title="订单导入" width="400">
|
||||
<el-upload
|
||||
ref="uploadRef"
|
||||
v-model:file-list="fileList"
|
||||
:action="importUrl + '?updateSupport=' + updateSupport"
|
||||
:auto-upload="false"
|
||||
:disabled="formLoading"
|
||||
:headers="uploadHeaders"
|
||||
:limit="1"
|
||||
:on-error="submitFormError"
|
||||
:on-exceed="handleExceed"
|
||||
:on-success="submitFormSuccess"
|
||||
accept=".xlsx, .xls"
|
||||
drag
|
||||
>
|
||||
<Icon icon="ep:upload" />
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<template #tip>
|
||||
<div class="el-upload__tip text-center">
|
||||
<div class="el-upload__tip">
|
||||
<el-checkbox v-model="updateSupport" />
|
||||
是否更新已经存在的订单数据
|
||||
</div>
|
||||
<span>仅允许导入 xls、xlsx 格式文件。</span>
|
||||
<el-link
|
||||
:underline="false"
|
||||
style="font-size: 12px; vertical-align: baseline"
|
||||
type="primary"
|
||||
@click="importTemplate"
|
||||
>
|
||||
下载模板
|
||||
</el-link>
|
||||
</div>
|
||||
</template>
|
||||
</el-upload>
|
||||
<template #footer>
|
||||
<el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
</template>
|
||||
</Dialog>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ProduceOrderApi } from '@/api/oms/produceorder'
|
||||
import { getAccessToken, getTenantId } from '@/utils/auth'
|
||||
import download from '@/utils/download'
|
||||
|
||||
defineOptions({ name: 'OmsProduceOrderImportForm' })
|
||||
|
||||
const message = useMessage() // 消息弹窗
|
||||
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||
const formLoading = ref(false) // 表单的加载中
|
||||
const uploadRef = ref()
|
||||
const importUrl =
|
||||
import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL + '/oms/produce-order/import'
|
||||
const uploadHeaders = ref() // 上传 Header 头
|
||||
const fileList = ref([]) // 文件列表
|
||||
const updateSupport = ref(0) // 是否更新已经存在的用户数据
|
||||
|
||||
/** 打开弹窗 */
|
||||
const open = () => {
|
||||
dialogVisible.value = true
|
||||
updateSupport.value = 0
|
||||
fileList.value = []
|
||||
resetForm()
|
||||
}
|
||||
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||
|
||||
/** 提交表单 */
|
||||
const submitForm = async () => {
|
||||
if (fileList.value.length == 0) {
|
||||
message.error('请上传文件')
|
||||
return
|
||||
}
|
||||
// 提交请求
|
||||
uploadHeaders.value = {
|
||||
Authorization: 'Bearer ' + getAccessToken(),
|
||||
'tenant-id': getTenantId()
|
||||
}
|
||||
formLoading.value = true
|
||||
uploadRef.value!.submit()
|
||||
}
|
||||
|
||||
/** 文件上传成功 */
|
||||
const emits = defineEmits(['success'])
|
||||
const submitFormSuccess = (response: any) => {
|
||||
if (response.code !== 0) {
|
||||
message.error(response.msg)
|
||||
formLoading.value = false
|
||||
return
|
||||
}
|
||||
// 拼接提示语
|
||||
const data = response.data
|
||||
let text = '上传成功数量:' + data.createBillNos.length + ';'
|
||||
for (let billno of data.createBillNos) {
|
||||
text += '< ' + billno + ' >'
|
||||
}
|
||||
text += '更新成功数量:' + data.updateBillNos.length + ';'
|
||||
for (const billno of data.updateBillNos) {
|
||||
text += '< ' + billno + ' >'
|
||||
}
|
||||
text += '更新失败数量:' + Object.keys(data.failureBillNos).length + ';'
|
||||
for (const billno in data.failureBillNos) {
|
||||
text += '< ' + billno + ': ' + data.failureBillNos[billno] + ' >'
|
||||
}
|
||||
message.alert(text)
|
||||
formLoading.value = false
|
||||
dialogVisible.value = false
|
||||
// 发送操作成功的事件
|
||||
emits('success')
|
||||
}
|
||||
|
||||
/** 上传错误提示 */
|
||||
const submitFormError = (): void => {
|
||||
message.error('上传失败,请您重新上传!')
|
||||
formLoading.value = false
|
||||
}
|
||||
|
||||
/** 重置表单 */
|
||||
const resetForm = async (): Promise<void> => {
|
||||
// 重置上传状态和文件
|
||||
formLoading.value = false
|
||||
await nextTick()
|
||||
uploadRef.value?.clearFiles()
|
||||
}
|
||||
|
||||
/** 文件数超出提示 */
|
||||
const handleExceed = (): void => {
|
||||
message.error('最多只能上传一个文件!')
|
||||
}
|
||||
|
||||
/** 下载模板操作 */
|
||||
const importTemplate = async () => {
|
||||
const res = await ProduceOrderApi.importTemplate()
|
||||
download.excel(res, '生产制单导入模版.xls')
|
||||
}
|
||||
</script>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
<template>
|
||||
<Dialog :title="dialogTitle" v-model="dialogVisible" style="width: 859px">
|
||||
<div class="modal">
|
||||
<div class="wrap">
|
||||
<div class="box">
|
||||
<div class="preview-body" style="overflow: auto">
|
||||
<div class="container"></div>
|
||||
</div>
|
||||
<div class="modal-box__footer">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
</template>
|
||||
</Dialog>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import $ from "jquery";
|
||||
|
||||
defineOptions({ name: 'startPreview' })
|
||||
|
||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||
const dialogTitle = ref('') // 弹窗的标题
|
||||
|
||||
const showModal = (...html) => {
|
||||
dialogVisible.value = true;
|
||||
dialogTitle.value = '预览'
|
||||
do {
|
||||
setTimeout(() => {
|
||||
debugger
|
||||
$(".container").empty();
|
||||
$(".container").html(html);
|
||||
}, 200);
|
||||
return;
|
||||
} while ($(".container").length <= 0);
|
||||
};
|
||||
|
||||
defineExpose({ showModal }) // 提供 showModal 方法,用于打开弹窗
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/* 不同模板 间隙 */
|
||||
.container .hiprint-printTemplate {
|
||||
background: #fff;
|
||||
border-bottom: 5px solid #ccc;
|
||||
}
|
||||
/* 批量打印 间隙 */
|
||||
.container .hiprint-printTemplate .hiprint-printPanel:not(:last-of-type) {
|
||||
border-bottom: 5px solid #ccc;
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
.preview-body {
|
||||
background: red;
|
||||
padding: 0px 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -114,6 +114,13 @@
|
|||
|
||||
<el-row :gutter="10" class="-mb-1px">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="preview()"
|
||||
plain
|
||||
>
|
||||
<Icon icon="ep:plus" class="mr-5px" /> 打印
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
|
|
@ -122,6 +129,14 @@
|
|||
>
|
||||
<Icon icon="ep:plus" class="mr-5px" /> 新增
|
||||
</el-button>
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
@click="handleImport"
|
||||
v-hasPermi="['oms:produce-order:export']"
|
||||
>
|
||||
<Icon icon="ep:upload" class="mr-5px" /> 导入
|
||||
</el-button>
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
|
|
@ -131,17 +146,22 @@
|
|||
>
|
||||
<Icon icon="ep:download" class="mr-5px" /> 导出
|
||||
</el-button>
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
</ContentWrap>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- 列表 -->
|
||||
<ContentWrap>
|
||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
||||
<el-table-column label="ID" align="center" prop="id" />
|
||||
<el-table-column label="单据编号" align="center" prop="billno" />
|
||||
<el-table-column label="订单号" align="center" prop="orderNo" />
|
||||
<el-table-column label="客户编号" align="center" prop="customerCode" />
|
||||
<!-- <el-table-column label="ID" align="center" prop="id" />-->
|
||||
<el-table-column label="序号" align="center" type="index" width="80"/>
|
||||
<el-table-column label="单据编号" align="center" prop="billno" width="240" />
|
||||
<el-table-column label="订单号" align="center" prop="orderNo" width="140"/>
|
||||
<el-table-column label="客户编号" align="center" prop="customerCode" width="140"/>
|
||||
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||
<el-table-column label="合约号" align="center" prop="saleContractNo" />
|
||||
<el-table-column
|
||||
|
|
@ -187,7 +207,7 @@
|
|||
width="180px"
|
||||
/>
|
||||
<el-table-column label="交货数量" align="center" prop="deliveryQty" />
|
||||
<el-table-column label="操作" align="center">
|
||||
<el-table-column label="操作" align="center" fixed="right" width="150">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
|
|
@ -219,6 +239,11 @@
|
|||
|
||||
<!-- 表单弹窗:添加/修改 -->
|
||||
<ProduceOrderForm ref="formRef" @success="getList" />
|
||||
<!-- 用户导入对话框 -->
|
||||
<ProduceOrderImportForm ref="importFormRef" @success="getList" />
|
||||
|
||||
<startPreview ref="previewRef" />
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
|
@ -226,7 +251,14 @@ import { dateFormatter } from '@/utils/formatTime'
|
|||
import download from '@/utils/download'
|
||||
import { ProduceOrderApi, ProduceOrderVO } from '@/api/oms/produceorder'
|
||||
import ProduceOrderForm from './ProduceOrderForm.vue'
|
||||
import template1 from "./template1";
|
||||
import { hiprint } from 'vue-plugin-hiprint'
|
||||
import startPreview from "./components/preview.vue"
|
||||
import ProduceOrderImportForm from './ProduceOrderImportForm.vue'
|
||||
|
||||
// 关闭客户端连接
|
||||
//hiprint.disAutoConnect()
|
||||
hiprint.init()
|
||||
/** 生产制单 列表 */
|
||||
defineOptions({ name: 'ProduceOrder' })
|
||||
|
||||
|
|
@ -252,6 +284,7 @@ const queryParams = reactive({
|
|||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
const previewRef = ref(null);
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
|
|
@ -311,6 +344,30 @@ const handleExport = async () => {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/** 用户导入 */
|
||||
const importFormRef = ref()
|
||||
const handleImport = () => {
|
||||
importFormRef.value.open()
|
||||
}
|
||||
|
||||
const preview = async () => {
|
||||
|
||||
let printData = {"billno":"AAAAAAAAAAAAACCCCCCCCCCCCCCDD"};
|
||||
let hiprintTemplate = new hiprint.PrintTemplate({template: template1});
|
||||
|
||||
// 弹出浏览器打印窗口,并填充 字段名:name 的元素
|
||||
// hiprintTemplate.print(hiprintTemplate);
|
||||
let html = hiprintTemplate.getHtml(printData);
|
||||
debugger;
|
||||
|
||||
// let html = hiprintTemplate.getHtml(template1);
|
||||
// htmls.value = html.toString()
|
||||
// printsx.value = true
|
||||
previewRef.value.showModal(html);
|
||||
|
||||
}
|
||||
|
||||
/** 初始化 **/
|
||||
onMounted(() => {
|
||||
getList()
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -124,13 +124,14 @@
|
|||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
@click="handleUpdateBillStatus(selectionList.map((item) => item.id),'submit')"
|
||||
:disabled="selectionList.length === 0"
|
||||
>提交
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
@click="handleUpdateBillStatus(selectionList.map((item) => item.id),'C')"
|
||||
@click="handleUpdateBillStatus(selectionList.map((item) => item.id),'audit')"
|
||||
:disabled="selectionList.length === 0"
|
||||
>
|
||||
审核
|
||||
|
|
@ -138,7 +139,7 @@
|
|||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
@click="handleUpdateBillStatus(selectionList.map((item) => item.id),'B')"
|
||||
@click="handleUpdateBillStatus(selectionList.map((item) => item.id),'unaudit')"
|
||||
:disabled="selectionList.length === 0"
|
||||
>
|
||||
反审核
|
||||
|
|
@ -146,7 +147,7 @@
|
|||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
@click="generateProduceOrder(selectionList.map((item) => item.id),'B')"
|
||||
@click="generateProduceOrder(selectionList.map((item) => item.id))"
|
||||
:disabled="selectionList.length === 0 || queryParams.tabType === 0"
|
||||
>
|
||||
生成制单
|
||||
|
|
@ -262,6 +263,22 @@
|
|||
|
||||
<!-- 表单弹窗:添加/修改 -->
|
||||
<SaleOrderForm ref="formRef" @success="getList" />
|
||||
|
||||
|
||||
|
||||
<!-- 驳回对话框 -->
|
||||
<!-- <el-dialog :title="rejectTitle" :visible.sync="rejectOpen" width="650px" append-to-body>-->
|
||||
<!-- <el-form ref="form" :model="rejectform" label-width="80px" >-->
|
||||
<!-- <el-form-item label="驳回原因" prop="rejectReason" >-->
|
||||
<!-- <el-input v-model="" placeholder="请输入单价" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<!-- <div slot="footer" class="dialog-footer">-->
|
||||
<!-- <el-button type="primary" @click="submitRejectForm">确 定</el-button>-->
|
||||
<!-- <el-button @click="rejectCancel">取 消</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-dialog>-->
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
|
@ -318,6 +335,17 @@ const queryParams = reactive({
|
|||
const queryFormRef = ref() // 搜索的表单
|
||||
const exportLoading = ref(false) // 导出的加载中
|
||||
|
||||
|
||||
|
||||
|
||||
//驳回参数
|
||||
const rejectOpen = ref(false)
|
||||
const rejectTitle = ref()
|
||||
const rejectform = reactive({
|
||||
rejectReason: undefined
|
||||
})
|
||||
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true
|
||||
|
|
@ -372,14 +400,47 @@ const handleDelete = async (id: number) => {
|
|||
}
|
||||
|
||||
|
||||
/** 反审核按钮操作 */
|
||||
// const handleReject = async () => {
|
||||
// try {
|
||||
// let ids = selectionList;
|
||||
// /*let auditStatuss = row.ifaudit || this.auditStatuss;
|
||||
//
|
||||
// for(var vals of auditStatuss) {
|
||||
// if(vals!='0'){
|
||||
// message.error("请选择待审核数据");
|
||||
// return;
|
||||
// }
|
||||
// }*/
|
||||
//
|
||||
// rejectform = {
|
||||
// rejectReason: null
|
||||
// };
|
||||
// this.resetForm("rejectform");
|
||||
// this.rejectTitle = "是否驳回选中的数据项?";
|
||||
// this.rejectOpen = true;
|
||||
// } catch {}
|
||||
// },
|
||||
|
||||
|
||||
/** 审批/反审批操作 */
|
||||
const handleUpdateBillStatus = async (ids: number[], status: number) => {
|
||||
const handleUpdateBillStatus = async (ids: number[], operateKey: string) => {
|
||||
try {
|
||||
// 审批的二次确认
|
||||
await message.confirm(`确定${status === 'C' ? '审核' : '反审核'}该订单吗?`)
|
||||
let operateName = ''
|
||||
if(operateKey === 'submit'){
|
||||
operateName = '提交'
|
||||
}else if(operateKey === "audit"){
|
||||
operateName = '审核'
|
||||
}else if(operateKey === "unaudit"){
|
||||
operateName = '反审核'
|
||||
}else {
|
||||
return
|
||||
}
|
||||
await message.confirm(`确定${operateName}该订单吗?`)
|
||||
// 发起审批
|
||||
await SaleOrderApi.updateSaleOrderBillStatus(ids, status)
|
||||
message.success(`${status === 'C' ? '审核' : '反审核'}成功`)
|
||||
await SaleOrderApi.updateSaleOrderBillStatus(ids, operateKey)
|
||||
message.success(`${operateName}成功`)
|
||||
// 刷新列表
|
||||
await getList()
|
||||
selectionList.value = selectionList.value.filter((item) => !ids.includes(item.id))
|
||||
|
|
@ -388,7 +449,7 @@ const handleUpdateBillStatus = async (ids: number[], status: number) => {
|
|||
|
||||
|
||||
/** 审批/反审批操作 */
|
||||
const generateProduceOrder = async (ids: number[], status: number) => {
|
||||
const generateProduceOrder = async (ids: number[]) => {
|
||||
try {
|
||||
// 审批的二次确认
|
||||
await message.confirm(`是否生成生产制单?`)
|
||||
|
|
@ -432,6 +493,26 @@ const handleSelectionChange = (rows: SaleOrderVO[]) => {
|
|||
}
|
||||
|
||||
|
||||
/** 驳回提交按钮 */
|
||||
/*const submitRejectForm = async () => {
|
||||
const ids = selectionList.map((item) => item.id
|
||||
if (this.rejectform.rejectReason != null) {
|
||||
const data = {
|
||||
ids:ids,
|
||||
reason:this.rejectform.rejectReason
|
||||
}
|
||||
/!* notAuditOrder(data).then(response => {
|
||||
this.msgSuccess("驳回成功");
|
||||
this.rejectOpen = false;
|
||||
this.getList();
|
||||
});*!/
|
||||
|
||||
}else {
|
||||
message.error(`请选择驳回原因!`)
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
/** 激活时 */
|
||||
onActivated(() => {
|
||||
getList()
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
-- 初始化新增客户角色
|
||||
INSERT INTO `system_role` (`id`, `name`, `code`, `sort`, `data_scope`, `data_scope_dept_ids`, `status`, `type`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (-999, '客户', 'customer', 3, 1, '', 0, 1, '客户', '1', '2024-08-26 23:09:05', '1', '2024-09-03 23:42:34', b'0', 1);
|
||||
-- 初始化新增客户部门
|
||||
INSERT INTO `system_dept` (`id`, `name`, `parent_id`, `sort`, `leader_user_id`, `phone`, `email`, `status`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (999999, '客户', 0, 1, NULL, NULL, NULL, 0, '113', '2022-03-07 21:44:50', '113', '2024-09-03 00:32:52', b'0', 122);
|
||||
|
||||
Loading…
Reference in New Issue