소스 검색

Merge remote-tracking branch 'origin/dev_v2' into dev_v2

钱惠东 1 주 전
부모
커밋
745113d954
20개의 변경된 파일163개의 추가작업 그리고 261개의 파일을 삭제
  1. 1 6
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/TqContract.java
  2. 0 3
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/TqContractHistory.java
  3. 6 6
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/TqContractLift.java
  4. 6 6
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/TqContractLiftHistory.java
  5. 2 6
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/bo/TqContractBo.java
  6. 6 6
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/bo/contract/TqContractLift4OrderNoBo.java
  7. 6 6
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/bo/contract/TqContractLiftBo.java
  8. 49 60
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/vo/contract/TqContractExportVo.java
  9. 5 4
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/service/impl/TcProjectServiceImpl.java
  10. 1 1
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/service/impl/TqContractLiftServiceImpl.java
  11. 2 1
      RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/service/impl/TqContractServiceImpl.java
  12. 1 6
      RuoYi-Vue-fast-master/src/main/resources/mybatis/business/contract/TqContractHistoryMapper.xml
  13. 9 11
      RuoYi-Vue-fast-master/src/main/resources/mybatis/business/contract/TqContractMapper.xml
  14. 13 0
      RuoYi-Vue-fast-master/src/main/resources/mybatis/business/quotation/TqQuotationMapper.xml
  15. 11 2
      ruoyi-ui-vue2/src/views/board/projectFollow/index.vue
  16. 31 123
      ruoyi-ui-vue2/src/views/contract/index.vue
  17. 6 6
      ruoyi-ui-vue2/src/views/contract/lift/index.vue
  18. 1 1
      ruoyi-ui-vue2/src/views/crmManagement/project/index.vue
  19. 3 3
      ruoyi-ui-vue2/src/views/index.vue
  20. 4 4
      ruoyi-ui-vue2/src/views/quotation/quotation.vue

+ 1 - 6
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/TqContract.java

@@ -84,14 +84,9 @@ public class TqContract extends BaseEntity
     private String approveStatus;
 
     /** *合同状态(履行中,已取消)关联字典 */
-    @Excel(name = "合同状态",i18nCode = "contract.status", sort = 12)
+//    @Excel(name = "合同状态",i18nCode = "contract.status", sort = 12)
     private String status;
 
-    /** 签单月美元汇率 */
-    @Excel(name = "签单月汇率",i18nCode = "contract.mUsdRate4SigningContracts", sort = 13)
-    private BigDecimal rate4SigningContracts;
-
-
     /** 地址 */
     @Excel(name = "地址",i18nCode = "contract.address", sort = 15)
     private String address;

+ 0 - 3
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/TqContractHistory.java

@@ -106,9 +106,6 @@ public class TqContractHistory extends BaseEntity
     @Excel(name = "*合同状态", readConverterExp = "履=行中,已取消")
     private String status;
 
-    /** 签单月美元汇率 */
-    @Excel(name = "签单月汇率")
-    private BigDecimal rate4SigningContracts;
 
     /** 版本号 */
     @Excel(name = "版本号")

+ 6 - 6
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/TqContractLift.java

@@ -103,9 +103,9 @@ public class TqContractLift extends BaseEntity
     @Excel(name = "付款方式", dictType="contract_payment_method",i18nCode = "lift.paymentMethod", sort= 23)
     private String paymentMethod;
 
-    /** 预计排产期 */
+    /** 预计排产期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "预计排产期", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "lift.expectedProductionScheduleDate", sort= 24)
+    @Excel(name = "预计排产期", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "lift.expectedProductionScheduleDate", sort= 24)
     private Date expectedProductionScheduleDate;
 
     /** 希望排产日期 */
@@ -113,9 +113,9 @@ public class TqContractLift extends BaseEntity
     @Excel(name = "希望排产日期", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "lift.hopeToScheduleProductionDate", sort= 25)
     private Date hopeToScheduleProductionDate;
 
-    /** 实际排产日期 */
+    /** 排产交期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "实际排产日期", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "lift.actualProductionScheduleDate", sort= 26)
+    @Excel(name = "排产交期", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "lift.actualProductionScheduleDate", sort= 26)
     private Date actualProductionScheduleDate;
 
     /** 排产日期 */
@@ -141,8 +141,8 @@ public class TqContractLift extends BaseEntity
     @Excel(name = "港口",i18nCode = "lift.port", sort= 31)
     private String port;
 
-    /** 生产订单状态 */
-    @Excel(name = "生产订单状态",i18nCode = "lift.productionOrderStatus", dictType="production_order_status",sort= 32)
+    /** 项目状态 */
+    @Excel(name = "项目状态",i18nCode = "lift.productionOrderStatus", dictType="production_order_status",sort= 32)
     private String productionOrderStatus;
 
     /** 评审折扣 */

+ 6 - 6
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/TqContractLiftHistory.java

@@ -130,9 +130,9 @@ public class TqContractLiftHistory extends BaseEntity
     @Excel(name = "报价折扣")
     private String quotationDiscount;
 
-    /** 预计排产期 */
+    /** 预计排产期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "预计排产期", width = 30, dateFormat = "yyyy-MM-dd")
+    @Excel(name = "预计排产期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date expectedProductionScheduleDate;
 
     /** 希望排产日期 */
