|  | @@ -36,6 +36,7 @@ interface defaultState {
 | 
												
													
														
															|  |    SpringDialogProps: any;
 |  |    SpringDialogProps: any;
 | 
												
													
														
															|  |    currentArea: any;
 |  |    currentArea: any;
 | 
												
													
														
															|  |    AreaList: any;
 |  |    AreaList: any;
 | 
												
													
														
															|  | 
 |  | +  bednetVarList: any;
 | 
												
													
														
															|  |  }
 |  |  }
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  |  /**
 |  |  /**
 | 
												
											
												
													
														
															|  | @@ -131,7 +132,8 @@ export const useHooks = (t?: any) => {
 | 
												
													
														
															|  |      SpringDialogRef: null,
 |  |      SpringDialogRef: null,
 | 
												
													
														
															|  |      SpringDialogProps: {},
 |  |      SpringDialogProps: {},
 | 
												
													
														
															|  |      currentArea: null,
 |  |      currentArea: null,
 | 
												
													
														
															|  | -    AreaList: []
 |  | 
 | 
												
													
														
															|  | 
 |  | +    AreaList: [],
 | 
												
													
														
															|  | 
 |  | +    bednetVarList: []
 | 
												
													
														
															|  |    });
 |  |    });
 | 
												
													
														
															|  |    state.orderStatus = inject("orderStatus", "");
 |  |    state.orderStatus = inject("orderStatus", "");
 | 
												
													
														
															|  |  
 |  |  
 | 
												
											
												
													
														
															|  | @@ -1824,6 +1826,842 @@ export const useHooks = (t?: any) => {
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  |    const columnsBednet = ref<ColumnProps<any>[]>([{}]);
 |  |    const columnsBednet = ref<ColumnProps<any>[]>([{}]);
 | 
												
													
														
															|  |  
 |  |  
 | 
												
													
														
															|  | 
 |  | +  /**
 | 
												
													
														
															|  | 
 |  | +   * @description 计算价格
 | 
												
													
														
															|  | 
 |  | +   */
 | 
												
													
														
															|  | 
 |  | +  const wf_cmp_cb = async () => {
 | 
												
													
														
															|  | 
 |  | +    const { _mainData, enumMap, baseformRef } = state.LjDetailRef;
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    wf_clear();
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    wf_set_if_doublespring();
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (!wf_check_rule()) return;
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (!wf_check_required()) return;
 | 
												
													
														
															|  | 
 |  | +  };
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  /**
 | 
												
													
														
															|  | 
 |  | +   * @description 清除运算结果
 | 
												
													
														
															|  | 
 |  | +   */
 | 
												
													
														
															|  | 
 |  | +  const wf_clear = () => {
 | 
												
													
														
															|  | 
 |  | +    const { _mainData } = state.LjDetailRef;
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    _mainData.spring_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.spring_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.total_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.total_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.total_fees_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.total_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.nottax_factory_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.nottax_dept_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.dept_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.foreign_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.taxes = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.snake_wire_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.pocket_around_spring_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.pocket_around_fabrics_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.hard_around_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.hard_around_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.glue_price = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.felt_price = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.felt_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.felt_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.glue_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.fabrics1_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.fabrics2_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.side_iron_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.side_iron_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.side_iron_price = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.side_iron_lossrate = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.cnail_price = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.cnail_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.cnail_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.sponge_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.sponge_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.edge_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.edge_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.fork_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.fork_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.rsorwa_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.rsorwa_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.sponge_drilling_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.sponge_price = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.edge_price = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.fork_price = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.rsorwa_price = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.felt_mtrl_x_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.packet_mtrl_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.packet_hr_cost = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.sum_weight = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.spring_weight_qty = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.side_iron_weight_qty = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.hard_around_weight_qty = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.fabrics1_weight_qty = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.fabrics2_weight_qty = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.felt_weight_qty = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.cnail_weight_qty = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.sponge_weight_qty = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.sponge_weight_tc_qty = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.fork_weight_qty = 0;
 | 
												
													
														
															|  | 
 |  | +    _mainData.edge_weight_qty = 0;
 | 
												
													
														
															|  | 
 |  | +  };
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  const wf_set_if_doublespring = () => {
 | 
												
													
														
															|  | 
 |  | +    const { _mainData, enumMap } = state.LjDetailRef;
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    const deptEnum = enumMap.get("deptid");
 | 
												
													
														
															|  | 
 |  | +    const bednettypeEnum = enumMap.get("bednettypeid");
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    let deptItem = deptEnum.find((item: any) => Number(item.value) == _mainData.deptid);
 | 
												
													
														
															|  | 
 |  | +    let typeItem = bednettypeEnum.find((item: any) => Number(item.value) == _mainData.bednettypeid);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (typeItem.indexOf("圆网") > -1 && deptItem.indexOf("外贸") === -1 && deptItem.indexOf("国外") === -1) {
 | 
												
													
														
															|  | 
 |  | +      _mainData.if_doublespring = 1;
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +  };
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  const wf_check_rule = (): boolean => {
 | 
												
													
														
															|  | 
 |  | +    let { fullData: mxlist } = state.vxeTableMxRef.element.getTableData();
 | 
												
													
														
															|  | 
 |  | +    let { fullData: springlist } = state.vxeTableMxSpringRef.element.getTableData();
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    for (let mx of mxlist) {
 | 
												
													
														
															|  | 
 |  | +      //1.如果没有四周加硬   左边 弹簧个数排列宽   等于   右边每行  弹簧个数排列宽      , 左边 弹簧个数排列长  等于  右边每行合计  弹簧个数排列长
 | 
												
													
														
															|  | 
 |  | +      if (Number(mx.if_hard_around) === 0) {
 | 
												
													
														
															|  | 
 |  | +        // 左边 弹簧个数排列宽   等于   右边每行  弹簧个数排列宽
 | 
												
													
														
															|  | 
 |  | +        let sum_length = 0;
 | 
												
													
														
															|  | 
 |  | +        for (let spring of springlist) {
 | 
												
													
														
															|  | 
 |  | +          sum_length += parseFloat(spring.spring_qty_length);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +          if (Number(mx.spring_qty_width) != Number(spring.spring_qty_width)) {
 | 
												
													
														
															|  | 
 |  | +            ElMessage({
 | 
												
													
														
															|  | 
 |  | +              type: "info",
 | 
												
													
														
															|  | 
 |  | +              message: `多区袋装明细列表,第${spring.pid}行,弹簧个数排列宽填写错误!`
 | 
												
													
														
															|  | 
 |  | +            });
 | 
												
													
														
															|  | 
 |  | +            return false;
 | 
												
													
														
															|  | 
 |  | +          }
 | 
												
													
														
															|  | 
 |  | +        }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +        if (parseFloat(mx.spring_qty_length) != sum_length) {
 | 
												
													
														
															|  | 
 |  | +          ElMessage({
 | 
												
													
														
															|  | 
 |  | +            type: "info",
 | 
												
													
														
															|  | 
 |  | +            message: `床网明细列表 弹簧个数排列长${parseFloat(
 | 
												
													
														
															|  | 
 |  | +              mx.spring_qty_length
 | 
												
													
														
															|  | 
 |  | +            )}不等于 多区袋装明细列表 弹簧个数排列长合计${sum_length}!`
 | 
												
													
														
															|  | 
 |  | +          });
 | 
												
													
														
															|  | 
 |  | +          return false;
 | 
												
													
														
															|  | 
 |  | +        }
 | 
												
													
														
															|  | 
 |  | +      } else if (Number(mx.if_hard_around) === 1) {
 | 
												
													
														
															|  | 
 |  | +        // 左边 弹簧个数排列宽   小于   右边每行  弹簧个数排列宽
 | 
												
													
														
															|  | 
 |  | +        let sum_length = 0;
 | 
												
													
														
															|  | 
 |  | +        for (let spring of springlist) {
 | 
												
													
														
															|  | 
 |  | +          sum_length += parseFloat(spring.spring_qty_length);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +          if (Number(mx.spring_qty_width) < Number(spring.spring_qty_width)) {
 | 
												
													
														
															|  | 
 |  | +            ElMessage({
 | 
												
													
														
															|  | 
 |  | +              type: "info",
 | 
												
													
														
															|  | 
 |  | +              message: `多区袋装明细列表,第${spring.pid}行,弹簧个数排列宽填写错误!`
 | 
												
													
														
															|  | 
 |  | +            });
 | 
												
													
														
															|  | 
 |  | +            return false;
 | 
												
													
														
															|  | 
 |  | +          }
 | 
												
													
														
															|  | 
 |  | +        }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +        //左边 弹簧个数排列长  小于  右边每行合计  弹簧个数排列长
 | 
												
													
														
															|  | 
 |  | +        if (parseFloat(mx.spring_qty_length) < sum_length) {
 | 
												
													
														
															|  | 
 |  | +          ElMessage({
 | 
												
													
														
															|  | 
 |  | +            type: "info",
 | 
												
													
														
															|  | 
 |  | +            message: `床网明细列表 弹簧个数排列长${parseFloat(
 | 
												
													
														
															|  | 
 |  | +              mx.spring_qty_length
 | 
												
													
														
															|  | 
 |  | +            )}小于 多区袋装明细列表 弹簧个数排列长合计${sum_length}!`
 | 
												
													
														
															|  | 
 |  | +          });
 | 
												
													
														
															|  | 
 |  | +          return false;
 | 
												
													
														
															|  | 
 |  | +        }
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    return true;
 | 
												
													
														
															|  | 
 |  | +  };
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  const wf_check_required = async (): Promise<boolean> => {
 | 
												
													
														
															|  | 
 |  | +    const { _mainData, enumMap } = state.LjDetailRef;
 | 
												
													
														
															|  | 
 |  | +    let { fullData: mxlist } = state.vxeTableMxRef.element.getTableData();
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    //检查有没有填写床网高
 | 
												
													
														
															|  | 
 |  | +    for (let mx of mxlist) {
 | 
												
													
														
															|  | 
 |  | +      if (mx.bednet_height + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `请填写床网高!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      } else {
 | 
												
													
														
															|  | 
 |  | +        _mainData.mattress_height = parseFloat(mx.bednet_height);
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    // 检查有没有 填写 填充海绵高
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.sponge_tc_mtrlid + 0 > 0) {
 | 
												
													
														
															|  | 
 |  | +      if (_mainData.sponge_tc_thickness + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `请填写填充海绵厚度!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      if (_mainData.sponge_tc_height + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `请填写填充海绵厚度!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      if ((_mainData.sponge_tc_thickness + 0 > 0 || _mainData.sponge_tc_height + 0 > 0) && _mainData.sponge_tc_mtrlid + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `请选择填充海绵物料!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    // 如果 没有填写 海绵高和封边高  自动等于 床网高
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.sponge_mtrlid > 0 && _mainData.sponge_height + 0 <= 0) _mainData.sponge_height = _mainData.mattress_height;
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.edge_mtrlid > 0 && _mainData.edge_height + 0 <= 0) _mainData.edge_height = _mainData.mattress_height;
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    _mainData.commission = _mainData.commission ?? 1;
 | 
												
													
														
															|  | 
 |  | +    _mainData.taxrate = _mainData.taxrate ?? 1;
 | 
												
													
														
															|  | 
 |  | +    _mainData.other_rate = _mainData.other_rate ?? 1;
 | 
												
													
														
															|  | 
 |  | +    _mainData.moneyrate = _mainData.moneyrate ?? 1;
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.commission < 1) {
 | 
												
													
														
															|  | 
 |  | +      ElMessage({
 | 
												
													
														
															|  | 
 |  | +        type: "info",
 | 
												
													
														
															|  | 
 |  | +        message: `佣金点数不能小于1!`
 | 
												
													
														
															|  | 
 |  | +      });
 | 
												
													
														
															|  | 
 |  | +      return false;
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.taxrate < 1) {
 | 
												
													
														
															|  | 
 |  | +      ElMessage({
 | 
												
													
														
															|  | 
 |  | +        type: "info",
 | 
												
													
														
															|  | 
 |  | +        message: `税率不能小于1!`
 | 
												
													
														
															|  | 
 |  | +      });
 | 
												
													
														
															|  | 
 |  | +      return false;
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.other_rate < 1) {
 | 
												
													
														
															|  | 
 |  | +      ElMessage({
 | 
												
													
														
															|  | 
 |  | +        type: "info",
 | 
												
													
														
															|  | 
 |  | +        message: `额外点数不能小于1!`
 | 
												
													
														
															|  | 
 |  | +      });
 | 
												
													
														
															|  | 
 |  | +      return false;
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.packtype && _mainData.packtype.length > 0) {
 | 
												
													
														
															|  | 
 |  | +      _mainData.packtype = _mainData.packtype.trim();
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      if (_mainData.packtype != "不压不卷" && _mainData.packqty + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `请填写包装数量!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      if (_mainData.packtype != "不压不卷" && _mainData.packtype != "裸包装" && _mainData.transport_type + "" == "") {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `请选择运输方式!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      if (_mainData.packtype == "卷包" && _mainData.packmtrl + "" == "") {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `请选择包装材料!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    await wf_factory_profitrate();
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.dept_profitrate + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +      ElMessage({
 | 
												
													
														
															|  | 
 |  | +        type: "info",
 | 
												
													
														
															|  | 
 |  | +        message: `部门利润率不能为0!`
 | 
												
													
														
															|  | 
 |  | +      });
 | 
												
													
														
															|  | 
 |  | +      return false;
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.bednettypeid + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +      ElMessage({
 | 
												
													
														
															|  | 
 |  | +        type: "info",
 | 
												
													
														
															|  | 
 |  | +        message: `请选择床网类别!`
 | 
												
													
														
															|  | 
 |  | +      });
 | 
												
													
														
															|  | 
 |  | +      return false;
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.sponge_mtrlid + 0 > 0 && _mainData.sponge_thickness + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +      ElMessage({
 | 
												
													
														
															|  | 
 |  | +        type: "info",
 | 
												
													
														
															|  | 
 |  | +        message: `请填写海绵厚度!`
 | 
												
													
														
															|  | 
 |  | +      });
 | 
												
													
														
															|  | 
 |  | +      return false;
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    if (_mainData.sponge_mtrlid + 0 == 0 && _mainData.sponge_thickness + 0 > 0) {
 | 
												
													
														
															|  | 
 |  | +      ElMessage({
 | 
												
													
														
															|  | 
 |  | +        type: "info",
 | 
												
													
														
															|  | 
 |  | +        message: `请选择海绵物料!`
 | 
												
													
														
															|  | 
 |  | +      });
 | 
												
													
														
															|  | 
 |  | +      return false;
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    const bednettypeEnum = enumMap.get("bednettypeid");
 | 
												
													
														
															|  | 
 |  | +    let typeItem = bednettypeEnum.find((item: any) => Number(item.value) == _mainData.bednettypeid);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    for (let mx of mxlist) {
 | 
												
													
														
															|  | 
 |  | +      if (mx.bednet_height + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `第${mx.pid}行,请填写床网高!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +      if (mx.spring_qty_width + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `第${mx.pid}行,请填写弹簧排列个数-宽!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +      if (mx.spring_qty_length + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `第${mx.pid}行,请填写弹簧排列个数-长!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      if (typeItem.indexOf("袋装网") > -1 && mx.fabrics1_mtrlid + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `第${mx.pid}行,请选择入袋无纺布!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      if (mx.if_side_iron > 0 && mx.side_iron_qty + 0 == 0) {
 | 
												
													
														
															|  | 
 |  | +        ElMessage({
 | 
												
													
														
															|  | 
 |  | +          type: "info",
 | 
												
													
														
															|  | 
 |  | +          message: `第${mx.pid}行,请填写边铁条数!`
 | 
												
													
														
															|  | 
 |  | +        });
 | 
												
													
														
															|  | 
 |  | +        return false;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    return true;
 | 
												
													
														
															|  | 
 |  | +  };
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  const wf_replace_expression = (arg_str: string, mx: any) => {
 | 
												
													
														
															|  | 
 |  | +    const { _mainData, enumMap } = state.LjDetailRef;
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    // 替换中文符号
 | 
												
													
														
															|  | 
 |  | +    arg_str = arg_str.replace(/(/g, " ( ").replace(/)/g, " ) ");
 | 
												
													
														
															|  | 
 |  | +    arg_str = arg_str.replace(/,/g, " , ");
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    const bednettypeEnum = enumMap.get("bednettypeid");
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    let typeItem = bednettypeEnum.find((item: any) => Number(item.value) == _mainData.bednettypeid);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    // 四周加硬逻辑
 | 
												
													
														
															|  | 
 |  | +    if (mx.if_hard_around + 0 === 1) {
 | 
												
													
														
															|  | 
 |  | +      let ls_temp_str = 0;
 | 
												
													
														
															|  | 
 |  | +      if (typeItem.indexOf("袋装") > -1) {
 | 
												
													
														
															|  | 
 |  | +        ls_temp_str = (mx.hard_around_row + 0) * 2;
 | 
												
													
														
															|  | 
 |  | +      } else {
 | 
												
													
														
															|  | 
 |  | +        ls_temp_str = mx.hard_around_row + 0;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      let ls_temp_str_all = ` ( 【弹簧排列个数-宽】 - ${ls_temp_str} ) `;
 | 
												
													
														
															|  | 
 |  | +      arg_str = replaceArgStr(arg_str, "【弹簧排列个数-宽】", ls_temp_str_all);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      ls_temp_str_all = ` ( 【弹簧计算个数(宽)】  -   ${ls_temp_str} ) `;
 | 
												
													
														
															|  | 
 |  | +      arg_str = replaceArgStr(arg_str, "【弹簧计算个数(宽)】", ls_temp_str_all);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      ls_temp_str_all = ` ( 【弹簧排列个数-长】  -   ${ls_temp_str} ) `;
 | 
												
													
														
															|  | 
 |  | +      arg_str = replaceArgStr(arg_str, "【弹簧排列个数-长】", ls_temp_str_all);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      ls_temp_str_all = ` ( 【弹簧计算个数(长)】  -   ${ls_temp_str} ) `;
 | 
												
													
														
															|  | 
 |  | +      arg_str = replaceArgStr(arg_str, "【弹簧计算个数(长)】", ls_temp_str_all);
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    // 四周口袋逻辑
 | 
												
													
														
															|  | 
 |  | +    if (mx.if_pocket_around + 0 === 1) {
 | 
												
													
														
															|  | 
 |  | +      let ls_temp_str = 0;
 | 
												
													
														
															|  | 
 |  | +      if (typeItem.indexOf("袋装") > -1) {
 | 
												
													
														
															|  | 
 |  | +        ls_temp_str = (mx.pocket_around_row + 0) * 2;
 | 
												
													
														
															|  | 
 |  | +      } else {
 | 
												
													
														
															|  | 
 |  | +        ls_temp_str = mx.pocket_around_row + 0;
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      let ls_temp_str_all = ` ( 【弹簧排列个数-宽】  -   ${ls_temp_str} ) `;
 | 
												
													
														
															|  | 
 |  | +      arg_str = replaceArgStr(arg_str, "【弹簧排列个数-宽】", ls_temp_str_all);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      ls_temp_str_all = ` ( 【弹簧计算个数(宽)】  -   ${ls_temp_str} ) `;
 | 
												
													
														
															|  | 
 |  | +      arg_str = replaceArgStr(arg_str, "【弹簧计算个数(宽)】", ls_temp_str_all);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      ls_temp_str_all = ` ( 【弹簧排列个数-长】  -   ${ls_temp_str} ) `;
 | 
												
													
														
															|  | 
 |  | +      arg_str = replaceArgStr(arg_str, "【弹簧排列个数-长】", ls_temp_str_all);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +      ls_temp_str_all = ` ( 【弹簧计算个数(长)】  -   ${ls_temp_str} ) `;
 | 
												
													
														
															|  | 
 |  | +      arg_str = replaceArgStr(arg_str, "【弹簧计算个数(长)】", ls_temp_str_all);
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    return arg_str;
 | 
												
													
														
															|  | 
 |  | +  };
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  const wf_cmp_spring_mtrl_cost_dw2 = (arg_str: string, mx: any) => {
 | 
												
													
														
															|  | 
 |  | +    const { _mainData, enumMap } = state.LjDetailRef;
 | 
												
													
														
															|  | 
 |  | +    // 替换中文符号
 | 
												
													
														
															|  | 
 |  | +    arg_str = arg_str.replace(/(/g, " ( ").replace(/)/g, " ) ");
 | 
												
													
														
															|  | 
 |  | +    arg_str = arg_str.replace(/,/g, " , ");
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    const bednettypeEnum = enumMap.get("bednettypeid");
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    let typeItem = bednettypeEnum.find((item: any) => Number(item.value) == _mainData.bednettypeid);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【床垫宽】", _mainData.mattress_width);
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【床垫长】", _mainData.mattress_length);
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【床垫高】", _mainData.mattress_height);
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【双簧】", _mainData.if_doublespring);
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【床网类别】", typeItem.typename);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    for (let item of state.bednetVarList) {
 | 
												
													
														
															|  | 
 |  | +      if (item.varvalue + 0 <= 0) continue;
 | 
												
													
														
															|  | 
 |  | +      arg_str = replaceArgStr(arg_str, `【${item.varname}】`, item.varvalue + 0);
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【弹簧排列个数-宽】", mx.spring_qty_width);
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【弹簧排列个数-长】", mx.spring_qty_length);
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【弹簧计算个数(宽)】", mx.spring_qty_width);
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【弹簧计算个数(长)】", mx.spring_qty_length);
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【边铁条数】", mx.side_iron_qty);
 | 
												
													
														
															|  | 
 |  | +    arg_str = replaceArgStr(arg_str, "【条数】", mx.side_iron_qty);
 | 
												
													
														
															|  | 
 |  | +  };
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  // 替换字符串
 | 
												
													
														
															|  | 
 |  | +  const replaceArgStr = (arg_str: string, findStr: string, replaceStr: any) => {
 | 
												
													
														
															|  | 
 |  | +    return arg_str.replace(findStr, replaceStr);
 | 
												
													
														
															|  | 
 |  | +  };
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  /**
 | 
												
													
														
															|  | 
 |  | +   * @description 获取部门利润率
 | 
												
													
														
															|  | 
 |  | +   */
 | 
												
													
														
															|  | 
 |  | +  const wf_factory_profitrate = async () => {
 | 
												
													
														
															|  | 
 |  | +    const { _mainData, enumMap } = state.LjDetailRef;
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    console.log("wf_factory_profitrate enumMap :>> ", enumMap);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    let deptEnum = enumMap.get("deptid");
 | 
												
													
														
															|  | 
 |  | +    console.log("deptEnum :>> ", deptEnum);
 | 
												
													
														
															|  | 
 |  | +    if (deptEnum) {
 | 
												
													
														
															|  | 
 |  | +      let depItem = deptEnum.find((item: any) => item.value == _mainData.deptid);
 | 
												
													
														
															|  | 
 |  | +      console.log("depItem :>> ", depItem);
 | 
												
													
														
															|  | 
 |  | +      if (depItem) {
 | 
												
													
														
															|  | 
 |  | +        _mainData.dept_profitrate = parseFloat(depItem.profitrate);
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +    let _params = {
 | 
												
													
														
															|  | 
 |  | +      dsname: "web_factory_profitratelist",
 | 
												
													
														
															|  | 
 |  | +      queryparams: {
 | 
												
													
														
															|  | 
 |  | +        arg_deptid: _mainData.deptid,
 | 
												
													
														
															|  | 
 |  | +        arg_bednettypeid_mattresstypeid: _mainData.mattresstypeid,
 | 
												
													
														
															|  | 
 |  | +        kind: 0
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +    };
 | 
												
													
														
															|  | 
 |  | +    let res = await CommonDynamicSelect(_params);
 | 
												
													
														
															|  | 
 |  | +    if (res?.datatable?.length > 0) {
 | 
												
													
														
															|  | 
 |  | +      _mainData.profitrate = parseFloat(res?.datatable[0].profitrate);
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +  };
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  const wf_bednet_var = async (varkind: Number, pricelistid: Number, bednettypeid: Number) => {
 | 
												
													
														
															|  | 
 |  | +    let _params = {
 | 
												
													
														
															|  | 
 |  | +      dsname: "web_bednet_var_define_cw",
 | 
												
													
														
															|  | 
 |  | +      queryparams: {
 | 
												
													
														
															|  | 
 |  | +        varkind,
 | 
												
													
														
															|  | 
 |  | +        pricelistid,
 | 
												
													
														
															|  | 
 |  | +        bednettypeid
 | 
												
													
														
															|  | 
 |  | +      }
 | 
												
													
														
															|  | 
 |  | +    };
 | 
												
													
														
															|  | 
 |  | +    let res = await CommonDynamicSelect(_params);
 | 
												
													
														
															|  | 
 |  | +    if (res?.datatable?.length > 0) {
 | 
												
													
														
															|  | 
 |  | +      state.bednetVarList = res?.datatable;
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +  };
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  /**
 | 
												
													
														
															|  | 
 |  | +   * @description 主表计算公式
 | 
												
													
														
															|  | 
 |  | +   */
 | 
												
													
														
															|  | 
 |  | +  const summaryData = ref<any>([
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "弹簧材料总成本",
 | 
												
													
														
															|  | 
 |  | +      field: "spring_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula:
 | 
												
													
														
															|  | 
 |  | +        "if([折叠款] = 1, ([总材料成本]*[大小单]+[款式费用]+[边带费用]+[额外费用]+[制造费用]) * 2, [总材料成本]*[大小单]+[款式费用]+[边带费用]+[额外费用]+[制造费用])"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "弹簧人工总成本",
 | 
												
													
														
															|  | 
 |  | +      field: "spring_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[总成本] * ([工厂利润率] + [利润率点数] + [布套点数] + [拆装点数] + [海绵点数]) * [管理费点]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "蛇线材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "snake_wire_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1)) * [额外点数] + [fob]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "四周口袋弹簧成本",
 | 
												
													
														
															|  | 
 |  | +      field: "pocket_around_spring_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "([部门售价] * ([税率] - 1)) + [佣金] * 0.05"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "四周口袋无纺布成本",
 | 
												
													
														
															|  | 
 |  | +      field: "pocket_around_fabrics_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "([部门售价] + [佣金] * 0.06) * [税率] * if([fob] = 0, 1, [折扣率])"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "四周加硬材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "hard_around_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "if([汇率] <> 0, [部门含税价] / [汇率], 0)"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "四周加硬人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "hard_around_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "if(([dept_profitrate] + [dept_profitrate_rangli] / 100) <> 0, [dijia_cost] ,0 )"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "入袋无纺布材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "fabrics1_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "胶水材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "glue_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "底面无纺布材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "fabrics2_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "边铁人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "side_iron_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "边铁材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "side_iron_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "C钉/夹码材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "cnail_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "C钉/夹码人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "cnail_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "海绵包边材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "sponge_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "海绵包边人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "sponge_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "填充海绵成本",
 | 
												
													
														
															|  | 
 |  | +      field: "sponge_mtrl_tc_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "封边材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "edge_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "封边人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "edge_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "弹叉材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "fork_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "弹叉人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "fork_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "胶条/包角材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "rsorwa_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: "[dijia_cost] / (1 - ([佣金点数] - 1 )) - [dijia_cost]"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "胶条/包角人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "rsorwa_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "海绵打孔人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "sponge_drilling_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "上垫层物料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "felt_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "下垫层物料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "felt_mtrl_x_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "上垫层人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "felt_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "下垫层人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "felt_hr_x_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "包装材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "packet_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "包装人工成本",
 | 
												
													
														
															|  | 
 |  | +      field: "packet_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "总材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "total_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "总人力成本",
 | 
												
													
														
															|  | 
 |  | +      field: "total_hr_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "总成本",
 | 
												
													
														
															|  | 
 |  | +      field: "total_cost",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "钢丝重量",
 | 
												
													
														
															|  | 
 |  | +      field: "spring_weight_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "边铁重量",
 | 
												
													
														
															|  | 
 |  | +      field: "side_iron_weight_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "四周加硬重量",
 | 
												
													
														
															|  | 
 |  | +      field: "hard_around_weight_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "入袋无纺布重量",
 | 
												
													
														
															|  | 
 |  | +      field: "fabrics1_weight_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "面底无纺布重量",
 | 
												
													
														
															|  | 
 |  | +      field: "fabrics2_weight_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    // {
 | 
												
													
														
															|  | 
 |  | +    //   label: "上垫层重量",
 | 
												
													
														
															|  | 
 |  | +    //   field: "felt_mtrl_cost",
 | 
												
													
														
															|  | 
 |  | +    //   formula: ""
 | 
												
													
														
															|  | 
 |  | +    // },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "下垫层重量",
 | 
												
													
														
															|  | 
 |  | +      field: "felt_weight_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "C钉/夹码重量",
 | 
												
													
														
															|  | 
 |  | +      field: "cnail_weight_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "海绵包边重量",
 | 
												
													
														
															|  | 
 |  | +      field: "sponge_weight_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "填充海绵重量",
 | 
												
													
														
															|  | 
 |  | +      field: "sponge_weight_tc_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "封边材料重量",
 | 
												
													
														
															|  | 
 |  | +      field: "edge_weight_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "弹叉材料重量",
 | 
												
													
														
															|  | 
 |  | +      field: "fork_weight_qty",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "重量汇总",
 | 
												
													
														
															|  | 
 |  | +      field: "sum_weight",
 | 
												
													
														
															|  | 
 |  | +      formula: ""
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "FOB",
 | 
												
													
														
															|  | 
 |  | +      field: "fob",
 | 
												
													
														
															|  | 
 |  | +      formula: "[fob]"
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +  ]);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  | 
 |  | +  /**
 | 
												
													
														
															|  | 
 |  | +   * @description 主表公式字段照表
 | 
												
													
														
															|  | 
 |  | +   */
 | 
												
													
														
															|  | 
 |  | +  const fieldParams = ref<any>([
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "总成本",
 | 
												
													
														
															|  | 
 |  | +      field: "total_cost"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "不含税出厂价",
 | 
												
													
														
															|  | 
 |  | +      field: "nottax_factory_cost"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "部门售价",
 | 
												
													
														
															|  | 
 |  | +      field: "nottax_dept_cost"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "税金",
 | 
												
													
														
															|  | 
 |  | +      field: "taxes"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "部门含税价",
 | 
												
													
														
															|  | 
 |  | +      field: "dept_cost"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "外币价",
 | 
												
													
														
															|  | 
 |  | +      field: "foreign_cost"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "总材料成本",
 | 
												
													
														
															|  | 
 |  | +      field: "total_material_cost"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "大小单",
 | 
												
													
														
															|  | 
 |  | +      field: "dannum_rate"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "款式费用",
 | 
												
													
														
															|  | 
 |  | +      field: "hrcost"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "边带费用",
 | 
												
													
														
															|  | 
 |  | +      field: "biandaicost"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "额外费用",
 | 
												
													
														
															|  | 
 |  | +      field: "extras_cost"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "制造费用",
 | 
												
													
														
															|  | 
 |  | +      field: "zhizao_amt"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "折叠款",
 | 
												
													
														
															|  | 
 |  | +      field: "if_zhedie_type"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "管理费点",
 | 
												
													
														
															|  | 
 |  | +      field: "guanli_rate"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "工厂利润率",
 | 
												
													
														
															|  | 
 |  | +      field: "profitrate"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "利润率点数",
 | 
												
													
														
															|  | 
 |  | +      field: "profitrate_point"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "布套点数",
 | 
												
													
														
															|  | 
 |  | +      field: "butao_point"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "拆装点数",
 | 
												
													
														
															|  | 
 |  | +      field: "chaizhuang_point"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "海绵点数",
 | 
												
													
														
															|  | 
 |  | +      field: "haimian_point"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "部门利润率",
 | 
												
													
														
															|  | 
 |  | +      field: "dept_profitrate"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "部门让利点",
 | 
												
													
														
															|  | 
 |  | +      field: "dept_profitrate_rangli"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "额外点数",
 | 
												
													
														
															|  | 
 |  | +      field: "other_rate"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "佣金点数",
 | 
												
													
														
															|  | 
 |  | +      field: "commission"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "税率",
 | 
												
													
														
															|  | 
 |  | +      field: "taxrate"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "折扣率",
 | 
												
													
														
															|  | 
 |  | +      field: "discount"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "汇率",
 | 
												
													
														
															|  | 
 |  | +      field: "moneyrate"
 | 
												
													
														
															|  | 
 |  | +    },
 | 
												
													
														
															|  | 
 |  | +    {
 | 
												
													
														
															|  | 
 |  | +      label: "底价",
 | 
												
													
														
															|  | 
 |  | +      field: "dijia_cost"
 | 
												
													
														
															|  | 
 |  | +    }
 | 
												
													
														
															|  | 
 |  | +  ]);
 | 
												
													
														
															|  | 
 |  | +
 | 
												
													
														
															|  |    return {
 |  |    return {
 | 
												
													
														
															|  |      ...toRefs(state),
 |  |      ...toRefs(state),
 | 
												
													
														
															|  |      columns,
 |  |      columns,
 | 
												
											
												
													
														
															|  | @@ -1836,6 +2674,7 @@ export const useHooks = (t?: any) => {
 | 
												
													
														
															|  |      getDataMxSpring,
 |  |      getDataMxSpring,
 | 
												
													
														
															|  |      getDataMxAdd,
 |  |      getDataMxAdd,
 | 
												
													
														
															|  |      dataCallback,
 |  |      dataCallback,
 | 
												
													
														
															|  | -    dataCallbackMx
 |  | 
 | 
												
													
														
															|  | 
 |  | +    dataCallbackMx,
 | 
												
													
														
															|  | 
 |  | +    wf_cmp_cb
 | 
												
													
														
															|  |    };
 |  |    };
 | 
												
													
														
															|  |  };
 |  |  };
 |