gaoluyang
10 天以前 d2355d2bc6277368f5eacf6239b036e673b22ada
src/views/qualityManagement/metricMaintenance/index.vue
@@ -51,7 +51,7 @@
        <el-button type="primary" @click="openModelDia('add')">
          新增检测指标
        </el-button>
        <ImportExcel @uploadSuccess="getModelList" />
        <el-button @click="handleOut">导出</el-button>
        <el-button
            type="danger"
            @click="handleDelete"
@@ -73,15 +73,85 @@
          :total="page.total"
      ></PIMTable>
    </div>
    <el-dialog
        v-model="modelDia"
        title="检测指标"
        width="400px"
        @close="closeModelDia"
    >
      <el-form
          :model="modelForm"
          label-width="140px"
          label-position="top"
          :rules="modelRules"
          ref="modelFormRef"
      >
        <el-row>
          <el-col :span="24">
            <el-form-item label="指标:" prop="parameterItem">
              <el-input
                  v-model="modelForm.parameterItem"
                  placeholder="请输入指标"
                  clearable
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <el-form-item label="单位:" prop="unit">
              <el-input
                  v-model="modelForm.unit"
                  placeholder="请输入单位"
                  clearable
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <el-form-item label="标准值:" prop="standardValue">
              <el-input
                  v-model="modelForm.standardValue"
                  placeholder="请输入标准值"
                  clearable
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <el-form-item label="内控值:" prop="controlValue">
              <el-input
                  v-model="modelForm.controlValue"
                  placeholder="请输入内控值"
                  clearable
              />
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" @click="submitModelForm">确认</el-button>
          <el-button @click="closeModelDia">取消</el-button>
        </div>
      </template>
    </el-dialog>
  </div>
</template>
<script setup>
import {ref} from "vue";
import {delProductModel, modelListPage, productTreeList} from "@/api/basicData/product.js";
import {addOrEditProductModel, delProductModel, modelListPage, productTreeList} from "@/api/basicData/product.js";
import ImportExcel from "@/views/basicData/product/ImportExcel/index.vue";
import {ElMessageBox} from "element-plus";
import {
  qualityTestStandardAdd, qualityTestStandardDel,
  qualityTestStandardListPage,
  qualityTestStandardUpdate
} from "@/api/qualityManagement/metricMaintenance.js";
const { proxy } = getCurrentInstance();
// 树
const search = ref("");
const treeLoad = ref(false);
@@ -107,11 +177,11 @@
  },
  {
    label: "标准值",
    prop: "unit",
    prop: "standardValue",
  },
  {
    label: "内控值",
    prop: "unit",
    prop: "controlValue",
  },
  {
    dataType: "action",
@@ -128,41 +198,38 @@
    ],
  },
]);
const selectedRows = ref([]);
// 指标弹框
const modelDia = ref(false);
const modelOperationType = ref("");
const data = reactive({
  form: {
    productName: "",
  },
  rules: {
    productName: [{ required: true, message: "请输入", trigger: "blur" }],
  },
  modelForm: {
    model: "",
    parameterItem: "",
    unit: "",
    standardValue: "",
    controlValue: "",
  },
  modelRules: {
    model: [{ required: true, message: "请输入", trigger: "blur" }],
    parameterItem: [{ required: true, message: "请输入", trigger: "blur" }],
    unit: [{ required: true, message: "请输入", trigger: "blur" }],
    standardValue: [{ required: true, message: "请输入", trigger: "blur" }],
    controlValue: [{ required: true, message: "请输入", trigger: "blur" }],
  },
});
const { form, rules, modelForm, modelRules } = toRefs(data);
const { modelForm, modelRules } = toRefs(data);
// 查询产品树
const getProductTreeList = () => {
  treeLoad.value = true;
  productTreeList()
      .then((res) => {
        list.value = res;
        list.value.forEach((a) => {
          expandedKeys.value.push(a.label);
        });
        treeLoad.value = false;
      })
      .catch((err) => {
        treeLoad.value = false;
      });
  productTreeList().then((res) => {
    list.value = res;
    list.value.forEach((a) => {
      expandedKeys.value.push(a.label);
    });
    treeLoad.value = false;
  }).catch((err) => {
    treeLoad.value = false;
  });
};
// 过滤产品树
const searchFilter = () => {
@@ -187,13 +254,13 @@
};
const getModelList = () => {
  tableLoading.value = true;
  modelListPage({
    id: currentId.value,
  qualityTestStandardListPage({
    productId: currentId.value,
    current: page.current,
    size: page.size,
  }).then((res) => {
    tableData.value = res.records;
    page.total = res.total;
    tableData.value = res.data.records;
    page.total = res.data.total;
    tableLoading.value = false;
  });
};
@@ -244,6 +311,20 @@
    modelForm.value = { ...data };
  }
};
// 导出
const handleOut = () => {
  ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", {
    confirmButtonText: "确认",
    cancelButtonText: "取消",
    type: "warning",
  })
      .then(() => {
        proxy.download("/quality/qualityTestStandard/export", {}, "检测指标.xlsx");
      })
      .catch(() => {
        proxy.$modal.msg("已取消");
      });
};
// 删除指标
const handleDelete = () => {
  let ids = [];
@@ -259,7 +340,7 @@
    type: "warning",
  }).then(() => {
    tableLoading.value = true;
    delProductModel(ids).then((res) => {
    qualityTestStandardDel(ids).then((res) => {
      proxy.$modal.msgSuccess("删除成功");
      getModelList();
    }).finally(() => {
@@ -269,6 +350,33 @@
    proxy.$modal.msg("已取消");
  });
};
// 提交规格型号修改
const submitModelForm = () => {
  proxy.$refs.modelFormRef.validate((valid) => {
    if (valid) {
      modelForm.value.productId = Number(currentId.value);
      if(modelOperationType.value === 'add') {
        qualityTestStandardAdd(modelForm.value).then((res) => {
          proxy.$modal.msgSuccess("提交成功");
          closeModelDia();
          getModelList();
        });
      } else {
        qualityTestStandardUpdate(modelForm.value).then((res) => {
          proxy.$modal.msgSuccess("提交成功");
          closeModelDia();
          getModelList();
        });
      }
    }
  });
};
// 关闭型号弹框
const closeModelDia = () => {
  proxy.$refs.modelFormRef.resetFields();
  modelDia.value = false;
};
getProductTreeList();
</script>