@@ -140,9 +140,9 @@ public class TqContractLiftHistory extends BaseEntity
     @Excel(name = "希望排产日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date hopeToScheduleProductionDate;
 
-    /** 实际排产日期 */
+    /** 排产交期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "实际排产日期", width = 30, dateFormat = "yyyy-MM-dd")
+    @Excel(name = "排产交期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date actualProductionScheduleDate;
 
     /** 排产日期 */
@@ -176,8 +176,8 @@ public class TqContractLiftHistory extends BaseEntity
     @Excel(name = "港口")
     private String port;
 
-    /** 生产订单状态 */
-    @Excel(name = "生产订单状态")
+    /** 项目状态 */
+    @Excel(name = "项目状态")
     private String productionOrderStatus;
 
     /** 评审折扣 */

+ 2 - 6
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/bo/TqContractBo.java

@@ -69,7 +69,7 @@ public class TqContractBo extends BaseEntity
 
     /** 付款方式(关联字典) */
     @Excel(name = "付款方式", readConverterExp = "关=联字典")
-    private String paymentMethod;
+    private List<String> paymentMethod;
 
     /** 销售模式 */
     @Excel(name = "销售模式")
@@ -107,10 +107,6 @@ public class TqContractBo extends BaseEntity
     @Excel(name = "*合同状态", readConverterExp = "履=行中,已取消")
     private List<String> status;
 
-    /** 签单月汇率 */
-    @Excel(name = "签单月汇率")
-    private BigDecimal rate4SigningContracts;
-
     /** 地址 */
     @Excel(name = "地址")
     private String address;
@@ -142,7 +138,7 @@ public class TqContractBo extends BaseEntity
 
     private String nickName;
 
-    private Long endCustomersName;
+    private String endCustomersName;
 
     private List<Long> flowStatus;
 

+ 6 - 6
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/bo/contract/TqContractLift4OrderNoBo.java

@@ -134,9 +134,9 @@ public class TqContractLift4OrderNoBo extends BaseEntity
     @Excel(name = "报价折扣")
     private String quotationDiscount;
 
-    /** 预计排产期 */
+    /** 预计排产期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "预计排产期", width = 30, dateFormat = "yyyy-MM-dd")
+    @Excel(name = "预计排产期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date expectedProductionScheduleDate;
 
     /** 希望排产日期 */
@@ -144,9 +144,9 @@ public class TqContractLift4OrderNoBo extends BaseEntity
     @Excel(name = "希望排产日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date hopeToScheduleProductionDate;
 
-    /** 实际排产日期 */
+    /** 排产交期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "实际排产日期", width = 30, dateFormat = "yyyy-MM-dd")
+    @Excel(name = "排产交期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date actualProductionScheduleDate;
 
     /** 排产日期 */
@@ -180,8 +180,8 @@ public class TqContractLift4OrderNoBo extends BaseEntity
     @Excel(name = "港口")
     private String port;
 
-    /** 生产订单状态 */
-    @Excel(name = "生产订单状态")
+    /** 项目状态 */
+    @Excel(name = "项目状态")
     private String productionOrderStatus;
 
     /** 评审折扣 */

+ 6 - 6
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/bo/contract/TqContractLiftBo.java

@@ -130,9 +130,9 @@ public class TqContractLiftBo extends BaseEntity
     @Excel(name = "报价折扣")
     private String quotationDiscount;
 
-    /** 预计排产期 */
+    /** 预计排产期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "预计排产期", width = 30, dateFormat = "yyyy-MM-dd")
+    @Excel(name = "预计排产期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date[] expectedProductionScheduleDate;
 
     /** 希望排产日期 */
@@ -140,9 +140,9 @@ public class TqContractLiftBo extends BaseEntity
     @Excel(name = "希望排产日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date[] hopeToScheduleProductionDate;
 
-    /** 实际排产日期 */
+    /** 排产交期 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "实际排产日期", width = 30, dateFormat = "yyyy-MM-dd")
+    @Excel(name = "排产交期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date[] actualProductionScheduleDate;
 
     /** 排产日期 */
@@ -176,8 +176,8 @@ public class TqContractLiftBo extends BaseEntity
     @Excel(name = "港口")
     private String port;
 
-    /** 生产订单状态 */
-    @Excel(name = "生产订单状态")
+    /** 项目状态 */
+    @Excel(name = "项目状态")
     private List<Long> productionOrderStatus;
 
     /** 评审折扣 */

+ 49 - 60
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/domain/vo/contract/TqContractExportVo.java

@@ -32,117 +32,106 @@ public class TqContractExportVo
 
 
     /** 合同编号(自动采番) */
-    @Excel(name = "合同号",i18nCode = "contract.contractNo", sort = 1)
+    @Excel(name = "合同号",i18nCode = "contract.contractNo", sort = 1)
     private String contractNo;
 
     /** 合同名称 */
-    @Excel(name = "合同名",i18nCode = "contract.contractName", sort = 2)
+    @Excel(name = "合同名",i18nCode = "contract.contractName", sort = 2)
     private String contractName;
 
+    /** *签单日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "签单日期", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "contract.signingDate", sort = 3)
+    private Date signingDate;
+
+    /** *区域名称 */
+    @Excel(name = "区域",i18nCode = "contract.areaName", sort = 4)
+    private String areaName;
+
+    /** *国家 */
+    @Excel(name = "国家",i18nCode = "contract.countryName", sort = 5)
+    private String countryName;
+
     /** *城市 */
-    @Excel(name = "城市",i18nCode = "contract.city", sort = 3)
+    @Excel(name = "城市",i18nCode = "contract.city", sort = 6)
     private String city;
 
+    /** 代理商 */
+    @Excel(name = "代理商",i18nCode = "lift.agentName", sort = 7)
+    private String agentName;
+
     /** *贸易条款(字典) */
-    @Excel(name = "贸易条款" , dictType="contract_trade_terms",i18nCode = "contract.tradeTerms", sort = 4)
+    @Excel(name = "贸易条款" , dictType="contract_trade_terms",i18nCode = "contract.tradeTerms", sort = 8)
     private String tradeTerms;
 
     /** 付款方式(关联字典) */
-    @Excel(name = "付款方式",dictType="contract_payment_method",i18nCode = "contract.paymentMethod", sort = 5)
+    @Excel(name = "付款方式",dictType="contract_payment_method",i18nCode = "contract.paymentMethod", sort = 9)
     private String paymentMethod;
 
     /** 销售模式 */
-    @Excel(name = "销售模式", dictType="contract_sales_model",i18nCode = "contract.salesModel", sort = 6)
+    @Excel(name = "销售模式", dictType="contract_sales_model",i18nCode = "contract.salesModel", sort = 10)
     private String salesModel;
 
+    /** 业务员 */
+    @Excel(name = "业务员",i18nCode = "contract.salesmanName", sort = 11)
+    private String salesmanName;
+
+    /** *终端客户名称 */
+    @Excel(name = "终端客户",i18nCode = "lift.endCustomersName", sort = 12)
+    private String endCustomersName;
+
     /** *币种(关联字典) */
-    @Excel(name = "币种", dictType="currency_type",i18nCode = "contract.currencyId", sort = 7)
+    @Excel(name = "币种", dictType="currency_type",i18nCode = "contract.currencyId", sort = 13)
     private String currencyId;
 
     /** 合同金额 */
-//    @Excel(name = "合同金额",i18nCode = "contract.amount", sort = 8 )
     private BigDecimal amount;
 
     /** 合同金额 */
-    @Excel(name = "合同金额",i18nCode = "contract.amount", sort = 8 )
+    @Excel(name = "合同金额",i18nCode = "contract.amount", sort = 14 )
     private String amountExport;
 
-    /** *签单日期 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "签单日期", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "contract.signingDate", sort = 9)
-    private Date signingDate;
-
     /** *付款比例(暂定关联字典) */
-    @Excel(name = "付款比例", dictType="contract_payment_ratio",i18nCode = "contract.paymentRatio", sort = 10)
+    @Excel(name = "付款比例", dictType="contract_payment_ratio",i18nCode = "contract.paymentRatio", sort = 16)
     private String paymentRatio;
 
     /** *审批状态 */
-    @Excel(name = "审批状态", dictType="contract_approval_status",i18nCode = "contract.approveStatus", sort = 11)
+    @Excel(name = "审批状态", dictType="contract_approval_status",i18nCode = "contract.approveStatus", sort = 17)
     private String approveStatus;
 
-    /** *合同状态(履行中,已取消)关联字典 */
-    @Excel(name = "合同状态",i18nCode = "contract.status", sort = 12)
-    private String status;
-
-    /** 签单月美元汇率 */
-    @Excel(name = "签单月汇率",i18nCode = "contract.mUsdRate4SigningContracts", sort = 13)
-    private BigDecimal rate4SigningContracts;
-
 
     /** 地址 */
-    @Excel(name = "地址",i18nCode = "contract.address", sort = 15)
+    @Excel(name = "地址",i18nCode = "contract.address", sort = 18)
     private String address;
 
     /** 电话 */
-    @Excel(name = "电话",i18nCode = "contract.telephone", sort = 16)
+    @Excel(name = "电话",i18nCode = "contract.telephone", sort = 19)
     private String telephone;
 
     /** 邮件 */
-    @Excel(name = "邮件",i18nCode = "contract.email", sort = 17)
+    @Excel(name = "邮件",i18nCode = "contract.email", sort = 20)
     private String email;
 
-    /** 商标 */
-    @Excel(name = "商标",i18nCode = "contract.shippingMark", sort = 18)
-    private String shippingMark;
-
-    /** 装船口岸 */
-    @Excel(name = "装船口岸",i18nCode = "contract.shipmentPort", sort = 19)
-    private String shipmentPort;
-
-    /** 目的口岸 */
-    @Excel(name = "目的口岸",i18nCode = "contract.destinationPort", sort = 20)
-    private String destinationPort;
-
     /** 装船期限 */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "装船期限", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "contract.shipmentDeadline", sort = 21)
     private Date shipmentDeadline;
 
+    /** 装船口岸 */
+    @Excel(name = "装船口岸",i18nCode = "contract.shipmentPort", sort = 22)
+    private String shipmentPort;
 
-    // 区域名称
-    @Excel(name = "区域",i18nCode = "contract.areaName", sort = 6)
-    private String areaName;
-
-    /** *国家 */
-    @Excel(name = "国家",i18nCode = "contract.countryName", sort = 7)
-    private String countryName;
-
-    // 业务员名称
-    @Excel(name = "业务员",i18nCode = "contract.salesmanName", sort = 9)
-    private String salesmanName;
-
-    //代理商名称
-    @Excel(name = "代理商",i18nCode = "lift.agentName", sort = 10)
-    private String agentName;
+    /** 目的口岸 */
+    @Excel(name = "目的口岸",i18nCode = "contract.destinationPort", sort = 23)
+    private String destinationPort;
 
-    /** *终端客户名称 */
-    @Excel(name = "终端客户",i18nCode = "lift.endCustomersName", sort = 11)
-    private String endCustomersName;
+    /** 商标 */
+    @Excel(name = "商标",i18nCode = "contract.shippingMark", sort = 24)
+    private String shippingMark;
 
 
-    /** 附件地址拼接字符串 */
-    @Transient
-    private String file;
+    /** *合同状态(履行中,已取消)关联字典 */
+    private String status;
 
     /** 附件集合 */
     @Transient

+ 5 - 4
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/service/impl/TcProjectServiceImpl.java

@@ -691,12 +691,13 @@ public class TcProjectServiceImpl extends ServiceImpl<TcProjectMapper, TcProject
             equipment.setTotalPrice(
                 equipment.getAmount().multiply(BigDecimal.valueOf(equipment.getEquipmentQuantity())));
         }
-        boolean r = tcProjectEquipmentService.saveBatch(machineList);
-        if (!r) {
-            throw new ServiceException("设备信息保存失败");
+        if(!ObjectUtils.isEmpty(machineList)){
+            boolean r = tcProjectEquipmentService.saveBatch(machineList);
+            if (!r) {
+                throw new ServiceException("设备信息保存失败");
+            }
         }
 
-
         // 履历信息插入
         Long newVersion = tcProjectMapper.getNewVersion(tcProject.getProjectId());
         TcProjectHistory tcProjectHistory = new TcProjectHistory();

+ 1 - 1
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/service/impl/TqContractLiftServiceImpl.java

@@ -108,7 +108,7 @@ public class TqContractLiftServiceImpl implements ITqContractLiftService
      **/
     @Override
     public int updateTqContractLiftBatch(List<TqContractLift> tqContractLiftList){
-        //根据实际排产日期查询汇率
+        //根据排产交期查询汇率
         List<ContractCurrencyTime> scheduleList = tqContractLiftList.stream().filter(tqContractLift -> tqContractLift.getActualProductionScheduleDate() != null) // Filter out null signing dates
                 .map(tqContractLift -> new ContractCurrencyTime(
                         Long.parseLong(tqContractLift.getCurrencyId()), tqContractLift.getActualProductionScheduleDate()

+ 2 - 1
RuoYi-Vue-fast-master/src/main/java/com/ruoyi/project/business/service/impl/TqContractServiceImpl.java

@@ -174,6 +174,7 @@ public class TqContractServiceImpl implements ITqContractService
                     TqContractExportVo tqContractExportVo = new TqContractExportVo();
                     BeanUtils.copyProperties(tqContractVo,tqContractExportVo);
                     tqContractExportVo.setAmountExport(formatBigDecimal(tqContractExportVo.getAmount(),tqContractExportVo.getUnit()));
+                    tqContractExportVo.setAgentName(tqContractExportVo.getAgentName() != null ?tqContractExportVo.getAgentName():MessageUtils.message("agent.headquarters"));
                     return tqContractExportVo;
                 }).collect(Collectors.toList());
 
@@ -330,7 +331,7 @@ public class TqContractServiceImpl implements ITqContractService
       * @Date 9:13 2024/8/21
       **/
     private List<TqContractLift>  attachTqContractLift(TqContractDto tqContractDto, List<TqContractLift>  tqContractLiftList){
-        //根据实际排产日期查询汇率
+        //根据排产交期查询汇率
         List<ContractCurrencyTime> scheduleList = tqContractLiftList.stream().filter(tqContractLift -> tqContractLift.getActualProductionScheduleDate() != null) // Filter out null signing dates
                 .map(tqContractLift -> new ContractCurrencyTime(
                         Long.parseLong(tqContractLift.getCurrencyId()), tqContractLift.getActualProductionScheduleDate()

+ 1 - 6
RuoYi-Vue-fast-master/src/main/resources/mybatis/business/contract/TqContractHistoryMapper.xml

@@ -30,7 +30,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"    column="update_by"    />
         <result property="remark"    column="remark"    />
         <result property="status"    column="status"    />
-        <result property="rate4SigningContracts"    column="rate_4_signing_contracts"    />
         <result property="version"    column="version"    />
         <result property="changeRemark"    column="change_remark"    />
 
@@ -44,7 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectTqContractHistoryVo">
-        select id, contract_no, contract_name, area_id, country_id, city, salesman, end_customers, trade_terms, agent_id, payment_method, sales_model, currency_id, amount, signing_date, payment_ratio, approve_status, permission_char, del_flag, create_time, create_by, update_time, update_by, remark, status, rate_4_signing_contracts, version, change_remark , address, telephone, email, shipping_mark, shipment_port, destination_port, shipment_deadline from tq_contract_history
+        select id, contract_no, contract_name, area_id, country_id, city, salesman, end_customers, trade_terms, agent_id, payment_method, sales_model, currency_id, amount, signing_date, payment_ratio, approve_status, permission_char, del_flag, create_time, create_by, update_time, update_by, remark, status, version, change_remark , address, telephone, email, shipping_mark, shipment_port, destination_port, shipment_deadline from tq_contract_history
     </sql>
 
     <select id="selectTqContractHistoryList" parameterType="TqContractHistory" resultMap="TqContractHistoryResult">
@@ -68,7 +67,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="approveStatus != null  and approveStatus != ''"> and approve_status = #{approveStatus}</if>
             <if test="permissionChar != null  and permissionChar != ''"> and permission_char = #{permissionChar}</if>
             <if test="status != null  and status != ''"> and status = #{status}</if>
-            <if test="rate4SigningContracts != null "> and rate_4_signing_contracts = #{rate4SigningContracts}</if>
             <if test="version != null "> and version = #{version}</if>
             <if test="changeRemark != null  and changeRemark != ''"> and change_remark = #{changeRemark}</if>
 
@@ -122,7 +120,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by,</if>
             <if test="remark != null">remark,</if>
             <if test="status != null">status,</if>
-            <if test="rate4SigningContracts != null">rate_4_signing_contracts,</if>
             <if test="version != null">version,</if>
             <if test="changeRemark != null">change_remark,</if>
 
@@ -159,7 +156,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">#{updateBy},</if>
             <if test="remark != null">#{remark},</if>
             <if test="status != null">#{status},</if>
-            <if test="rate4SigningContracts != null">#{rate4SigningContracts},</if>
             <if test="version != null">#{version},</if>
             <if test="changeRemark != null">#{changeRemark},</if>
 
@@ -202,7 +198,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="remark != null">remark = #{remark},</if>
             <if test="status != null">status = #{status},</if>
-            <if test="rate4SigningContracts != null">rate_4_signing_contracts = #{rate4SigningContracts},</if>
             <if test="version != null">version = #{version},</if>
             <if test="changeRemark != null">change_remark = #{changeRemark},</if>
 

+ 9 - 11
RuoYi-Vue-fast-master/src/main/resources/mybatis/business/contract/TqContractMapper.xml

@@ -30,7 +30,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"    column="update_by"    />
         <result property="remark"    column="remark"    />
         <result property="status"    column="status"    />
-        <result property="rate4SigningContracts"    column="rate_4_signing_contracts"    />
 
         <result property="address"    column="address"    />
         <result property="telephone"    column="telephone"    />
@@ -56,7 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectTqContractVo">
-        select id,version, contract_no, contract_name, area_id, country_id, city, salesman, end_customers, trade_terms, agent_id, payment_method, sales_model, currency_id, amount, signing_date, payment_ratio, approve_status, permission_char, del_flag, create_time, create_by, update_time, update_by, remark, status, rate_4_signing_contracts, address, telephone, email, shipping_mark, shipment_port, destination_port, shipment_deadline from tq_contract
+        select id,version, contract_no, contract_name, area_id, country_id, city, salesman, end_customers, trade_terms, agent_id, payment_method, sales_model, currency_id, amount, signing_date, payment_ratio, approve_status, permission_char, del_flag, create_time, create_by, update_time, update_by, remark, status, address, telephone, email, shipping_mark, shipment_port, destination_port, shipment_deadline from tq_contract
     </sql>
 
     <select id="selectTqContractList" parameterType="TqContract" resultMap="TqContractResult">
@@ -80,7 +79,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="approveStatus != null  and approveStatus != ''"> and approve_status = #{approveStatus}</if>
             <if test="permissionChar != null  and permissionChar != ''"> and permission_char = #{permissionChar}</if>
             <if test="status != null  and status != ''"> and status = #{status}</if>
-            <if test="rate4SigningContracts != null "> and rate_4_signing_contracts = #{rate4SigningContracts}</if>
 
             <if test="address != null  and address != ''"> and address = #{address}</if>
             <if test="telephone != null  and telephone != ''"> and telephone = #{telephone}</if>
@@ -98,7 +96,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where id = #{id}
     </select>
     <select id="selectTqContractBoList" resultMap="TqContractVoResult">
-        select ah.*,account.account_name as account_name,flow.status as flowStatus,u.nick_name as salesman_name,ag.agent_name,RIGHT(dict.remark, 1) as unit,vo.type as type_authority,
+        select ah.*,account.account_name as account_name,flow.status as flowStatus,u.nick_name as salesman_name,ag.agent_name,
+            RIGHT(dict.remark, 1) as unit,vo.type as type_authority,
             CASE #{language}
             WHEN 'chinese' THEN country.country_name
             WHEN 'english' THEN country.country_nameUS
@@ -160,7 +159,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     #{item}
                 </foreach>
             </if>
-            <if test="paymentMethod != null  and paymentMethod != ''"> and ah.payment_method = #{paymentMethod}</if>
+            <if test="paymentMethod != null and paymentMethod.size() > 0">
+                and ah.payment_method in
+                <foreach collection="paymentMethod" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
             <if test="salesModel != null and salesModel.size() > 0">
                 and ah.sales_model in
                 <foreach collection="salesModel" item="item" open="(" separator="," close=")">
@@ -187,7 +191,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     #{item}
                 </foreach>
             </if>
-            <if test="rate4SigningContracts != null "> and ah.rate_4_signing_contracts = #{rate4SigningContracts}</if>
             <if test="nickName != null "> and u.nick_name like concat('%',#{nickName},'%')</if>
 
             <if test="address != null "> and ah.address like concat('%',#{address},'%')</if>
@@ -287,8 +290,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     #{item}
                 </foreach>
             </if>
-            <if test="rate4SigningContracts != null "> and ah.rate_4_signing_contracts = #{rate4SigningContracts}</if>
-            <if test="rate4SigningContracts != null "> and ah.rate_4_signing_contracts = #{rate4SigningContracts}</if>
             <if test="nickName != null "> and u.nick_name like concat('%',#{nickName},'%')</if>
 
             <if test="address != null "> and ah.address like concat('%',#{address},'%')</if>
@@ -334,7 +335,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by,</if>
             <if test="remark != null">remark,</if>
             <if test="status != null">status,</if>
-            <if test="rate4SigningContracts != null">rate_4_signing_contracts,</if>
 
             <if test="address != null">address,</if>
             <if test="telephone != null">telephone,</if>
@@ -370,7 +370,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">#{updateBy},</if>
             <if test="remark != null">#{remark},</if>
             <if test="status != null">#{status},</if>
-            <if test="rate4SigningContracts != null">#{rate4SigningContracts},</if>
 
             <if test="address != null">#{address},</if>
             <if test="telephone != null">#{telephone},</if>
@@ -410,7 +409,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="remark != null">remark = #{remark},</if>
             <if test="status != null">status = #{status},</if>
-            <if test="rate4SigningContracts != null">rate_4_signing_contracts = #{rate4SigningContracts},</if>
 
             <if test="address != null">address = #{address},</if>
             <if test="telephone != null">telephone = #{telephone},</if>

+ 13 - 0
RuoYi-Vue-fast-master/src/main/resources/mybatis/business/quotation/TqQuotationMapper.xml

@@ -202,6 +202,7 @@
         <trim prefix="HAVING" prefixOverrides="AND">
             <if test="isGroupBy">
                 AND quo.id in (SELECT MAX(tq.id) as id FROM tq_quotation tq
+                LEFT JOIN sys_user u on tq.create_by = u.user_id
                 inner join (SELECT p.premession_char FROM (SELECT @premessionStr:= #{permissionChar} p) param ,
                 getpremessionview_chars p
                 ) permission on permission.premession_char = tq.permission_char
@@ -209,6 +210,18 @@
                     <if test="loginUserId != null  and loginUserId != ''">
                         and (tq.permission_char &lt;&gt; #{permission} or tq.create_by = #{loginUserId})
                     </if>
+                    <if test="beginTime != null and endTime != null">and tq.submit_time between #{beginTime} and #{endTime}
+                    </if>
+                    <if test="elevatorModel != null  and elevatorModel != ''">
+                        AND tq.elevator_model like concat('%',#{elevatorModel},'%')
+                    </if>
+                    <if test="nickName != null  and nickName != ''">and u.nick_name like concat('%',#{nickName},'%')</if>
+                    <if test="quotationStatus != null and quotationStatus.size() > 0">
+                        and  tq.quotation_status in
+                        <foreach item="item" collection="quotationStatus" open="(" separator="," close=")">
+                            #{item}
+                        </foreach>
+                    </if>
                 </where>
                 GROUP BY quotation_no)
             </if>

+ 11 - 2
ruoyi-ui-vue2/src/views/board/projectFollow/index.vue

@@ -34,8 +34,13 @@
         >
           <el-table-column label="No" type="index" width="60"></el-table-column>
           <!-- 项目编号-->
-          <el-table-column :label="$t('project.no')" prop="projectNo" show-overflow-tooltip
-                           width="150"></el-table-column>
+          <Column :label="$t('project.no')" prop="projectNo"  width="200">
+            <template #default="{ row }">
+              <span @click="handleView(row)" class="link-type">{{ row.projectNo }}</span>
+            </template>
+          </Column>
+<!--          <el-table-column :label="$t('project.no')" prop="projectNo" show-overflow-tooltip-->
+<!--                           width="150"></el-table-column>-->
           <!--项目名称-->
           <el-table-column :label="$t('project.name')" prop="projectName" show-overflow-tooltip
                            width="200"></el-table-column>
@@ -195,6 +200,10 @@ export default {
 
 
   methods: {
+    /** 查看按钮操作 */
+    handleView(row) {
+      this.$tab.openPage(this.$t('project.view'), '/project-view/' + row.projectId);
+    },
     getI18nDictName,
     getLocalTime,
     initChart() {

+ 31 - 123
ruoyi-ui-vue2/src/views/contract/index.vue

@@ -20,28 +20,47 @@
         </Column>
         <!-- 合同名 -->
         <Column :label="$t('lift.contractName')"  :searchParams="queryParams" :showSearch="true" prop="contractName" />
+
+        <!-- 签单日期1 -->
+        <Column :label="$t('contract.signingDate')"  :searchParams="queryParams" :showSearch="true" prop="signingDate" search-type="dateRange"  width="250"/>
         <!--区域-->
         <Column :label="$t('user.area')" prop="areaId" :showSearch="true" searchType="select" :searchDict="areaList" :searchParams="queryParams" :min-width="200" :selectMore="true"/>
         <!--国家-->
         <Column :label="$t('account.country')" prop="countryId" :showSearch="true" searchType="select" :searchDict="curCountryOps"  :searchParams="queryParams" :min-width="200" :selectMore="true"/>
         <!--城市-->
         <Column :label="$t('project.city')" prop="city" show-search :searchParams="queryParams"/>
-        <!--业务员-->
-        <Column :label="$t('contract.salesman')" prop="salesman" width="250" show-search :searchParams="queryParams">
-          <template #default="{ row }">
-            {{ getNickName(row.salesman) }}
-          </template>
-        </Column>
         <!--代理商-->
         <Column :label="$t('agent.agent')" prop="agentId" :showSearch="true" searchType="select" :searchDict="curAgentOps" :searchParams="queryParams" :min-width="200" :selectMore="true"/>
-        <!--终端客户  v-hasRole="['system_manager', 'sales_director']" -->
-        <Column :label="$t('contract.endCustomers')" prop="endCustomersName" show-search :searchParams="queryParams"/>
         <!--贸易条款-->
         <Column :label="$t('contract.tradeTerms')" :searchDict="dict.type.contract_trade_terms" :showSearch="true" prop="tradeTerms" selectProp="origins"
                 searchType="select" selectMore :searchParams="queryParams"/>
+
+        <!--付款方式-->
+        <Column :label="$t('contract.paymentMethod')" :searchParams="queryParams" :showSearch="true" prop="paymentMethod" searchType="select"  selectMore
+                :searchDict="dict.type.contract_payment_method"/>
+
         <!--销售模式-->
         <Column :label="$t('contract.salesModel')" :searchDict="dict.type.contract_sales_model" :showSearch="true" prop="salesModel" selectProp="origins"
                 searchType="select" selectMore :searchParams="queryParams"/>
+        <!--业务员-->
+        <Column :label="$t('contract.salesman')" prop="salesman" width="250" show-search :searchParams="queryParams">
+          <template #default="{ row }">
+            {{ getNickName(row.salesman) }}
+          </template>
+        </Column>
+
+        <!--终端客户  v-hasRole="['system_manager', 'sales_director']" -->
+        <Column :label="$t('contract.endCustomers')" prop="endCustomersName" show-search :searchParams="queryParams"/>
+
+        <!--币种10-->
+        <Column  :label="$t('contract.currencyId')"  prop="currencyId" searchType="select" :searchDict="dict.type.currency_type" />
+
+        <!--金额31-->
+        <Column :label="$t('lift.amountOfMoney')" :searchParams="queryParams"  prop="amount"  align="right" >
+          <template #default="{ row }">
+            <span>{{ toDecimal2(numFormat(row.amount)) }}</span>
+          </template>
+        </Column>
         <!--地址-->
         <Column :label="$t('contract.address')" prop="address" show-search :searchParams="queryParams"/>
         <!--电话-->
@@ -85,34 +104,6 @@
         </Column>
       </template>
     </card-table>
-<!--    <DialogPage ref="approveDialog" :title="approveTitle" maxWidth="800px" :disabled="approveDisabled" label-position="top" :header="true">-->
-<!--      -->
-<!--    </DialogPage>-->
-    <!--审批dialog-->
-    <el-dialog :close-on-click-modal="false" :title="approveTitle" :visible.sync="approveOpen" append-to-body
-               custom-class="edit-dialog" width="24vw" >
-      <el-form ref="equipmentForm" :model="approveForm" :rules="approveFormRules" label-position="top" label-width="100px">
-        <el-row :gutter="24">
-          <el-col :span="24">
-            <!-- 合同号-->
-            <Input :label = "$t('contract.contractNo')"  prop="contractNo" width="100%" disabled/>
-          </el-col>
-        </el-row>
-        <el-row :gutter="24">
-          <el-col :span="24">
-            <!-- 合同号-->
-            <Input label = "备注"  prop="approveRemark" width="100%" type="textarea" style="height: 100px" :rows="5" :maxlength="500"/>
-          </el-col>
-        </el-row>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <!--通过-->
-        <el-button icon="el-icon-circle-check" type="success" @click="approveYes">{{ $t('contract.approveYes') }}</el-button>
-        <!--驳回-->
-        <el-button icon="el-icon-circle-close" type="primary" @click="approveNo">{{ $t('contract.approveNo') }}</el-button>
-        <el-button icon="el-icon-remove-outline" @click="approveCancel">{{ $t('common.cancel') }}</el-button>
-      </div>
-    </el-dialog>
   </div>
 </template>
 
@@ -211,7 +202,7 @@ export default {
   name: "Contract",
   inject: ["main"],
   components: {TextBox, ColorDictTag, CardTable, DialogPage, MoreBtn, Column},
-  dicts: [ 'audit_status','agent_type', 'agent_level', 'contract_approval_status','contract_sales_model','contract_trade_terms'],
+  dicts: [ 'currency_type','contract_payment_method','audit_status','agent_type', 'agent_level', 'contract_approval_status','contract_sales_model','contract_trade_terms'],
   computed: {
     tcAgentHistory() {
       return tcAgentHistory
@@ -250,12 +241,6 @@ export default {
       contractList: [],
       // 弹出层标题
       title: "",
-
-      approveTitle:VueI18n.t('contract.approve'),
-      approveOpen:false,
-      approveFormRules: {
-
-      },
       approveForm:[],
       // 是否显示弹出层
       open: false,
@@ -389,14 +374,9 @@ export default {
     },
     /** 重置按钮操作 todo:待补充*/
     resetQuery() {
-      this.$set(this.queryParams, 'agentLevelName', null)
-      this.$set(this.queryParams, 'agentTypeName', null)
       this.$set(this.queryParams, 'contractNo', null)
       this.$set(this.queryParams, 'contractName', null)
-      this.$set(this.queryParams, 'contractCustomer', null)
-      this.$set(this.queryParams, 'versionNo', null)
       this.$set(this.queryParams, 'salesman', null)
-      this.$set(this.queryParams, 'endCustomers', null)
       this.$set(this.queryParams, 'tradeTerms', null)
       this.$set(this.queryParams, 'salesModel', null)
       this.$set(this.queryParams, 'approveStatus', null)
@@ -408,7 +388,9 @@ export default {
       this.$set(this.queryParams, 'agentId', null)
       this.$set(this.queryParams, 'countries', null)
       this.$set(this.queryParams, 'origins', null)
-
+      this.$set(this.queryParams, 'sign', null)
+      this.$set(this.queryParams, 'signingDate', null)
+      this.$set(this.queryParams, 'paymentMethod', null)
       this.$set(this.queryParams, 'address', null)
       this.$set(this.queryParams, 'telephone', null)
       this.$set(this.queryParams, 'email', null)
@@ -416,11 +398,7 @@ export default {
       this.$set(this.queryParams, 'shipmentPort', null)
       this.$set(this.queryParams, 'destinationPort', null)
       this.$set(this.queryParams, 'shipmentDeadline', null)
-
       this.$set(this.queryParams, 'flowStatus', null)
-
-
-
       this.handleQuery();
     },
     // 多选框选中数据
@@ -527,11 +505,6 @@ export default {
     },
     //打开审批按钮
     handleApprove(row){
-      // this.approveForm = []
-      // getContractById(row.id).then(response => {
-      //   this.approveForm = response.data;
-      // })
-      // this.approveOpen = true
       this.$tab.openPage('合同审批', '/contract-edit/index/' + row.id, {type: 'approve'});
     },
     handleAmendment(row){
@@ -597,71 +570,6 @@ export default {
       }
 
     },
-    //审核通过
-    async approveYes(){
-      this.$set(this.approveForm,"approveStatus","2")
-      let bargainObj = {
-        paymentMethod:this.approveForm.paymentMethod,
-        paymentRatio:this.approveForm.paymentRatio
-      }
-
-      let auditForm = {
-        // 审批流
-        auditFlow: this.approveForm.paymentMethod === '1' || this.approveForm.paymentRatio !=='1' ? 3 :4,
-        // 业务id  报价id
-        businessId: this.approveForm.id,
-        // 审批结果
-        status: 200,
-        // 备注
-        remark: this.approveForm.approveRemark,
-        // 业务参数
-        businessObj: bargainObj
-      }
-      const response  = await audit(auditForm)
-      if(response && response.code == 200){
-        const res = await editFlow({...this.approveForm})
-        if(res && res.code == 200){
-          this.$message.success(this.$t('common.operateSuccess'))
-        }else{
-          this.$message.error("操作失败")
-        }
-      }
-      await this.getList()
-      this.approveOpen = false
-
-    },
-    //审核驳回
-    async approveNo(){
-      this.$set(this.approveForm,"approveStatus","1")
-      let bargainObj = {}
-      let auditForm = {
-        // 审批流
-        auditFlow:this.approveForm.paymentMethod === '1' || this.approveForm.paymentRatio !=='1' ? 3 :4,
-        // 业务id  报价id
-        businessId: this.approveForm.id,
-        // 审批结果
-        status: 30,
-        // 备注
-        remark: this.approveForm.approveRemark,
-        // 业务参数
-        businessObj: bargainObj
-      }
-      const response  = await audit(auditForm)
-      if(response && response.code == 200){
-        const res = await updateContract({...this.approveForm})
-        if(res && res.code == 200){
-          this.$message.success(this.$t('common.operateSuccess'))
-          this.approveOpen = false
-        }else{
-          this.$message.error("操作失败")
-        }
-      }
-      await this.getList()
-      this.approveOpen = false
-    },
-    approveCancel(){
-      this.approveOpen = false
-    },
     hasPermission(row){
       // let flag = true;
       //销售VP角色,可以任意操作

+ 6 - 6
ruoyi-ui-vue2/src/views/contract/lift/index.vue

@@ -95,7 +95,7 @@
         <!--终端客户18  v-hasRole="['system_manager', 'sales_director']" -->
         <Column :label="$t('contract.endCustomers')" prop="endCustomersName" show-search :searchParams="queryParams" v-if="checkPermi(['user:contract:lift:endCustomers'])"/>
 
-        <!--预计排产期19-->
+        <!--预计排产期19-->
         <Column :label="$t('lift.expectedProductionScheduleDate')" :searchParams="queryParams" :showSearch="true" v-if="checkPermi(['user:contract:lift:expectedProductionScheduleDate'])"
                 sortable="custom" prop="expectedProductionScheduleDate" search-type="dateRange"  width="250"/>
         <!--评审折扣20-->
@@ -230,7 +230,7 @@
         <!--希望排产日期-->
         <Column :label="$t('lift.hopeToScheduleProductionDate')" :searchParams="queryParams" :showSearch="true" prop="hopeToScheduleProductionDate" v-if="checkPermi(['user:contract:lift:hopeToScheduleProductionDate'])"
                 sortable="custom" search-type="dateRange" width="250"/>
-        <!--实际排产日期-->
+        <!--排产交期-->
         <Column :label="$t('lift.actualProductionScheduleDate')" :searchParams="queryParams" :showSearch="true" prop="actualProductionScheduleDate" v-if="checkPermi(['user:contract:lift:actualProductionScheduleDate'])"
                 sortable="custom" search-type="dateRange" width="250"/>
 
@@ -239,7 +239,7 @@
                 search-type="dateRange" width="250" sortable="custom"/>
 
 
-        <!--生产订单状态-->
+        <!--项目状态-->
         <Column :label="$t('lift.productionOrderStatus')" :searchParams="queryParams" :showSearch="true" prop="productionOrderStatus" searchType="select" v-if="checkPermi(['user:contract:lift:productionOrderStatus'])"
                 selectMore   :searchDict="dict.type.production_order_status"/>
 
@@ -320,11 +320,11 @@
           </Column >
           <!--报价折扣14-->
           <InputNumberColumn  :label="$t('lift.quotationDiscount')"  prop="quotationDiscount" :step="0.0001"  :precision="4"  :min="0" :max="100" v-if="checkPermi(['user:contract:lift:quotationDiscountEdit'])"/>
-          <!--预计排产期19-->
+          <!--预计排产期19-->
           <DatePickSelectColumn  :label="$t('lift.expectedProductionScheduleDate')"  v-if="checkPermi(['user:contract:lift:expectedProductionScheduleDateEdit'])" prop="expectedProductionScheduleDate"  width="250"></DatePickSelectColumn>
           <!--希望排产日期-->
           <DatePickSelectColumn  :label="$t('lift.hopeToScheduleProductionDate')"  prop="hopeToScheduleProductionDate" v-if="checkPermi(['user:contract:lift:hopeToScheduleProductionDateEdit'])" width="250"></DatePickSelectColumn>
-          <!--实际排产日期-->
+          <!--排产交期-->
           <DatePickSelectColumn  :label="$t('lift.actualProductionScheduleDate')"  prop="actualProductionScheduleDate" v-if="checkPermi(['user:contract:lift:actualProductionScheduleDateEdit'])" width="250"></DatePickSelectColumn>
           <!--排产日期21-->
           <DatePickSelectColumn  :label="$t('lift.productionScheduleDate')"  prop="productionScheduleDate" v-if="checkPermi(['user:contract:lift:productionScheduleDateEdit'])" width="250"></DatePickSelectColumn>
@@ -336,7 +336,7 @@
           <DatePickSelectColumn  :label="$t('lift.actualDeliveryDate')"  prop="actualDeliveryDate" v-if="checkPermi(['user:contract:lift:actualDeliveryDateEdit'])" width="250"></DatePickSelectColumn>
           <!--港口-->
           <InputColumn  :label="$t('lift.port')"  prop="port"  v-if="checkPermi(['user:contract:lift:portEdit'])"/>
-          <!--生产订单状态-->
+          <!--项目状态-->
           <DictSelectColumn  :label="$t('lift.productionOrderStatus')"  prop="productionOrderStatus" searchType="select" :searchDict="dict.type.production_order_status" v-if="checkPermi(['user:contract:lift:productionOrderStatusEdit'])"/>
           <!--评审折扣20-->
           <InputNumberColumn  :label="$t('lift.reviewDiscount')"  prop="reviewDiscount" v-if="checkPermi(['user:contract:lift:reviewDiscountEdit'])" :step="0.0001"  :precision="4"  :min="0" :max="100"/>

+ 1 - 1
ruoyi-ui-vue2/src/views/crmManagement/project/index.vue

@@ -88,7 +88,7 @@
         <Column :label="$t('project.priceTotal')" prop="priceTotal" align="right">
           <template #default="{ row }">
             <!--保留两位小数-->
-            <span>{{ row.priceTotalStr }}</span>
+            <span>{{ row.priceTotalStr == '.00'?"-":row.priceTotalStr }}</span>
           </template>
         </Column>
 

+ 3 - 3
ruoyi-ui-vue2/src/views/index.vue

@@ -75,7 +75,7 @@
             </Col>
 
             <!--报价-->
-            <Col :span="3" style="cursor: pointer" @click="handleComingClick(5)">
+            <Col :span="3" style="cursor: pointer"  v-has-permi="['business:quotation:list']" @click="handleComingClick(5)">
             <Row>
               <Col class="guideImage">
               <div class="guideInner" style="background-color:#F0F0FF;width: 66px;height: 66px">
@@ -88,7 +88,7 @@
             </Row>
             </Col>
             <!--土建出图-->
-            <Col :span="3" style="cursor: pointer" @click="handleComingClick(6)">
+            <Col :span="3" style="cursor: pointer"  v-has-permi="['civil:engineering:list']" @click="handleComingClick(6)">
             <Row>
               <Col class="guideImage">
               <div class="guideInner" style="background-color:#F0F0FF;width: 66px;height: 66px">
@@ -101,7 +101,7 @@
             </Row>
             </Col>
             <!--培训考核-->
-            <Col :span="3" style="cursor: pointer" @click="handleComingClick(7)">
+            <Col :span="3" style="cursor: pointer"  v-has-permi="['business:follow:list']" @click="handleComingClick(7)">
             <Row>
               <Col class="guideImage">
               <div class="guideInner" style="background-color:#F0F0FF;width: 66px;height: 66px">

+ 4 - 4
ruoyi-ui-vue2/src/views/quotation/quotation.vue

@@ -154,8 +154,8 @@
     <el-dialog :title="$t('quotation.additionalCost')" :visible.sync="open" :close-on-click-modal="false" width="60%">
       <!--      <div class="card-title mb16">{{ $t('lead.baseInfo') }}</div>-->
       <!--      <div>-->
-      <el-form :model="form" label-width="100px">
-        <el-row>
+      <el-form :model="form" label-width="100px" label-position="top">
+        <el-row :gutter="24" >
           <el-col :span="12">
             <!--项目编号 -->
             <el-form-item :label="$t('project.projectNo')" prop="projectNo">
@@ -169,7 +169,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row>
+        <el-row :gutter="24" >
           <el-col :span="12">
             <!--币种 -->
             <el-form-item :label="$t('project.currency')" prop="currency">
@@ -186,7 +186,7 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row>
+        <el-row :gutter="24" >
           <el-col :span="12">
             <!--版本 -->
             <el-form-item :label="$t('common.version')" prop="accountName">