ysy 2 år sedan
förälder
incheckning
2d87d22fa9

+ 7 - 8
src/views/material/product/detail.vue

@@ -14,21 +14,19 @@
             </el-form-item>
           </el-col>
 
-         
-        <el-col :span="8" v-if="ruleCode == '自定义'"  >
+          
+        <el-col :span="8" v-if="ruleCode == '自定义'"  key="1" >
             <el-form-item label="编码" prop="code">
               <el-input v-model="form.code" readonly @click.native="openCode" />
             </el-form-item>
           </el-col>
 
-          <el-col :span="8" v-else>
+          <el-col :span="8"  v-else  key="2">
             <el-form-item label="编码" prop="code">
               <el-input v-model="form.code"  />
             </el-form-item>
           </el-col> 
 
-         
-
 
  
 
@@ -291,8 +289,8 @@ export default {
     handleDirectorChange(id, info) { },
     // 确定分类
     async confirmCategory(node, title, PathInfo, ruleCode) {
-      this.form.code = null
-      console.log(ruleCode)
+        this.$set(this.form, 'code', null);
+   
       if (title == '选择产品分类') {
         this.$set(this.form, 'productCategoryLevelName', node.name);
         this.$set(this.form, 'productCategoryLevelId', node.id);
@@ -308,12 +306,13 @@ export default {
         if(ruleCode &&  ruleCode != '自定义') {
           const code = await getCode(ruleCode);
           this.$set(this.form, 'code', code);
-          this.$forceUpdate()
       
         }
 
 
       }
+
+      this.$forceUpdate()
     },
     openCategory() {
       this.$refs.categoryRefs.open();

+ 8 - 10
src/views/technology/parameter/components/user-edit.vue

@@ -31,31 +31,29 @@
 
         <el-col :span="10" v-if="form.textType == 1">
           <el-form-item label="默认值:">
-            <!-- <el-input type="number" v-model="form.defaultValue" maxlength="8" placeholder="请输入" /> -->
+            <!-- oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d).*$/, '$1$2.$3').replace(/^\./g, '').replace(/^0+(?!\.|$)/g, ''),value = Number(value) >= 999999.99 ? 999999.99 : value" -->
             <el-input
-              oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d).*$/, '$1$2.$3').replace(/^\./g, '').replace(/^0+(?!\.|$)/g, ''),value = Number(value) >= 999999.99 ? 999999.99 : value"
+           
               v-model="form.defaultValue" placeholder="请输入"></el-input>
           </el-form-item>
         </el-col>
 
 
 
-
-
         <el-col :span="10" v-if="form.textType == 3">
           <el-form-item label="参数上限:">
-            <!-- <el-input placeholder="请输入" v-model="form.maxValue" /> -->
-            <el-input
+            <el-input placeholder="请输入" v-model="form.maxValue" />
+            <!-- <el-input
               oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d).*$/, '$1$2.$3').replace(/^\./g, '').replace(/^0+(?!\.|$)/g, ''),value = Number(value) >= 999999.99 ? 999999.99 : value"
-              v-model="form.maxValue" placeholder="请输入"></el-input>
+              v-model="form.maxValue" placeholder="请输入"></el-input> -->
           </el-form-item>
         </el-col>
         <el-col :span="10" v-if="form.textType == 3">
           <el-form-item label="参数下限:">
-            <!-- <el-input placeholder="请输入" v-model="form.minValue" /> -->
-            <el-input
+            <el-input placeholder="请输入" v-model="form.minValue" />
+            <!-- <el-input
               oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d\d\d\d\d\d\d).*$/, '$1$2.$3').replace(/^\./g, '').replace(/^0+(?!\.|$)/g, ''),value = Number(value) >= 999999.99 ? 999999.99 : value"
-              v-model="form.minValue" placeholder="请输入"></el-input>
+              v-model="form.minValue" placeholder="请输入"></el-input> -->
           </el-form-item>
         </el-col>
 

+ 248 - 0
src/views/technology/productParam/components/ProductModal.vue

