ysy 2 роки тому
батько
коміт
ffd1b2e52b

+ 1 - 1
src/components/material/index.vue

@@ -9,7 +9,7 @@
                 </div>
                 <!-- 表格 -->
                 <template v-slot:content>
-                    <ele-pro-table ref="table" :columns="columns" :datasource="datasource" height="calc(100vh - 350px)"
+                    <ele-pro-table ref="table" :columns="columns" :datasource="datasource" row-key="id" height="calc(100vh - 350px)"
                         class="dict-table" :selection.sync="selection">
                     </ele-pro-table>
                 </template>

+ 1 - 1
src/views/material/materialBOM/components/edit-dialog.vue

@@ -49,7 +49,7 @@
 
         <el-col :span="8">
           <el-form-item label="生产版本:" prop="produceVersionId">
-            <el-select v-model="form.produceVersionId" filterable placeholder="选择" :style="{ width: '100%' }">
+            <el-select v-model="form.produceVersionId" filterable placeholder="选择" :style="{ width: '100%' }">
               <el-option v-for="item in versionList" :key="item.id" :label="item.code + '-' + item.name" :value="item.id">
               </el-option>
             </el-select>

+ 313 - 0
src/views/material/product/components/MaterialAdd.vue

@@ -0,0 +1,313 @@
+
+<template>
+  <ele-modal
+    width="1060px"
+    :visible="visible"
+    v-if="visible"
+    :append-to-body="true"
+    :close-on-click-modal="true"
+    custom-class="ele-dialog-form"
+    title="物料BOM"
+    @update:visible="updateVisible"
+  >
+    <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+      <header-title title="物料BOM"> </header-title>
+
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="BOM编码:"  prop="bomCode">
+            <el-input v-model="form.bomCode" />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="8" >
+          <el-form-item label="BOM名称:" prop="bomName">
+            <el-input placeholder="请输入BOM名称" v-model="form.bomName" />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="8" >
+          <el-form-item label="版本号:" prop="bomVersion">
+            <el-input placeholder="请输入BOM版本号" v-model="form.bomVersion" />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="8">
+          <el-form-item label="状态:" prop="status">
+            <el-select v-model="form.status" placeholder="" filterable>
+              <el-option
+                v-for="item in statusList"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="8">
+          <el-form-item label="生产版本:" prop="produceVersionId">
+            <el-select
+              v-model="form.produceVersionId"
+              filterable
+              placeholder="清选择"
+              :style="{ width: '100%' }"
+            >
+              <el-option
+                v-for="item in versionList"
+                :key="item.code"
+                :label="item.code + '-' + item.name"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+
+      <el-row>
+        <div class="ele-body">
+          <ele-pro-table
+            ref="table"
+            :datasource="form.materialList"
+            row-key="id"
+            :columns="columns"
+          >
+            <!-- 表头工具栏 -->
+            <template v-slot:toolbar>
+              <el-button
+                size="small"
+                icon="el-icon-plus"
+                class="ele-btn-icon"
+                type="primary"
+                @click.native="openParam()"
+                >添加物料</el-button
+              >
+            </template>
+
+            <!-- 操作列 -->
+            <template v-slot:action="{ row }">
+              <el-popconfirm
+                class="ele-action"
+                title="确定要删除当前物料吗?"
+                @confirm="remove(row)"
+              >
+                <template v-slot:reference>
+                  <el-link
+                    type="danger"
+                    :underline="false"
+                    icon="el-icon-delete"
+                  >
+                    删除
+                  </el-link>
+                </template>
+              </el-popconfirm>
+            </template>
+          </ele-pro-table>
+        </div>
+      </el-row>
+
+      <el-row class="rx-cc">
+        <el-button
+          type="primary"
+          size="small"
+          icon="el-icon-plus"
+          class="ele-btn-icon"
+          @click="save"
+        >
+          保存
+        </el-button>
+      </el-row>
+    </el-form>
+
+    <!-- 选择物料弹窗 -->
+    <materialDialog
+      ref="materiaRef"
+      @chooseModal="chooseModal"
+    ></materialDialog>
+  </ele-modal>
+</template>
+  
+<script>
+import materialDialog from '@/components/material';
+import { pageList } from '@/api/technology/version/version.js';
+export default {
+  components: {
+    materialDialog
+  },
+  props: {
+    // 弹窗是否打开
+    visible: Boolean,
+    // 修改回显的数据
+    data: Object
+  },
+  data() {
+    const defaultForm = {
+      id: null,
+
+      bomCode: '',
+      bomName: '',
+      bomVersion: '1.0',
+      status: '',
+      produceVersionId: '',
+      materialList: []
+    };
+    return {
+      defaultForm,
+      // 表单数据
+      form: {
+        ...defaultForm
+      },
+
+      versionList: [],
+
+      // 表单验证规则
+      rules: {
+        bomCode: [
+          { required: true, message: '请输入BOM编码', trigger: 'blur' }
+        ],
+
+        bomName: [
+          { required: true, message: '请输入BOM名称', trigger: 'blur' }
+        ],
+
+        bomVersion: [
+          { required: true, message: '请输入BOM版本号', trigger: 'blur' }
+        ],
+
+        status: [
+          { required: true, message: '请选择状态', trigger: 'change' }
+        ],
+
+        produceVersionId: [
+          { required: true, message: '请选择生产版本', trigger: 'change' }
+        ]
+
+      },
+
+      columns: [
+        {
+          prop: 'code',
+          label: '编码'
+        },
+        {
+          prop: 'name',
+          label: '名称',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'brandNum',
+          label: '牌号'
+        },
+        {
+          prop: 'modelType',
+          label: '型号'
+        },
+        {
+          prop: 'measuringUnit',
+          label: '计量单位'
+        },
+        {
+          prop: 'packingUnit',
+          label: '包装单位'
+        },
+
+        {
+          columnKey: 'action',
+          label: '操作',
+
+          align: 'center',
+          resizable: false,
+          slot: 'action',
+          showOverflowTooltip: true
+        }
+      ],
+
+      statusList: [
+        { label: '草稿', value: -1 },
+        { label: '失效', value: 0 },
+        { label: '生效', value: 1 }
+      ],
+
+      // 提交状态
+      loading: false,
+
+      removeList: []
+    };
+  },
+  computed: {
+    // 是否开启响应式布局
+    styleResponsive() {
+      return this.$store.state.theme.styleResponsive;
+    }
+  },
+  methods: {
+    openParam() {
+      this.$refs.materiaRef.open(this.form.materialList, '选择物料', '1');
+    },
+
+    chooseModal(data) {
+      this.$set(this.form, 'materialList', data);
+    },
+
+    /* 删除 */
+    remove(row) {
+      this.form.materialList = this.form.materialList.filter(
+        (d) => d.id !== row.id
+      );
+    },
+
+    /* 表格数据源 */
+    datasource({ page, limit, where }) {
+      return [];
+    },
+
+    async getVersionList() {
+      const res = await pageList({
+        pageNum: 1,
+        size: 100
+      });
+
+      this.versionList = res.list;
+    },
+
+    /* 保存编辑 */
+    save() {
+      this.$refs.form.validate((valid) => {
+        if (!valid) {
+          return false;
+        }
+
+        if(this.form.materialList.length ==0) {
+            this.$message.info('请至少添加一条物料');
+                return;
+        }
+        this.loading = true;
+      });
+    },
+    /* 更新visible */
+    updateVisible(value) {
+      this.$emit('update:visible', value);
+    }
+  },
+
+  watch: {
+    async visible(visible) {
+      if (visible) {
+        this.getVersionList();
+        if (this.data) {
+          this.$util.assignObject(this.form, {
+            ...this.data
+          });
+        } else {
+        }
+      } else {
+        this.$refs.form.clearValidate();
+        this.form = { ...this.defaultForm };
+      }
+    }
+  }
+};
+</script>
+  

