Bläddra i källkod

现场优化cecel

dengrui 2 månader sedan
förälder
incheckning
6a0229c3fe
3 ändrade filer med 79 tillägg och 45 borttagningar
  1. 9 2
      src/api/plan/index.ts
  2. 51 33
      src/views/base/bom/index.vue
  3. 19 10
      src/views/base/excel/template/index.vue

+ 9 - 2
src/api/plan/index.ts

@@ -11,6 +11,13 @@ export function getPrintInfo(data: any) {
   return request({
     url: `/api/v1/plan/requisition/handleExcel`,
     method: "post",
-    data
+    data,
   });
-}
+}
+export function queryBomChildrenInfo(params: object) {
+  return request({
+    url: "/api/v1/base/materialBom/list",
+    method: "post",
+    data: params,
+  });
+}

+ 51 - 33
src/views/base/bom/index.vue

@@ -29,6 +29,7 @@
       @search-change="searchChange"
       @search-reset="resetChange"
       @selection-change="selectionChange"
+      @tree-load="treeLoad"
     >
       <template #menu-left="{ size }">
         <div style="display: flex">
@@ -67,7 +68,7 @@
         </div>
       </template>
 
-<!--      <template #menu-right="{}">
+      <!--      <template #menu-right="{}">
         <el-dropdown split-button
           >导入
           <template #dropdown>
@@ -105,7 +106,6 @@
         @selected-sure="selectedFinish"
       />
     </el-dialog>
-
   </div>
 </template>
 <script setup>
@@ -115,8 +115,16 @@ import ButtonPermKeys from "../../../common/configs/buttonPermission";
 import { useCommonStoreHook, useDictionaryStore } from "../../../store/index";
 
 import { getMaterialDetails, getBomVersion } from "@/api/material";
-
+import { queryBomChildrenInfo } from "@/api/plan";
 import { batchAddBom } from "@/api/bom";
+const treeLoad = (tree, treeNode, resolve) => {
+  queryBomChildrenInfo({
+    materialCode: tree.bomMaterialCode,
+    bomVersion: version.value.value ? version.value.value : 0,
+  }).then((data) => {
+    resolve(data.data);
+  });
+};
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 // 数据字典相关
 const { dicts } = useDictionaryStore();
@@ -173,12 +181,12 @@ const binding = (row) => {
     ctableRef.value.startSelect();
   }
 };
