Browse Source

商品信息接口 以及页面

qinbai 3 years ago
parent
commit
3781bd9c85

+ 1 - 1
src/api/basicData/commodityType.js

@@ -2,7 +2,7 @@ import request from '@/router/axios';
 
 export const getList = (current, size, params, goodsTypeId) => {
     return request({
-        url: '/api/blade-client/goodsdesc/list',
+        url: '/api/blade-client/goodsdesc/descList',
         method: 'get',
         params: {
             ...params,

+ 8 - 6
src/views/basicData/commodityType/configuration/customerContact.json

@@ -11,18 +11,20 @@
   "refreshBtn": false,
   "searchMenuSpan": 6,
   "dialogWidth": "60%",
+  "align": "center",
   "tree": true,
   "border": true,
   "index": true,
   "selection": true,
-  "menuWidth": 300,
+  "menuWidth": 150,
+  "addBtnText": "录入明细",
   "dialogClickModal": false,
   "column":[
     {
       "label": "数量",
       "prop": "code",
       "index": 1,
-      "width":100,
+      "width":200,
       "cell": true,
       "rules": [
         {
@@ -35,7 +37,7 @@
       "label": "计价单位",
       "prop": "bigCharacter",
       "index": 1,
-      "width":100,
+      "width":200,
       "cell": true,
       "rules": [
         {
@@ -48,7 +50,7 @@
       "label": "币别",
       "prop": "brand",
       "index": 2,
-      "width":100,
+      "width":200,
       "cell": true,
       "rules": [
         {
@@ -61,7 +63,7 @@
       "label": "单价",
       "prop": "brandItem",
       "index": 3,
-      "width":100,
+      "width":200,
       "cell": true,
       "rules": [
         {
@@ -74,7 +76,7 @@
       "label": "备注",
       "prop": "typeno",
       "index": 4,
-      "width":100,
+      "width":530,
       "cell": true,
       "rules": [
         {

+ 11 - 9
src/views/basicData/commodityType/configuration/customerPurchase.json

@@ -11,18 +11,20 @@
     "refreshBtn": false,
     "searchMenuSpan": 6,
     "dialogWidth": "60%",
+  "align": "center",
     "tree": true,
     "border": true,
     "index": true,
     "selection": true,
-    "menuWidth": 300,
+    "menuWidth": 150,
+  "addBtnText": "录入明细",
     "dialogClickModal": false,
     "column":[
         {
             "label": "供应商",
             "prop": "code",
             "index": 1,
-            "width":100,
+            "width":150,
             "cell": true,
             "rules": [
                 {
@@ -35,7 +37,7 @@
             "label": "计价单位",
             "prop": "bigCharacter",
             "index": 1,
-            "width":100,
+            "width":120,
             "cell": true,
             "rules": [
                 {
@@ -48,7 +50,7 @@
             "label": "币别",
             "prop": "brand",
             "index": 2,
-            "width":100,
+            "width":120,
             "cell": true,
             "rules": [
                 {
@@ -61,7 +63,7 @@
             "label": "采购单价",
             "prop": "brandItem",
             "index": 3,
-            "width":100,
+            "width":120,
             "cell": true,
             "rules": [
                 {
@@ -74,7 +76,7 @@
             "label": "是否含税",
             "prop": "typeno",
             "index": 4,
-            "width":100,
+            "width":120,
             "cell": true,
             "rules": [
                 {
@@ -87,7 +89,7 @@
             "label": "税率",
             "prop": "typeno",
             "index": 4,
-            "width":100,
+            "width":120,
             "cell": true,
             "rules": [
                 {
@@ -100,7 +102,7 @@
             "label": "金额",
             "prop": "typeno",
             "index": 4,
-            "width":100,
+            "width":120,
             "cell": true,
             "rules": [
                 {
@@ -113,7 +115,7 @@
             "label": "备注",
             "prop": "typeno",
             "index": 4,
-            "width":100,
+            "width":200,
             "cell": true,
             "rules": [
                 {

+ 78 - 61
src/views/basicData/commodityType/detailsPageEdit.vue

@@ -20,18 +20,22 @@
         <containerTitle title="基础资料"></containerTitle>
         <basic-container style="margin-bottom: 10px">
           <el-row>
-            <el-col v-for="(item,index) in basicData.column" :key="index" :span="item.span?item.span:8">
+            <el-col v-for="(item,index) in basicData.column" :key="index" :span="item.span?item.span:6">
               <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
-                <!--                <avue-input-tree v-if="item.prop === 'corpsTypeId'" leaf-only multiple :props="{label:'title'}"v-model="form[item.prop]" placeholder="请选择内容" type="tree" :dic="dic"/>-->
-                <el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]"
-                                size="small" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
-                <span v-else-if="item.type === 'select'">
-                  <el-select v-model="form[item.prop]" slot="prepend" style="width: 100%;" size="small"
-                             placeholder="请选择">
-                  <el-option v-for="(item,index2) in item.dicData" :key="index2" :label="item.label"
-                             :value="item.value"></el-option>
+                <avue-input-tree
+                  v-if="item.prop === 'corpsTypeId'"
+                  leaf-only
+                  multiple
+                  style="width: 100%;"
+                  :props="{label:'title'}"
+                  v-model="form[item.prop]"
+                  placeholder=" "
+                  type="tree"
+                  :dic="dicData"/>
+                <el-input type="textarea" v-else-if="(item.type === 'textarea')" v-model="form[item.prop]"   size="small" autocomplete="off" placeholder=" "></el-input>
+                <el-select v-else-if="item.type === 'select'" style="width: 100%" v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable>
+<!--                  <el-option v-for="(item,index) in selectData" :key="index" :label="item.dictValue" :value="item.dictValue"></el-option>-->
                 </el-select>
-                </span>
                 <el-input type="age" v-else v-model="form[item.prop]" size="small" autocomplete="off"></el-input>
               </el-form-item>
             </el-col>
@@ -42,16 +46,10 @@
           <el-row>
             <el-col v-for="(item,index) in packingData.column" :key="index" :span="item.span?item.span:8">
               <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
-                <!--                <avue-input-tree v-if="item.prop === 'corpsTypeId'" leaf-only multiple :props="{label:'title'}"v-model="form[item.prop]" placeholder="请选择内容" type="tree" :dic="dic"/>-->
-                <el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]"
-                                size="small" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
-                <span v-else-if="item.type === 'select'">
-                  <el-select v-model="form[item.prop]" slot="prepend" style="width: 100%;" size="small"
-                             placeholder="请选择">
-                  <el-option v-for="(item,index2) in item.dicData" :key="index2" :label="item.label"
-                             :value="item.value"></el-option>
+                <el-input type="textarea" v-if="(item.type === 'textarea')" v-model="form[item.prop]"   size="small" autocomplete="off" placeholder=" "></el-input>
+                <el-select v-else-if="item.type === 'select'" style="width: 100%" v-model="form[item.prop]" size="small" placeholder="请选择" clearable filterable>
+                  <!--                  <el-option v-for="(item,index) in selectData" :key="index" :label="item.dictValue" :value="item.dictValue"></el-option>-->
                 </el-select>
-                </span>
                 <el-input type="age" v-else v-model="form[item.prop]" size="small" autocomplete="off"></el-input>
               </el-form-item>
             </el-col>
@@ -64,16 +62,14 @@
               v-model="contactsForm"
               :data="contactsData"
               ref="crudContact"
-              @row-save="rowSave"
-              @row-click="handleRowClick"
-              @row-update="rowUpdate"
+              @row-save="rowContactSave"
               @row-del="rowDel">
             <template slot-scope="{row,index}" slot="menu">
               <el-button
                   type="text"
                   size="small"
-                  @click="rowCell(row,index)"
-              >{{ row.$cellEdit ? '保存' : '修改' }}
+                  @click="rowContactCell(row,index)"
+              >{{ row.$cellEdit ? '修改完成' : '修改' }}
               </el-button>
             </template>
           </avue-crud>
@@ -83,18 +79,16 @@
           <avue-crud
               :option="customerPurchase"
               v-model="contactsForm"
-              :data="contactsData"
-              ref="crudContact"
-              @row-save="rowSave"
-              @row-click="handleRowClick"
-              @row-update="rowUpdate"
+              :data="purchaseData"
+              ref="crudPurchase"
+              @row-save="rowPurchaseSave"
               @row-del="rowDel">
             <template slot-scope="{row,index}" slot="menu">
               <el-button
                   type="text"
                   size="small"
-                  @click="rowCell(row,index)"
-              >{{ row.$cellEdit ? '保存' : '修改' }}
+                  @click="rowPurchaseCell(row,index)"
+              >{{ row.$cellEdit ? '修改完成' : '修改' }}
               </el-button>
             </template>
           </avue-crud>
@@ -145,7 +139,9 @@ export default {
       imgUploadList: imgUploadList,
       contactsForm: {},
       contactsData: [],
+      purchaseData:[],
       imgUploadData: [],
+      dicData:[],
       basicData: {
         column: [
           {
@@ -178,9 +174,10 @@ export default {
                 trigger: 'blur'
               }
             ]
-          }, {
-            label: '中文描述',
-            prop: 'typeno',
+          },
+          {
+            label: '商品类别',
+            prop: 'corpsTypeId',
             rules: [
               {
                 required: false,
@@ -189,8 +186,19 @@ export default {
               }
             ]
           }, {
-            label: '英文描述',
-            prop: 'brandItem',
+            label: '中文规格',
+            prop: 'productCategory',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          },
+          {
+            label: '英文规格',
+            prop: 'productCategory',
             rules: [
               {
                 required: false,
@@ -218,8 +226,8 @@ export default {
                 trigger: 'blur'
               }
             ]
-          }, {
-            label: '中文规格',
+          },  {
+            label: '海关中文',
             prop: 'productCategory',
             rules: [
               {
@@ -229,7 +237,7 @@ export default {
               }
             ]
           }, {
-            label: '海关编码',
+            label: '海关英文',
             prop: 'productCategory',
             rules: [
               {
@@ -239,7 +247,7 @@ export default {
               }
             ]
           }, {
-            label: '海关中文',
+            label: '海关编码',
             prop: 'productCategory',
             rules: [
               {
@@ -248,8 +256,8 @@ export default {
                 trigger: 'blur'
               }
             ]
-          }, {
-            label: '海关英文',
+          },{
+            label: '退税率',
             prop: 'productCategory',
             rules: [
               {
@@ -258,8 +266,9 @@ export default {
                 trigger: 'blur'
               }
             ]
-          }, {
-            label: '退税率',
+          },
+          {
+            label: '计量单位',
             prop: 'productCategory',
             rules: [
               {
@@ -268,9 +277,24 @@ export default {
                 trigger: 'blur'
               }
             ]
+          },
+          {
+            label: '中文描述',
+            prop: 'typeno',
+            span: 6,
+            type:'textarea',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
           }, {
-            label: '计量单位',
-            prop: 'productCategory',
+            label: '英文描述',
+            prop: 'brandItem',
+            span: 6,
+            type:'textarea',
             rules: [
               {
                 required: false,
@@ -278,7 +302,7 @@ export default {
                 trigger: 'blur'
               }
             ]
-          }
+          },
         ]
       },
       packingData: {
@@ -376,6 +400,7 @@ export default {
           }, {
             label: '包装描述',
             prop: 'productCategory',
+            type:'textarea',
             span:24,
             rules: [
               {
@@ -413,25 +438,17 @@ export default {
     }
   },
   methods: {
-    //新增商品信息保存触发
-    rowSave(row, done, loading) {
-      console.log(row)
-      console.log(this.contactsData)
-      // this.contactsData.push(row)
+    rowContactSave(row, done, loading) {
       done()
     },
-    //点击行可编辑
-    handleRowClick(row, event, column) {
-      console.log(row.$index)
+    rowPurchaseSave(row, done, loading) {
+      done()
     },
-    //商品编辑
-    rowCell(row, index) {
-      console.log(row)
+    rowContactCell(row, index) {
       this.$refs.crudContact.rowCell(row, index)
     },
-    //修改商品信息触发
-    rowUpdate(row, index, done, loading) {
-      done(row);
+    rowPurchaseCell(row, index) {
+      this.$refs.crudPurchase.rowCell(row, index)
     },
     //删除商品信息触发
     rowDel(row, index, donerowDel) {

+ 0 - 2
src/views/basicData/commodityType/index.vue

@@ -611,8 +611,6 @@ export default {
       this.loading = true;
       getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId).then(res => {
         const data = res.data.data;
-        this.page.total = data.total;
-        console.log(res)
         this.data = data.records;
         this.loading = false;
         this.selectionClear();