Bladeren bron

工艺新增物料采集添加先选择版本的逻辑。

jiaxiaoqiang 6 maanden geleden
bovenliggende
commit
9ac65f2af4

+ 1 - 1
public/version.json

@@ -1,3 +1,3 @@
 {
-  "version": "3.2"
+  "version": "3.3"
 }

+ 1 - 1
src/components/CommonTable/configs/tableConfig.ts

@@ -450,7 +450,7 @@ export const tableConfig = {
         label: "物料版本",
         prop: "bomVersion",
         type: "select",
-        search: true,
+        // search: true,  先选择版本代替了
       },
       {
         label: "物料编码",

+ 17 - 0
src/components/CommonTable/index.vue

@@ -187,10 +187,27 @@ const rowClick = (row) => {
 const handleClose = () => {
   // 在这里可以清空打开的commonTable的搜索条件
   search.value.bomMaterialCode = "";
+
+  crudRef.value.clearSelection();
+  toDeleteIds.value = [];
+  selectedRows.value = [];
+  selectRowValue.value = {};
   isShowTable.value = false;
+
+  console.log(
+    "关闭弹窗",
+    toDeleteIds.value,
+    selectedRows.value,
+    selectRowValue.value
+  );
 };
 
 const onSelected = () => {
+  if (toDeleteIds.value.length < 1) {
+    ElMessage.warning("未选择任何数据");
+    return;
+  }
+
   if (props.multiple) {
     commonTableEmits("selectMultipleSure", toDeleteIds.value);
   } else {

+ 102 - 39
src/views/base/craftManagement/route/components/bottomTable.vue

@@ -50,6 +50,29 @@
     <el-dialog v-model="dialogVisible">
       <VuePdfEmbed :source="previewImgUrl" annotation-layer text-layer />
     </el-dialog>
+
+    <el-dialog v-model="versionDV" title="请先选择版本号" width="500" center>
+      <el-select
+        v-model="selectedVersion"
+        placeholder="请先选择版本号"
+        style="margin-bottom: 20px"
+      >
+        <el-option
+          v-for="item in versionList"
+          :key="item.id"
+          :label="item.bomVersion"
+          :value="item.bomVersion"
+        />
+      </el-select>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button @click="versionDV = false">取消</el-button>
+          <el-button type="primary" @click="goToSelectMaterial">
+            确定
+          </el-button>
+        </div>
+      </template>
+    </el-dialog>
   </div>
 </template>
 <script setup>
@@ -95,51 +118,91 @@ const { selectionChange, multipleUpdate } = Methords; //选中和批量删除事
 const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 const bomVersion = ref(null);
 const pdfPath = ref(null);
+
+// 如果物料采集列表有值,就只能选择当前的版本,否则先选择版本
+const versionList = ref([]);
+const versionDV = ref(false);
+const selectedVersion = ref("");
+const goToSelectMaterial = () => {
+  if (!route.fullPath.split("/")[5]) {
+    ElMessage.error("物料编号读取错误");
+    return;
+  }
+  let configParam = {};
+  configParam.materialCode = route.fullPath.split("/")[5];
+
+  configParam.bomVersion = selectedVersion.value;
+
+  //根据物料编码和版本号获取对应的物料BOM
+  commonTableType.value = "MARTERIAL_BOM";
+  nextTick(() => {
+    commonTableRef.value?.startSelect(configParam);
+    commonTableRef.value?.refreshDictData("bomVersion", [], "value");
+    commonTableRef.value?.mergeOption({
+      searchShow: true,
+      selection: true,
+      reserveSelection: true,
+    });
+  });
+  selectedVersion.value = "";
+  versionDV.value = false;
+};
+
 const startCreat = () => {
   if (props.tableType === "wuliaocaiji") {
     if (data.value && data.value.length > 0) {
       bomVersion.value = data.value[0].recordVersion;
+      selectedVersion.value = data.value[0].recordVersion;
+      goToSelectMaterial();
+    } else {
+      getBomVersion({ materialCode: route.fullPath.split("/")[5] }).then(
+        (res) => {
+          versionList.value = res?.data ?? [];
+          versionDV.value = true;
+        }
+      );
     }
 
-    if (!route.fullPath.split("/")[5]) {
-      ElMessage.error("物料编号读取错误");
-      return;
-    }
-    //根据物料编码和版本号获取对应的物料BOM
-    let bomParam = {
-      materialCode: route.fullPath.split("/")[5],
-    };
-    getBomVersion(bomParam).then((res) => {
-      let resListMap = [];
-      //说明时物料采集的添加框 进行物料采集的下拉框数据获取
-      res?.data.forEach((versions) => {
-        resListMap.push({
-          label: versions.bomVersion,
-          value: versions.bomVersion,
-        });
-      });
-      //查询参数
-      let configParam = {};
-      configParam.materialCode = route.fullPath.split("/")[5];
-      if (bomVersion.value) {
-        configParam.bomVersion = bomVersion.value;
-      }
-      //根据物料编码和版本号获取对应的物料BOM
-      commonTableType.value = "MARTERIAL_BOM";
-      nextTick(() => {
-        commonTableRef.value?.startSelect(configParam);
-        commonTableRef.value?.refreshDictData(
-          "bomVersion",
-          resListMap,
-          "value"
-        );
-        commonTableRef.value?.mergeOption({
-          searchShow: true,
-          selection: true,
-          reserveSelection: true,
-        });
-      });
-    });
+    // if (!route.fullPath.split("/")[5]) {
+    //   ElMessage.error("物料编号读取错误");
+    //   return;
+    // }
+    // //根据物料编码和版本号获取对应的物料BOM
+    // let bomParam = {
+    //   materialCode: route.fullPath.split("/")[5],
+    // };
+    // getBomVersion(bomParam).then((res) => {
+    //   versionList.value = res?.data ?? [];
+    //   let resListMap = [];
+    //   //说明时物料采集的添加框 进行物料采集的下拉框数据获取
+    //   res?.data.forEach((versions) => {
+    //     resListMap.push({
+    //       label: versions.bomVersion,
+    //       value: versions.bomVersion,
+    //     });
+    //   });
+    //   //查询参数
+    //   let configParam = {};
+    //   configParam.materialCode = route.fullPath.split("/")[5];
+    //   if (bomVersion.value) {
+    //     configParam.bomVersion = bomVersion.value;
+    //   }
+    //   //根据物料编码和版本号获取对应的物料BOM
+    //   commonTableType.value = "MARTERIAL_BOM";
+    //   nextTick(() => {
+    //     commonTableRef.value?.startSelect(configParam);
+    //     commonTableRef.value?.refreshDictData(
+    //       "bomVersion",
+    //       resListMap,
+    //       "value"
+    //     );
+    //     commonTableRef.value?.mergeOption({
+    //       searchShow: true,
+    //       selection: true,
+    //       reserveSelection: true,
+    //     });
+    //   });
+    // });
   } else if (props.tableType === "dianjian") {
     commonTableType.value = "OP_CHECK";
     nextTick(() => {