@@ -0,0 +1,248 @@
+<template>
+  <el-dialog
+    :title="title"
+    :visible.sync="visible"
+    :before-close="handleClose"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    width="80%"
+  >
+    <el-card shadow="never">
+      <ProductSearch @search="reload" />
+      <ele-split-layout
+        width="244px"
+        allow-collapse
+        :right-style="{ overflow: 'hidden' }"
+      >
+        <div class="ele-border-lighter split-layout-right-content">
+          <AssetTree
+            ref="assetTreeRef"
+            :id="categoryLevelId"
+            @handleNodeClick="handleNodeClick"
+          />
+        </div>
+        <!-- 表格 -->
+        <template v-slot:content>
+          <ele-pro-table
+            ref="table"
+            :columns="columns"
+            :datasource="datasource"
+            height="calc(100vh - 350px)"
+            class="dict-table"
+            @cell-click="cellClick"
+          >
+            <!-- 表头工具栏 -->
+            <template v-slot:action="{ row }">
+              <el-radio class="radio" v-model="radio" :label="row.id"><i></i></el-radio>
+            </template>
+          </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>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+ import AssetTree from '@/components/AssetTree';
+ import ProductSearch from './product-search.vue'
+ import { getMaterialList } from '@/api/material/manage.js';
+export default {
+   components: { AssetTree, ProductSearch },
+  data () {
+    return {
+      visible: false,
+     
+      // 表格列配置
+      columns: [
+        {
+          columnKey: 'index',
+          type: 'index',
+          width: 45,
+          align: 'center',
+          reserveSelection: true
+        },
+        {
+          prop: 'code',
+          label: '编码'
+        },
+        {
+          prop: 'name',
+          label: '名称',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'brandNum',
+          label: '牌号'
+        },
+
+        {
+            prop: 'modelType',
+            label: '型号',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'specification',
+            label: '规格',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'measuringUnit',
+            label: '计量单位',
+            showOverflowTooltip: true,
+            minWidth: 90
+          },
+
+          {
+            prop: 'weightUnit',
+            label: '重量单位',
+            showOverflowTooltip: true,
+            minWidth: 90
+          },
+
+          {
+            prop: 'roughWeight',
+            label: '毛重',
+            showOverflowTooltip: true,
+            minWidth: 90
+          },
+
+          {
+            prop: 'netWeight',
+            label: '净重',
+            showOverflowTooltip: true,
+            minWidth: 90
+          },
+
+
+          {
+            prop: 'packingUnit',
+            align: 'center',
+            label: '包装单位',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'categoryLevelPath',
+            label: '分类',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+     
+        {
+          action: 'action',
+          slot: 'action',
+          align: 'center',
+          label: '选择'
+        }
+      ],
+      title: null,
+      categoryLevelId: null,
+      radio:null
+    }
+  },
+
+  watch: {
+
+  },
+  methods: {
+    /* 表格数据源 */
+    datasource ({ page, where, limit }) {
+      return getMaterialList({
+        ...where,
+        pageNum: page,
+        size: limit,
+        categoryLevelId: this.categoryLevelId,
+
+      });
+    },
+    handleNodeClick (data) {
+      this.categoryLevelId = data.id;
+      this.reload();
+    },
+    /* 刷新表格 */
+    reload () {
+      this.$refs.table.reload();
+    },
+    open(item, title, categoryLevelId){
+      if(item){
+        this.title = title
+        this.categoryLevelId = categoryLevelId
+
+        if(title == '选择产品') {
+          this.current = {
+          id:item.categoryId,
+          name: item.categoryName,
+          code:item.categoryCode
+        }
+        this.radio = item.categoryId
+      
+        } else if(title == '选择舟皿') {
+          this.current = {
+          id:item.categoryId,
+          name: item.categoryName,
+          code:item.categoryCode
+        }
+        this.radio = item.categoryId
+        }
+
+      }
+      this.visible = true
+    },
+
+  
+
+
+
+    // 单击获取id
+    cellClick (row) {
+        this.current = row
+        this.radio = row.id
+    },
+    handleClose () {
+      this.visible = false
+      this.current = null
+      this.radio = ''
+    },
+    selected(){
+       if(!this.current){
+         return this.$message.warning('请选择工作中心')
+       }
+       this.$emit('changeProduct', this.title, this.current)
+       this.handleClose()
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.tree_col {
+  border: 1px solid #eee;
+  padding: 10px 0;
+  box-sizing: border-box;
+  height: 500px;
+  overflow: auto;
+}
+.table_col {
+  padding-left: 10px;
+  ::v-deep .el-table th.el-table__cell {
+    background: #f2f2f2;
+  }
+}
+.pagination {
+  text-align: right;
+  padding: 10px 0;
+}
+.btns {
+  text-align: center;
+  padding: 10px 0;
+}
+.topsearch{
+	margin-bottom:15px;
+}
+</style>

+ 99 - 0
src/views/technology/productParam/components/product-search.vue

@@ -0,0 +1,99 @@
+<!-- 搜索表单 -->
+<template>
+  <el-form
+    label-width="77px"
+    class="ele-form-search"
+    @keyup.enter.native="search"
+    @submit.native.prevent
+  >
+    <el-row :gutter="10">
+      <el-col v-bind="styleResponsive ? { md: 8 } : { span: 8 }">
+        <el-form-item label="编码">
+          <el-input clearable v-model="where.code" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { md: 8 } : { span: 8 }">
+        <el-form-item label="名称">
+          <el-input clearable v-model="where.name" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+
+      <el-col v-bind="styleResponsive ? { md: 8 } : { span: 8 }">
+        <el-form-item label="型号">
+          <el-input clearable v-model="where.modelType" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { md: 8 } : { span: 8 }">
+        <div class="ele-form-actions">
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            class="ele-btn-icon"
+            @click="search"
+          >
+            查询
+          </el-button>
+
+          <el-button
+            @click="reset"
+            icon="el-icon-refresh"
+            class="ele-btn-icon"
+            size="medium"
+            >重置</el-button
+          >
+        </div>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+
+<script>
+  export default {
+    data () {
+      // 默认表单数据
+      const defaultWhere = {
+        name: '',
+        code: '',
+        brandNum: '',
+        modelType: ''
+      };
+      return {
+        defaultWhere,
+        // 表单数据
+        where: { ...defaultWhere },
+        treeData:[]
+      };
+    },
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive () {
+        return this.$store.state.theme.styleResponsive;
+      }
+    },
+    created() {
+    },
+    methods: {
+
+      /* 搜索 */
+      search () {
+        if (this.where.appType === 0) {
+          this.where.appType = '';
+        }
+        this.$emit('search', this.where);
+      },
+      /*  重置 */
+      reset () {
+        this.where = { ...this.defaultWhere };
+        this.search();
+      }
+    }
+  };
+</script>
+
+<style>
+  .ele-form-actions {
+    display: inline-block;
+    transform: translate(0);
+    transition: all;
+  }
+</style>

+ 44 - 25
src/views/technology/productParam/components/user-edit.vue

@@ -5,7 +5,7 @@
     <header-title title="基本信息"></header-title>
     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <el-row>
-  
+
         <el-col :span="8">
           <el-form-item label="产品名称:" prop="categoryName">
             <el-input @click.native="chooseProduct" v-model="form.categoryName" readonly />
@@ -43,22 +43,26 @@
 
         <el-col :span="8">
           <el-form-item label="生产版本:" prop="produceVersionId">
-            <el-select
-            v-model="form.produceVersionId"
-            filterable
-            placeholder="清选择"
-          >
-            <el-option
-              v-for="item in VersionList"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
+            <el-select v-model="form.produceVersionId" filterable placeholder="清选择">
+              <el-option v-for="item in VersionList" :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="moldingAgent">
+            <el-input @click.native="chooseMolding" v-model="form.moldingAgent" />
           </el-form-item>
         </el-col>
 
+        <el-col :span="8">
+          <el-form-item label="舟皿名称:" prop="palletName">
+            <el-input @click.native="chooseMolding" v-model="form.palletName" />
+          </el-form-item>
+        </el-col>
 
 
 
@@ -76,8 +80,8 @@
     </template>
 
 
-        <!-- 选择产品弹窗 -->
-        <ProductModal ref="productRefs" @changeProduct='determineChoose' />
+    <!-- 选择产品弹窗 -->
+    <ProductModal ref="productRefs" @changeProduct='determineChoose' />
 
   </ele-modal>
 </template>
@@ -85,7 +89,7 @@
 <script>
 import parameter from '@/api/technology/parameter';
 
-import ProductModal from '@/views/technology/route/components/ProductModal.vue';
+import ProductModal from './ProductModal.vue';
 
 
 export default {
@@ -142,17 +146,32 @@ export default {
 
 
     chooseProduct() {
-      this.$refs.productRefs.open(this.form)
+      this.$refs.productRefs.open(this.form, '选择产品', '9')
     },
-    determineChoose(row) {
-      this.$set(this.form, 'categoryName', row.name)
-      this.$set(this.form, 'categoryId', row.id)
-      this.$set(this.form, 'categoryCode', row.code)
-      this.$set(this.form, 'modelType', row.name)
-      this.$set(this.form, 'brandNum', row.id)
-      this.$set(this.form, 'specification', row.code)
+
+
+    chooseMolding() {
+      this.$refs.productRefs.open(this.form, '选择舟皿', '8')
     },
 
+    determineChoose(title, row) {
+      if (title == '选择产品') {
+        this.$set(this.form, 'categoryName', row.name)
+        this.$set(this.form, 'categoryId', row.id)
+        this.$set(this.form, 'categoryCode', row.code)
+        this.$set(this.form, 'modelType', row.name)
+        this.$set(this.form, 'brandNum', row.id)
+        this.$set(this.form, 'specification', row.code)
+      } else if (title == '选择舟皿') {
+        this.$set(this.form, 'palletName', row.name)
+        this.$set(this.form, 'palletId', row.id)
+
+
+      }
+
+    },
+
+
 
     /* 保存编辑 */
     save() {