lishenao
9 天以前 fde27654b1b21a8d2c149d3d12f86c3c7314c091
src/views/equipmentManagement/ledger/Form.vue
@@ -27,6 +27,7 @@
            v-model="form.number"
            placeholder="请输入数量"
            type="number"
            @change="mathNum"
          />
        </el-form-item>
      </el-col>
@@ -36,6 +37,9 @@
            v-model="form.taxIncludingPriceUnit"
            placeholder="请输入含税单价"
            type="number"
            maxlength="10"
            @change="mathNum"
            @input="handleNumberInput"
          />
        </el-form-item>
      </el-col>
@@ -45,18 +49,29 @@
            v-model="form.taxIncludingPriceTotal"
            placeholder="请输入含税总价"
            type="number"
            disabled
          />
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="税率" prop="taxRate">
          <el-input
        <el-form-item label="税率(%)" prop="taxRate">
          <!-- <el-input
            v-model="form.taxRate"
            placeholder="请输入税率"
            type="number"
          >
            <template #append> % </template>
          </el-input>
          </el-input> -->
          <el-select
            v-model="form.taxRate"
            placeholder="请选择"
            clearable
            @change="mathNum"
          >
            <el-option label="1" :value="1" />
            <el-option label="6" :value="6" />
            <el-option label="13" :value="13" />
          </el-select>
        </el-form-item>
      </el-col>
      <el-col :span="12">
@@ -65,6 +80,7 @@
            v-model="form.unTaxIncludingPriceTotal"
            placeholder="请输入不含税总价"
            type="number"
            disabled
          />
        </el-form-item>
      </el-col>
@@ -95,6 +111,11 @@
// import useUserStore from "@/store/modules/user";
import { getLedgerById } from "@/api/equipmentManagement/ledger";
import dayjs from "dayjs";
import {
  calculateTaxIncludeTotalPrice,
  calculateTaxExclusiveTotalPrice,
} from "@/utils/summarizeTable";
import { ElMessage } from "element-plus";
defineOptions({
  name: "设备台账表单",
@@ -130,8 +151,43 @@
  }
};
const mathNum = () => {
  if (!form.taxIncludingPriceUnit) {
    ElMessage.error("请输入单价");
    return;
  }
  if (!form.number) {
    ElMessage.error("请输入数量");
    return;
  }
  form.taxIncludingPriceTotal = calculateTaxIncludeTotalPrice(
    form.taxIncludingPriceUnit,
    form.number
  );
  if (form.taxRate) {
    form.unTaxIncludingPriceTotal = calculateTaxExclusiveTotalPrice(
      form.taxIncludingPriceTotal,
      form.taxRate
    );
  }
};
const handleNumberInput = (value) => {
  // 移除所有非数字字符
  let num = value.replace(/[^\d.]/g, "");
  // 限制长度为10
  if (num.length > 10) {
    num = num.slice(0, 10);
  }
  // 更新值
  form.taxIncludingPriceUnit = num;
};
defineExpose({
  form,
  loadForm,
  resetForm,
});
</script>