ysy 2 лет назад
Родитель
Сommit
d0b4047297

+ 1 - 1
src/api/classifyManage/itemInformation.js

@@ -11,7 +11,7 @@ export async function getList(params) {
 export async function informationAdd(data) {
   const res = await request.post('/main/category/add', data);
   if (res.data.code == 0) {
-    return res.data.data;
+    return res.data.message;
   }
   return Promise.reject(new Error(res.data.message));
 }

+ 146 - 156
src/views/ItemInformation/components/Dialog-item.vue

@@ -1,38 +1,18 @@
 <template>
   <div>
-    <el-dialog
-      title="新建物品"
-      :visible.sync="dialogVisible"
-      width="70%"
-      :before-close="handleClose"
-    >
-      <el-form
-        :model="formData"
-        :rules="rules"
-        ref="ruleForm"
-        label-width="80px"
-      >
+    <el-dialog title="新建物品" :visible.sync="dialogVisible" width="80%" :before-close="handleClose">
+      <el-form :model="formData" :rules="rules" ref="ruleForm" label-width="80px">
         <div class="main">
           <div class="left">
             <el-card class="box-card">
               <el-form-item label="物品类别" prop="categoryId">
-                <el-select
-                  v-model="formData.categoryId"
-                  @change="handleOptions"
-                >
-                  <el-option
-                    v-for="(item, index) in newObj"
-                    :label="item.name"
-                    :value="item.id"
-                  ></el-option>
+                <el-select v-model="formData.categoryId" @change="chooseItem">
+                  <el-option v-for="(item, index) in typeList" :key="index" :label="item.name" :value="item.id"></el-option>
                 </el-select>
               </el-form-item>
               <el-form-item label="分类" prop="type">
-                <el-cascader
-                  v-model="formData.type"
-                  :options="options"
-                  :props="{ value: 'id', label: 'name' }"
-                ></el-cascader>
+                <el-cascader v-model="formData.type" :options="classList"
+                  :props="{ value: 'id', label: 'name' }"></el-cascader>
               </el-form-item>
               <el-form-item label="物品编码" prop="code">
                 <el-input placeholder="请输入" v-model="formData.code">
@@ -47,69 +27,42 @@
                 <el-input placeholder="请输入" v-model="formData.unit">
                 </el-input>
               </el-form-item>
-              <el-form-item label="包装单位" prop="bz">
-                <el-input placeholder="请输入" v-model="formData.bz">
+              <el-form-item label="包装单位" prop="packingUnit">
+                <el-input placeholder="请输入" v-model="formData.packingUnit">
                 </el-input>
               </el-form-item>
               <el-form-item label="参考单价">
                 <div class="dj">
-                  <el-input-number
-                    v-model="formData.dj"
-                    :min="1"
-                    :max="10"
-                    label="请输入"
-                  ></el-input-number>
-                  <el-select style="width: 40%" v-model="formData.djUnit">
-                    <el-option label="元" value="元"></el-option>
-                    <el-option label="万元" value="万元"></el-option>
-                  </el-select>
+                  <el-input-number style="width:300px" v-model="formData.price" :min="1" :max="10"
+                    label="请输入"></el-input-number>
+                  <DictSelection dictName="金额单位" clearable filterable v-model="formData.priceUnit">
+                  </DictSelection>
                 </div>
               </el-form-item>
               <el-form-item label="保质期">
                 <div class="dj">
-                  <el-input-number
-                    v-model="formData.warrantyPeriod"
-                    :min="1"
-                    :max="10"
-                    label="请输入"
-                  ></el-input-number>
-                  <el-select
-                    style="width: 40%"
-                    v-model="formData.warrantyPeriodUnit"
-                  >
-                    <el-option label="分钟" value="元"></el-option>
-                    <el-option label="小时" value="万元"></el-option>
-                    <el-option label="天" value="天"></el-option>
-                    <el-option label="月" value="月"></el-option>
-                    <el-option label="年" value="年"></el-option>
-                  </el-select>
+                  <el-input-number style="width:300px" v-model="formData.warrantyPeriod" :min="1" :max="10"
+                    label="请输入"></el-input-number>
+
+                  <DictSelection dictName="时间单位" clearable filterable v-model="formData.warrantyPeriodUnit">
+                  </DictSelection>
+
                 </div>
               </el-form-item>
               <el-form-item label="安全库存" prop="secureInventory">
-                <el-input
-                  placeholder="请输入"
-                  v-model="formData.secureInventory"
-                >
+                <el-input placeholder="请输入" v-model="formData.secureInventory">
                 </el-input>
               </el-form-item>
               <el-form-item label="盘点模式" prop="inventoryMode">
-                <el-radio v-model="formData.inventoryMode" label="1"
-                  >逐个盘点</el-radio
-                >
-                <el-radio v-model="formData.inventoryMode" label="2"
-                  >批量盘点</el-radio
-                >
+                <el-radio v-model="formData.inventoryMode" label="1">逐个盘点</el-radio>
+                <el-radio v-model="formData.inventoryMode" label="2">批量盘点</el-radio>
               </el-form-item>
               <el-form-item label="允许拆包">
                 <el-switch v-model="formData.isUnpack" active-color="#13ce66">
                 </el-switch>
               </el-form-item>
               <el-form-item label="描述">
-                <el-input
-                  type="textarea"
-                  placeholder="请输入"
-                  v-model="formData.ms"
-                >
+                <el-input type="textarea" placeholder="请输入" v-model="formData.description">
                 </el-input>
               </el-form-item>
             </el-card>
@@ -201,110 +154,147 @@
 
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisible = false">取 消</el-button>
-        <el-button type="primary" @click="submit">确 定</el-button>
+        <el-button type="primary" :loading="loading" @click="submit">确 定</el-button>
       </span>
     </el-dialog>
   </div>
 </template>
 
 <script>
-  import { getTreeByPid } from '@/api/classifyManage';
-  export default {
-    data() {
-      return {
-        dialogVisible: false,
-        formData: {
-          categoryId: '4',
-          isUnpack: true,
-          inventoryMode: '2'
-        },
-        rules: {
-          categoryId: [
-            { required: true, message: '请选择', trigger: 'change' }
-          ],
-          warrantyPeriod: [
-            { required: true, message: '请输入', trigger: 'blur' }
-          ],
-          warrantyPeriodUnit: [
-            { required: true, message: '请选择', trigger: 'change' }
-          ],
-          inventoryMode: [
-            { required: true, message: '请选择', trigger: 'change' }
-          ]
-        },
-        options: [],
-        activeName: 'first',
-        tableData: [],
-        newObj: []
-      };
-    },
-    methods: {
-      submit() {},
-      async handleTree() {
-        const res = await getTreeByPid(4);
-        console.log(res);
-        this.options = res.data;
-        this.newObj = res.data.map((item) => {
-          return { id: item.id, name: item.code + ' ' + item.name };
-        });
+import { getTreeByPid } from '@/api/classifyManage';
+import { informationAdd } from '@/api/classifyManage/itemInformation'
+export default {
+  data() {
+    return {
+      dialogVisible: false,
+      formData: {
+        categoryId: '',
+        isUnpack: true,
+        inventoryMode: '2'
       },
-      open() {
-        this.dialogVisible = true;
+      rules: {
+        categoryId: [
+          { required: true, message: '请选择', trigger: 'change' }
+        ],
+        warrantyPeriod: [
+          { required: true, message: '请输入', trigger: 'blur' }
+        ],
+        warrantyPeriodUnit: [
+          { required: true, message: '请选择', trigger: 'change' }
+        ],
+        inventoryMode: [
+          { required: true, message: '请选择', trigger: 'change' }
+        ],
+
+        name: [
+          { required: true, message: '请输入物品名称', trigger: 'blur' }
+        ]
       },
-      handleClose() {},
-      handleOptions(e) {
-        if (e == 4) {
-          this.formData.code1 = 'w1';
-          this.formData.code = 4;
+      classList: [],
+      activeName: 'first',
+      tableData: [],
+      typeList: [],
+
+
+      // 提交状态
+      loading: false,
+    };
+  },
+  methods: {
+    submit() {
+      this.$refs.ruleForm.validate(valid => {
+        if (valid) {
+          this.loading = true;
+          informationAdd({ category: this.formData}).then((msg) => {
+            this.formData = {};
+            this.loading = false;
+            this.$message.success(msg);
+            this.handleClose();
+            this.$emit('done');
+          }).finally(() => {
+            this.loading = false;
+          })
         }
-      }
+
+      })
+    },
+    async handleTree(code) {
+      const res = await getTreeByPid(code);
+      this.classList = res.data;
+      this.typeList = res.data.map((item) => {
+        return { id: item.id, name: item.code + ' ' + item.name };
+      });
     },
-    mounted() {
-      this.handleTree();
-      this.handleOptions(4);
+    open() {
+      this.dialogVisible = true;
+    },
+    handleClose() {
+      this.dialogVisible = false;
+    },
+    chooseItem(val) {
+      this.classList.map(item => {
+        if (item.id == val) {
+          this.formData.code1  = item.code
+          this.itemForm.code = val
+          this.getTreeData(item.code)
+        }
+      })
+
+  
     }
-  };
+  },
+  mounted() {
+    this.handleTree(0);
+  }
+};
 </script>
 
 <style lang="scss" scoped>
-  .el-card {
-    height: 100%;
-  }
-  .tabs {
-    margin-top: 20px;
-    .one {
-      .el-button {
-        margin: 10px 0;
-      }
+.el-card {
+  height: 100%;
+}
+
+.tabs {
+  margin-top: 20px;
+
+  .one {
+    .el-button {
+      margin: 10px 0;
     }
   }
-  .dashed-line {
-    border-bottom: 1px dashed #999;
-    margin-top: 10px;
-  }
-  ::v-deep .el-form-item {
-    margin-bottom: 10px;
-  }
-  .dj {
-    display: flex;
-    ::v-deep .el-select {
-      margin-left: 10px;
-    }
+}
+
+.dashed-line {
+  border-bottom: 1px dashed #999;
+  margin-top: 10px;
+}
+
+
+.dj {
+  display: flex;
+
+  ::v-deep .el-select {
+    margin-left: 10px;
   }
-  ::v-deep .el-cascader,
-  .el-select {
-    width: 100%;
+}
+
+::v-deep .el-cascader,
+.el-select {
+  width: 100%;
+}
+
+.main {
+  display: flex;
+  width: 100%;
+
+  .left {
+    margin-right: 5px;
+    width: 30%;
   }
-  .main {
-    display: flex;
-    width: 100%;
-    .left {
-      margin-right: 5px;
-      width: 30%;
-    }
-    .right {
-      margin-left: 5px;
-      width: 70%;
-    }
+
+  .right {
+    margin-left: 5px;
+    width: 70%;
   }
+}
 </style>

+ 2 - 1
vue.config.js

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