-const startCreat = () =>{
+const startCreat = () => {
   ctableRef.value?.mergeOption({
     selection: true,
-    reserveSelection : true,
+    reserveSelection: true,
   });
-}
+};
 const onSelected = () => {
   for (var i = 0; i < data.value.length; i++) {
     if (data.value[i].bomMaterialNumber <= 0) {
@@ -275,6 +283,10 @@ option.value = Object.assign(option.value, {
   editBtn: false,
   saveBtn: false,
   cellBtn: true,
+  lazy: true,
+  defaultExpandedKeys: [],
+  tree: true,
+  rowKey: "materialCode",
   column: [
     {
       label: "物料编码",
@@ -326,7 +338,12 @@ const routeBack = () => {
   router.back();
 };
 const onSelectedFinish = (selectedValueList) => {
-  if (Object.keys(selectedValueList).length === 0 || selectedValueList == undefined || selectedValueList == null || selectedValueList.length <= 0) {
+  if (
+    Object.keys(selectedValueList).length === 0 ||
+    selectedValueList == undefined ||
+    selectedValueList == null ||
+    selectedValueList.length <= 0
+  ) {
     ElMessage({
       message: "没有选择任何物料",
       type: "error",
@@ -335,36 +352,38 @@ const onSelectedFinish = (selectedValueList) => {
   }
   const flag = ref(true);
   selectedValueList?.forEach((selectedValue, index) => {
-      if (selectedValue.materialCode == dataDetail.value.materialCode) {
-        ElMessage({
-          message: selectedValue.materialCode + "自己不能添加自己为BOM",
-          type: "error",
-        });
-        flag.value=false;
-        return;
-      }
-      for (var i = 0; i < data.value.length; i++) {
-        if (data.value[i].bomMaterialCode === selectedValue.materialCode) {
-          ElMessage({
-            message: selectedValue.materialCode + "的" + data.value[i].bomMaterialName + "已经添加过了",
-            type: "error",
-          });
-          flag.value=false;
-          return;
-        }
-      }
-      if (version.value.value === 0 || version.value.value === null) {
+    if (selectedValue.materialCode == dataDetail.value.materialCode) {
+      ElMessage({
+        message: selectedValue.materialCode + "自己不能添加自己为BOM",
+        type: "error",
+      });
+      flag.value = false;
+      return;
+    }
+    for (var i = 0; i < data.value.length; i++) {
+      if (data.value[i].bomMaterialCode === selectedValue.materialCode) {
         ElMessage({
-          message: "没有选择BOM版本",
+          message:
+            selectedValue.materialCode +
+            "的" +
+            data.value[i].bomMaterialName +
+            "已经添加过了",
           type: "error",
         });
-        flag.value=false;
+        flag.value = false;
         return;
       }
-
     }
-  );
-  if(!flag.value){
+    if (version.value.value === 0 || version.value.value === null) {
+      ElMessage({
+        message: "没有选择BOM版本",
+        type: "error",
+      });
+      flag.value = false;
+      return;
+    }
+  });
+  if (!flag.value) {
     return;
   }
   selectedValueList?.forEach((selectedValue, index) => {
@@ -379,7 +398,6 @@ const onSelectedFinish = (selectedValueList) => {
     });
     data.value.push(bom.value);
   });
-
 };
 const queryMaterialDetail = () => {
   getMaterialDetails(route.params.materialCode).then(({ data }) => {
@@ -457,7 +475,7 @@ const selectedFinish = (selectedValue) => {
   margin: 5px 20px 5px 0;
   float: left;
 }
-.title-text{
+.title-text {
   width: 100%;
   height: 30px;
   line-height: 50px;

+ 19 - 10
src/views/base/excel/template/index.vue

@@ -17,6 +17,7 @@
           @size-change="dataList"
           @current-change="dataList"
           @selection-change="selectionChange"
+          @row-dblclick="(row) => lookTep(row)"
         >
           <template #menu-left="{}">
             <el-button
@@ -27,16 +28,24 @@
             >
               新 增
             </el-button>
+            <el-button
+              :disabled="toDeleteIds.length < 1"
+              type="danger"
+              icon="el-icon-delete"
+              :size="size"
+              @click="multipleDelete"
+              >删除</el-button
+            >
           </template>
-          <template #menu="{ row, index, type }">
-            <el-button @click="lookTep(row)" text type="primary"
+          <!-- <template #menu="{ row, index, type }"> -->
+          <!-- <el-button @click="lookTep(row)" text type="primary"
               >查看</el-button
-            >
-            <!-- <el-button @click="editTep(row)" text type="primary"
+            > -->
+          <!-- <el-button @click="editTep(row)" text type="primary"
               >编辑</el-button
             > -->
 
-            <el-popconfirm
+          <!-- <el-popconfirm
               :visible="row.dialogVisible"
               title="您确认删除吗?"
               width="200"
@@ -48,8 +57,8 @@
                   >删除</el-button
                 >
               </template>
-            </el-popconfirm>
-          </template>
+            </el-popconfirm> -->
+          <!-- </template> -->
         </avue-crud>
       </div>
       <div v-if="excelStatus" :key="excelKey" class="editView">
@@ -401,12 +410,12 @@ const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
-  selection: false,
+  selection: true,
   viewBtn: false,
   editBtn: false,
-  delBtn: false,
+  delBtn: true,
   addBtn: false,
-  menu: true,
+  menu: false,
   column: [
     {
       label: "模版名称",