yijing 1 an în urmă
părinte
comite
a989b23807

+ 192 - 205
src/views/materialPlan/components/ProductModal.vue

@@ -1,30 +1,48 @@
 <template>
-  <el-dialog :title="title" :visible.sync="visible" :before-close="handleClose" :close-on-click-modal="true"
-    :close-on-press-escape="false" append-to-body width="70%">
-
+  <el-dialog
+    :title="title"
+    :visible.sync="visible"
+    :before-close="handleClose"
+    :close-on-click-modal="true"
+    :close-on-press-escape="false"
+    append-to-body
+    width="70%"
+  >
     <el-card shadow="never">
       <ProductSearch @search="reload" ref="searchRef" />
 
-      <ele-split-layout width="244px" allow-collapse :right-style="{ overflow: 'hidden' }">
+      <ele-split-layout
+        width="244px"
+        allow-collapse
+        :right-style="{ overflow: 'hidden' }"
+      >
         <div class="ele-border-lighter split-layout-right-content">
-          <el-tree :data="treeList" :props="defaultProps" ref="treeRef"
-            :default-expanded-keys="categoryId ? [categoryId] : []" :highlight-current="true" node-key="id"
-            @node-click="handleNodeClick"></el-tree>
+          <el-tree
+            :data="treeList"
+            :props="defaultProps"
+            ref="treeRef"
+            :default-expanded-keys="categoryId ? [categoryId] : []"
+            :highlight-current="true"
+            node-key="id"
+            @node-click="handleNodeClick"
+          ></el-tree>
         </div>
 
-
         <!-- 数据表格 -->
         <template v-slot:content>
-          <ele-pro-table style="min-height: 400px;" ref="table" :columns="columns" :datasource="datasource"
-            :selection.sync="selection" row-key="id">
+          <ele-pro-table
+            style="min-height: 400px"
+            ref="table"
+            :columns="columns"
+            :datasource="datasource"
+            :selection.sync="selection"
+            row-key="id"
+          >
           </ele-pro-table>
         </template>
       </ele-split-layout>
-
     </el-card>
 
-
-
     <div class="btns">
       <el-button type="primary" size="small" @click="selected">选择</el-button>
       <el-button size="small" @click="handleClose">关闭</el-button>
@@ -33,222 +51,191 @@
 </template>
 
 <script>
