huminmin
2026-07-29 62294084c9c35d35594e9f2d6c41342ae84e9526
src/views/productionManagement/productionProcess/index.vue
@@ -46,7 +46,7 @@
              <div class="process-desc">{{ process.remark || '暂无描述' }}</div>
              <div class="process-device">关联设备: {{ (deviceOptions.find(item => item.id === Number(process.deviceLedgerId))?.deviceName) || '未关联' }}</div>
              <div class="process-device">标准数量: {{ process.standardQuantity || 0 }}</div>
              <div class="process-device">折算系数: {{ process.conversionFactor ?? 1 }}</div>
              <div class="process-device"></div>
            </div>
            <div class="card-footer">
              <div class="status-tag">
@@ -66,7 +66,7 @@
                  计件
                </el-tag>
              </div>
              <span class="param-count">工资定额: ¥{{ process.salaryQuota || 0 }}</span>
              <span class="param-count"></span>
            </div>
          </div>
        </div>
@@ -120,12 +120,6 @@
          <el-input v-model="processForm.name"
                    placeholder="请输入工序名称" />
        </el-form-item>
        <el-form-item label="工资定额"
                      prop="salaryQuota">
          <el-input v-model="processForm.salaryQuota"
                    type="number"
                    :step="0.001" />
        </el-form-item>
        <el-form-item label="标准数量"
                      prop="standardQuantity">
          <el-input v-model="processForm.standardQuantity"
@@ -133,12 +127,26 @@
                    :step="0.001"
                    placeholder="请输入工序标准数量" />
        </el-form-item>
        <el-form-item label="折算系数"
                      prop="conversionFactor">
          <el-input v-model="processForm.conversionFactor"
        <el-form-item label="小提琴系数"
                      prop="violinFactor">
          <el-input v-model="processForm.violinFactor"
                    type="number"
                    :step="0.01"
                    placeholder="默认 1" />
                    :step="0.001"
                    placeholder="请输入小提琴系数" />
        </el-form-item>
        <el-form-item label="大提琴系数"
                      prop="violaFactor">
          <el-input v-model="processForm.violaFactor"
                    type="number"
                    :step="0.001"
                    placeholder="请输入大提琴系数" />
        </el-form-item>
        <el-form-item label="贝斯系数"
                      prop="bassFactor">
          <el-input v-model="processForm.bassFactor"
                    type="number"
                    :step="0.001"
                    placeholder="请输入贝斯系数" />
        </el-form-item>
        <el-form-item label="是否质检"
                      prop="isQuality">
@@ -359,9 +367,10 @@
    id: null,
    no: "",
    name: "",
    salaryQuota: null,
    standardQuantity: null,
    conversionFactor: 1,
    violinFactor: null,
    violaFactor: null,
    bassFactor: null,
    isQuality: false,
    isProduction: false,
    remark: "",
@@ -371,20 +380,6 @@
  const processRules = {
    no: [{ required: true, message: "请输入工序编码", trigger: "blur" }],
    name: [{ required: true, message: "请输入工序名称", trigger: "blur" }],
    salaryQuota: [
      {
        required: false,
        message: "请输入工资定额",
        trigger: "blur",
        validator: (rule, value, callback) => {
          if (isNaN(value) || value < 0) {
            callback(new Error("工资定额必须是非负数字"));
          } else {
            callback();
          }
        },
      },
    ],
    standardQuantity: [
      {
        required: false,
@@ -403,18 +398,54 @@
        },
      },
    ],
    conversionFactor: [
    violinFactor: [
      {
        required: false,
        message: "请输入折算系数",
        message: "请输入小提琴系数",
        trigger: "blur",
        validator: (rule, value, callback) => {
          if (value == null || value === "") {
            callback();
            return;
          }
          if (isNaN(value) || value <= 0) {
            callback(new Error("折算系数必须是大于 0 的数字"));
          if (isNaN(value) || value < 0) {
            callback(new Error("小提琴系数必须是非负数字"));
          } else {
            callback();
          }
        },
      },
    ],
    violaFactor: [
      {
        required: false,
        message: "请输入大提琴系数",
        trigger: "blur",
        validator: (rule, value, callback) => {
          if (value == null || value === "") {
            callback();
            return;
          }
          if (isNaN(value) || value < 0) {
            callback(new Error("大提琴系数必须是非负数字"));
          } else {
            callback();
          }
        },
      },
    ],
    bassFactor: [
      {
        required: false,
        message: "请输入贝斯系数",
        trigger: "blur",
        validator: (rule, value, callback) => {
          if (value == null || value === "") {
            callback();
            return;
          }
          if (isNaN(value) || value < 0) {
            callback(new Error("贝斯系数必须是非负数字"));
          } else {
            callback();
          }
@@ -621,9 +652,10 @@
    processForm.id = null;
    processForm.no = "";
    processForm.name = "";
    processForm.salaryQuota = null;
    processForm.standardQuantity = null;
    processForm.conversionFactor = 1;
    processForm.violinFactor = null;
    processForm.violaFactor = null;
    processForm.bassFactor = null;
    processForm.isQuality = false;
    processForm.isProduction = false;
    processForm.remark = "";
@@ -637,9 +669,10 @@
    processForm.id = process.id;
    processForm.no = process.no;
    processForm.name = process.name;
    processForm.salaryQuota = process.salaryQuota;
    processForm.standardQuantity = process.standardQuantity;
    processForm.conversionFactor = process.conversionFactor ?? 1;
    processForm.violinFactor = process.violinFactor;
    processForm.violaFactor = process.violaFactor;
    processForm.bassFactor = process.bassFactor;
    processForm.isQuality = !!process.isQuality;
    processForm.isProduction = !!process.isProduction;
    processForm.remark = process.remark || "";