+ 10 - 23
src/views/material/product/components/MaterialModal.vue

@@ -49,9 +49,6 @@
 
 
 
-
-
-
             </el-row>
 
 
@@ -90,15 +87,13 @@
                             <el-select v-model="bomItem.status" placeholder="" filterable>
                                 <el-option v-for="item in statusList" :key="item.value" :label="item.label"
                                     :value="item.value">
+
                                 </el-option>
                             </el-select>
                         </el-form-item>
                     </el-col>
 
 
-
-        
-
                     <el-col :span="8">
                         <el-form-item label="生产版本:" prop="produceVersionId">
                             <el-select v-model="bomItem.produceVersionId" filterable placeholder="清选择"
@@ -152,12 +147,6 @@
             </el-card>
 
 
-
-
-
-
-
-
         </el-form>
 
 
@@ -168,6 +157,9 @@
         <!-- 选择物料弹窗 -->
         <materialDialog ref="materiaRef" @chooseModal="chooseModal"></materialDialog>
 
+        <!-- 物料Bom -->
+        <MaterialAdd :visible.sync="materialShow" ref="materialAddRef"></MaterialAdd>
+
 
 
     </ele-modal>
@@ -175,12 +167,12 @@
   
 <script>
 import materialDialog from '@/components/material'
-
+import MaterialAdd from './MaterialAdd.vue'
 import { pageList } from '@/api/technology/version/version.js';
 export default {
     components: {
         materialDialog,
-
+        MaterialAdd
     },
     props: {
         // 弹窗是否打开
@@ -287,7 +279,9 @@ export default {
 
             removeList: [],
 
-            tableData: []
+            tableData: [],
+
+            materialShow: false
 
         };
     },
@@ -339,14 +333,7 @@ export default {
         },
 
         handleAdd() {
-            this.form.list.push({
-                bomCode: '',
-                bomName: '',
-                bomVersion: '',
-                status: '',
-                produceVersionId: '',
-                materialList: []
-            })
+         this.materialShow = true
         },
 
         removeBom(index) {

+ 10 - 3
src/views/technology/productParam/components/user-edit.vue

@@ -74,7 +74,14 @@
 
 
         <el-col :span="8">
-          <el-form-item label="舟皿规格:" prop="palletSpecification	">
+          <el-form-item label="舟血型号:" prop="palletModelType">
+            <el-input disabled placeholder="自动带入" v-model="form.palletModelType" />
+          </el-form-item>
+        </el-col>
+
+
+        <el-col :span="8">
+          <el-form-item label="舟皿规格:" prop="palletSpecification">
             <el-input disabled placeholder="自动带入" v-model="form.palletSpecification" />
           </el-form-item>
         </el-col>
@@ -224,6 +231,7 @@ export default {
       palletName: '',
       palletCode: '',
       palletSpecification: '',
+      palletModelType: '',
       processingRequirement: '',
       remark: '',
       taskParam: [
@@ -362,8 +370,7 @@ export default {
         this.$set(this.form, 'palletId', row.id)
         this.$set(this.form, 'palletCode', row.code)
         this.$set(this.form, 'palletSpecs', row.specification)
-
-
+        this.$set(this.form, 'ModelType', row.modelType)
       }
 
     },

+ 3 - 2
vue.config.js

@@ -27,12 +27,13 @@ module.exports = {
     }
   },
   devServer: {
+    
     // 代理跨域的配置
     proxy: {
       // 当我们的本地的请求 有/api的时候,就会代理我们的请求地址向另外一个服务器发出请求
       '/api': {
-        target: 'http://124.71.68.31:50001',
-        // target: 'http://192.168.1.139:18086',
+        // target: 'http://124.71.68.31:50001',
+        target: 'http://192.168.1.139:18086',
         // target: 'http://192.168.1.132:18086',
         changeOrigin: true, // 只有这个值为true的情况下 才表示开启跨域
         pathRewrite: {