-
-
-import { getList } from '@/api/classifyManage/itemInformation';
-import ProductSearch from './product-search.vue'
-import { getTreeByGroup } from '@/api/classifyManage';
-export default {
-  components: {
-    ProductSearch
-  },
-  data() {
-    return {
-      visible: false,
-      title: '选择物料',
-
-      categoryLevelId: 1,
-      categoryId: 1,
-      treeList: [],
-      treeLoading: false,
-
-      defaultProps: {
-        children: 'children',
-        label: 'name'
-      },
-      type: null,
-
-      // 表格列配置
-      columns: [
-        {
-          columnKey: 'selection',
-          type: 'selection',
-          width: 45,
-          align: 'center',
-          selectable: (row, index) => {
-            return !this.processData.some((it) => it.id == row.id || it.categoryId == row.id);
-          },
-          reserveSelection: true,
-          fixed: 'left'
-        },
-
-        {
-          label: '物料名称',
-          prop: 'name',
-        },
-
-        {
-          label: '物料编码',
-          prop: 'code'
-        },
-        {
-          label: '牌号',
-          prop: 'brandNum'
-        },
-        {
-          label: '型号',
-          prop: 'modelType'
-        },
-
-        {
-          prop: 'measuringUnit',
-          label: '计量单位',
-          showOverflowTooltip: true,
-     
-        },
-
-        {
-          prop: 'weightUnit',
-          label: '重量单位',
-          showOverflowTooltip: true,
-       
-        },
-
-
-
-        {
-          prop: 'roughWeight',
-          label: '毛重',
-          showOverflowTooltip: true,
-          minWidth: 90
-        },
-
-        {
-          prop: 'netWeight',
-          label: '净重',
-          showOverflowTooltip: true,
-          minWidth: 90
-        },
-
-        {
-          prop: 'inventoryQuantity',
-          label: '库存',
-          showOverflowTooltip: true,
-
+  import { getList } from '@/api/classifyManage/itemInformation';
+  import ProductSearch from './product-search.vue';
+  import { getTreeByGroup } from '@/api/classifyManage';
+  export default {
+    components: {
+      ProductSearch
+    },
+    data() {
+      return {
+        visible: false,
+        title: '选择物料',
+
+        categoryLevelId: 1,
+        categoryId: 1,
+        treeList: [],
+        treeLoading: false,
+
+        defaultProps: {
+          children: 'children',
+          label: 'name'
         },
+        type: null,
+
+        // 表格列配置
+        columns: [
+          {
+            columnKey: 'selection',
+            type: 'selection',
+            width: 45,
+            align: 'center',
+            selectable: (row, index) => {
+              return !this.processData.some(
+                (it) => it.id == row.id || it.categoryId == row.id
+              );
+            },
+            reserveSelection: true,
+            fixed: 'left'
+          },
 
-        
-
-
-
-
-      ],
-
-      // 表格选中数据
-      selection: [],
-
-      processData: [],
-      current: null
-
-    }
-  },
+          {
+            label: '物料名称',
+            prop: 'name'
+          },
 
-  watch: {
+          {
+            label: '物料编码',
+            prop: 'code'
+          },
+          {
+            label: '牌号',
+            prop: 'brandNum'
+          },
+          {
+            label: '型号',
+            prop: 'modelType'
+          },
 
-  },
-  methods: {
+          {
+            prop: 'measuringUnit',
+            label: '计量单位',
+            showOverflowTooltip: true
+          },
 
+          {
+            prop: 'weightUnit',
+            label: '重量单位',
+            showOverflowTooltip: true
+          },
 
-    /* 表格数据源 */
-    async datasource({ page, limit, where }) {
-      const res = await getList({
-        ...where,
+          {
+            prop: 'roughWeight',
+            label: '毛重',
+            showOverflowTooltip: true,
+            minWidth: 90
+          },
 
-        pageNum: page,
-        size: limit,
-        categoryLevelId: this.categoryLevelId,
+          {
+            prop: 'netWeight',
+            label: '净重',
+            showOverflowTooltip: true,
+            minWidth: 90
+          },
 
-      });
-      return res;
-    },
+          {
+            prop: 'inventoryQuantity',
+            label: '库存',
+            showOverflowTooltip: true
+          }
+        ],
 
-    open(item, row, type) {
-      this.type = type
-      this.processData = item || []
-      this.current = row;
-      this.visible = true
+        // 表格选中数据
+        selection: [],
 
-      this.getTreeData();
+        processData: [],
+        current: null
+      };
     },
 
+    watch: {},
+    methods: {
+      /* 表格数据源 */
+      async datasource({ page, limit, where }) {
+        const res = await getList({
+          ...where,
+
+          pageNum: page,
+          size: limit,
+          categoryLevelId: this.categoryLevelId
+        });
+        return res;
+      },
 
+      open(item, row, type) {
+        this.type = type;
+        this.processData = item || [];
+        this.current = row;
+        this.visible = true;
 
-    async getTreeData() {
-      try {
-        this.treeLoading = true;
+        this.getTreeData();
+      },
 
-        const res = await getTreeByGroup({type: 3});
+      async getTreeData() {
+        try {
+          this.treeLoading = true;
+
+          const res = await getTreeByGroup({ type: 3 });
+          this.treeLoading = false;
+          if (res?.code === '0') {
+            this.treeList = res.data;
+
+            this.$nextTick(() => {
+              // 默认高亮第一级树节点
+              if (this.treeList[0]) {
+                this.rootTreeId = this.treeList[0].id;
+                this.$nextTick(() => {
+                  this.$refs.treeRef.setCurrentKey(this.treeList[0].id);
+                });
+              }
+            });
+            return this.treeList;
+          }
+        } catch (error) {}
         this.treeLoading = false;
-        if (res?.code === '0') {
-          this.treeList = res.data;
-
-          this.$nextTick(() => {
-            // 默认高亮第一级树节点
-            if (this.treeList[0]) {
-              this.rootTreeId = this.treeList[0].id
-              this.$nextTick(() => {
-                this.$refs.treeRef.setCurrentKey(this.treeList[0].id);
-              });
-
-            }
-          });
-          return this.treeList;
-        }
-      } catch (error) { }
-      this.treeLoading = false;
-    },
-
-
-    handleNodeClick(data) {
-      this.categoryLevelId = data.id;
-      this.$refs.table.reload({ pageNum: 1, where: {} });
-
-
-
-    },
-
-
-    /* 刷新表格 */
-    reload(where) {
-      this.$refs.table.reload({ page: 1, where: where });
-    },
+      },
 
+      handleNodeClick(data) {
+        this.categoryLevelId = data.id;
+        this.$refs.table.reload({ pageNum: 1, where: {} });
+      },
 
+      /* 刷新表格 */
+      reload(where) {
+        this.$refs.table.reload({ page: 1, where: where });
+      },
 
-    handleClose() {
-      this.visible = false
-      this.$refs.table.setSelectedRows([]);
-      this.selection = []
+      handleClose() {
+        this.visible = false;
+        this.$refs.table.setSelectedRows([]);
+        this.selection = [];
+      },
+      selected() {
+        let _arr = [];
+        if (!this.selection.length) {
+          this.$message.error('请至少选择一条数据');
+          return;
+        }
 
-    },
-    selected() {
-      let _arr = []
-      if (!this.selection.length) {
-        this.$message.error('请至少选择一条数据');
-        return;
-      }
-   
-       _arr = this.selection.map(m => {
-          m.categoryId = m.id
-          m.unit = m.measuringUnit
-          delete m.id
+        _arr = this.selection.map((m) => {
+          m.categoryId = m.id;
+          m.unit = m.measuringUnit;
           return {
             ...m
-          }
-        })
-
+          };
+        });
 
-
-      this.$emit('chooseModal', _arr, this.current)
-      this.handleClose()
-    },
-  }
-}
+        this.$emit('chooseModal', _arr, this.current);
+        this.handleClose();
+      }
+    }
+  };
 </script>
 
 <style lang="scss" scoped>
-.btns {
-  text-align: center;
-  padding: 10px 0;
-}
+  .btns {
+    text-align: center;
+    padding: 10px 0;
+  }
 </style>

+ 1 - 1
src/views/materialPlan/index.vue

@@ -21,7 +21,7 @@
           <el-dropdown trigger="click" @command="handleClick">
             <el-link type="primary" icon="el-icon-plus">创建采购计划</el-link>
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item command="1">来源销售计划</el-dropdown-item>
+              <el-dropdown-item command="1">来源销售订单</el-dropdown-item>
               <el-dropdown-item command="2">来源生产计划</el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>