spring
2025-11-20 5b62f70d5df5731a571d709f0f9ff312a7cec5dc
src/pages/routingInspection/detail/indexJX.vue
@@ -77,13 +77,23 @@
          {{ formatValue(recordData.fixedInfo?.tensionSetting, "N/m") }}
        </wd-form-item>
        <!-- 绞制外径(可编辑) -->
        <wd-form-item label="绞合外径" prop="twistedOuterDiameter" required>
        <wd-form-item :label="getDiameterTypeLabel()" prop="twistedOuterDiameter" required>
          <template v-if="isEdit">
            <wd-input
              v-model="formData.twistedOuterDiameter"
              placeholder="请输入绞合外径(mm)"
              type="number"
            />
            <view style="display: flex; flex-direction: column; gap: 8px">
              <wd-select-picker
                v-model="formData.diameterType"
                :columns="diameterTypeColumns"
                type="radio"
                placeholder="请选择类型"
                :clearable="false"
                @change="handleDiameterTypeChange"
              />
              <wd-input
                v-model="formData.twistedOuterDiameter"
                :placeholder="`请输入${getDiameterTypeLabel()}`"
                type="number"
              />
            </view>
          </template>
          <template v-else>
            {{ formatValue(formData.twistedOuterDiameter, "mm") }}
@@ -92,10 +102,10 @@
      </wd-col>
    </wd-row>
    <!-- 自检记录详情模块 -->
    <!-- 工艺记录详情模块 -->
    <wd-row>
      <view style="margin: 10rpx">
        <text class="title">{{ "自检记录详情" }}</text>
        <text class="title">{{ "工艺记录详情" }}</text>
      </view>
      <wd-col :span="24">
        <wd-form-item label="记录位置" prop="recordPosition">
@@ -276,9 +286,9 @@
        <text class="title">{{ "巡检结果" }}</text>
      </view>
      <wd-col :span="24">
        <wd-form-item label="样品是否齐全" prop="sampleComplete" required>
        <wd-form-item label="样品是否齐全" prop="isFully" required>
          <template v-if="isEdit">
            <wd-radio-group v-model="formData.sampleComplete" inline class="conclusion-radio-group">
            <wd-radio-group v-model="formData.isFully" inline class="conclusion-radio-group">
              <wd-radio
                v-for="(opt, idx) in sampleCompleteOptions"
                :key="idx"
@@ -290,7 +300,7 @@
            </wd-radio-group>
          </template>
          <template v-else>
            {{ formatValue(formData.sampleComplete) }}
            {{ formatValue(formData.isFully) }}
          </template>
        </wd-form-item>
      </wd-col>
@@ -356,12 +366,13 @@
const formData = reactive({
  twistedOuterDiameter: "", // 绞制外径
  diameterType: "绞合外径(mm)", // 外径类型
  structureFormula: "", // 成品结构
  structureItems: [], // 结构标准值和实测
  inspectTwist: [], // 绞线工艺质量控制
  productAppearance: [] as string[], // 产品外观(改为数组存储选中值)
  conclusion: "", // 结论(改为数组存储选中值)
  sampleComplete: "", // 样品是否齐全
  isFully: "", // 样品是否齐全
});
const twistDirectionOptions = [
@@ -385,14 +396,34 @@
  { label: "否", value: "否" },
];
// 外径类型选项
const diameterTypeColumns = [
  { label: "绞合外径(mm)", value: "绞合外径(mm)" },
  { label: "扇高/扇宽", value: "扇高/扇宽" },
  { label: "T形等效截面", value: "T形等效截面" },
];
// 获取外径类型标签
const getDiameterTypeLabel = () => {
  return formData.diameterType || "绞合外径(mm)";
};
// 处理外径类型变化
const handleDiameterTypeChange = () => {
  // 类型变化时可以清空输入值或保留,根据需求决定
  // formData.twistedOuterDiameter = "";
};
const initFormData = () => {
  const structureResult = recordData.value.structureInfo?.structureRecordResult || {};
  const inspectionResult = recordData.value.inspectionResult || {};
  formData.twistedOuterDiameter =
    recordData.value.structureInfo.structureRecordResult.twistedOuterDiameter || "";
  formData.diameterType =
    recordData.value.structureInfo.structureRecordResult.diameterType || "绞合外径(mm)";
  formData.structureFormula = structureResult.inspectStructure?.structureFormula || "";
  formData.sampleComplete = inspectionResult.sampleComplete || "";
  formData.isFully = inspectionResult.isFully || "";
  formData.conclusion = structureResult.conclusion || "";
  // 初始化产品外观
@@ -464,13 +495,14 @@
const saveList = async () => {
  // 1. 基础字段校验
  if (!formData.structureFormula) return uni.showToast({ title: "成品结构为必填项", icon: "none" });
  if (!formData.twistedOuterDiameter)
    return uni.showToast({ title: "绞制外径为必填项", icon: "none" });
  if (!formData.twistedOuterDiameter) {
    const label = getDiameterTypeLabel();
    return uni.showToast({ title: `${label}为必填项`, icon: "none" });
  }
  if (!formData.productAppearance.length)
    return uni.showToast({ title: "产品外观为必填项", icon: "none" });
  if (!formData.conclusion) return uni.showToast({ title: "结论为必填项", icon: "none" });
  if (!formData.sampleComplete)
    return uni.showToast({ title: "样品是否齐全为必填项", icon: "none" });
  if (!formData.isFully) return uni.showToast({ title: "样品是否齐全为必填项", icon: "none" });
  // 2. 结构项循环校验
  for (const item of formData.structureItems) {
    if (!item.structureValue)
@@ -505,17 +537,18 @@
    const res = await RoutingInspectionApi.strandedPatrolCheckInspection({
      deviceUid: deviceUid.value,
      id: paramsId.value,
      result: {
      inspectionResult: {
        twistedOuterDiameter: formData.twistedOuterDiameter,
        diameterType: formData.diameterType || "绞合外径(mm)",
        structureFormula: formData.structureFormula,
        structureItems: formData.structureItems,
        inspectTwist: formData.inspectTwist,
        productAppearance: formData.productAppearance,
        conclusion: formData.conclusion,
        sampleComplete: formData.sampleComplete,
        isFully: formData.isFully,
      },
      inspectionResult: {
        sampleComplete: formData.sampleComplete,
      result: {
        isFully: formData.isFully,
      },
      processInspectionAttachmentList: allFileIds,
    });