Browse Source

配件商城

caojunjie 2 years ago
parent
commit
1d053f1489

+ 2 - 2
src/api/basicData/product.js

@@ -67,7 +67,7 @@ export const itemRemove = (data) => {
     return request({
         url: '/api/blade-stock/stockgoods/remove',
         method: 'post',
-        data: data
+        params: data
     })
 }
 export function getAllgoods() {
@@ -90,4 +90,4 @@ export function storagesubmit(data) {
         method: 'post',
         data: data
     })
-}
+}

+ 3 - 1
src/views/paymentManagement/paymentRecord/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <basic-container class="page-crad">
-      <avue-crud ref="crud" :option="option" :data="dataList" :page.sync="page" :search.sync="search"
+      <avue-crud ref="crud" :option="option" :key="key" :data="dataList" :page.sync="page" :search.sync="search"
                  :cell-style="cellStyle" @search-change="searchChange" @current-change="currentChange"
                  @size-change="sizeChange"
                  @refresh-change="refreshChange" @on-load="onLoad" :table-loading="loading" @saveColumn="saveColumn"
@@ -37,6 +37,7 @@ export default {
       dataList: [],
       loading: false,
       detailData: {},
+      key:0,
       page: {
         pageSize: 20,
         currentPage: 1,
@@ -126,6 +127,7 @@ export default {
   },
   async created() {
     this.option = await this.getColumnData(this.getColumnName(259), this.optionBack);
+    this.key++
   },
   methods: {
     cellStyle() {

+ 5 - 6
src/views/product/index.vue

@@ -82,7 +82,7 @@
     </el-dialog>
   </div>
 </template>
-  
+
 <script>
 import detailsPage from "./detailsPage";
 import { option } from "./js/optionList";
@@ -206,9 +206,9 @@ export default {
       this.getWorkDicts("goods_status").then(res => {
         this.findObject(this.option.column, "status").dicData = res.data.data;
       });
-      getAllgoods().then(res => {
-        this.findObject(this.option.column, "cname").dicData = res.data.data
-      });
+      // getAllgoods().then(res => {
+      //   this.findObject(this.option.column, "cname").dicData = res.data.data
+      // });
       getGoodstype().then(res => {
         this.treeData = res.data.data;
         this.findObject(this.option2.column, "parentId").dicData = res.data.data;
@@ -355,7 +355,7 @@ export default {
   }
 }
 </script>
-  
+
 <style  lang="scss"  scoped>
 .page-crad ::v-deep .basic-container__card {
   height: 94.2vh;
@@ -396,4 +396,3 @@ export default {
   }
 }
 </style>
-  

+ 3 - 2
src/views/product/js/optionList.js

@@ -20,8 +20,9 @@ export const option = {
       label: "商品名称",
       prop: "cname",
       type: "select",
-      dicData: [],
+      dicUrl:"/api/blade-client/goodsdesc/descListByCname?cname={{key}}",
       filterable:true,
+      remote:true,
       props: {
         label: "cname",
         value: "cname"
@@ -165,4 +166,4 @@ export const optionList = {
       overHidden: true
     }
   ]
-}
+}

+ 13 - 1
src/views/salesOrder/detailsPage.vue

@@ -230,6 +230,18 @@ export default {
             span: 8,
           },
           {
+            label: "快递公司",
+            prop: "courierCorporation",
+            disabled:true,
+            span: 8,
+          },
+          {
+            label: "快递单号",
+            prop: "courierNumber",
+            disabled:true,
+            span: 8,
+          },
+          {
             label: "仓库",
             prop: "storageId",
             rules: [
@@ -247,7 +259,7 @@ export default {
             placeholder: "打印时显示",
             type: "textarea",
             minRows: 3,
-            span: 16,
+            span: 24,
           }
         ]
       },

+ 166 - 12
src/views/salesOrder/index.vue

@@ -4,7 +4,7 @@
       <avue-crud :key="key" ref="crud" :option="option" :data="dataList" :page.sync="page" :search.sync="search"
                  @search-change="searchChange" @current-change="currentChange" @size-change="sizeChange"
                  @refresh-change="refreshChange" @on-load="onLoad" :table-loading="loading" @saveColumn="saveColumn"
-                 @resetColumn="resetColumn" :cell-style="cellStyle" @search-criteria-switch="searchCriteriaSwitch">
+                 @resetColumn="resetColumn" :cell-style="cellStyle" @search-criteria-switch="searchCriteriaSwitch" @expand-change="expandChange">
         <template slot="menuLeft">
           <div style="display:flex;padding-top: 10px">
             <el-badge v-for="item of badgeList" :hidden="item.dictionaryStatus == '全部'?true:false" :value="item.count" :max="99" class="item" type="danger">
@@ -15,6 +15,9 @@
             <el-button type="primary" size="mini" @click.stop="newAdd()">新建销售单</el-button>
           </div>
         </template>
+        <template slot="expand" slot-scope="{row}">
+          <avue-crud ref="expandCrud" :option="optionList" :data="row.orderItemsList"></avue-crud>
+        </template>
         <template slot="corpIdSearch">
           <crop-select v-model="search.corpId" corpType="KH"></crop-select>
         </template>
@@ -67,7 +70,15 @@
         <el-form :model="form" label-position="right">
           <el-col :span="12">
             <el-form-item label="快递公司:" label-width="100px">
-              <el-input v-model="form.courierCorporation" placeholder="请输入快递公司" size="small" style="width: 100%;"></el-input>
+<!--              <el-input v-model="form.courierCorporation" placeholder="请输入快递公司" size="small" style="width: 100%;"></el-input>-->
+              <el-select v-model="form.courierCorporation" placeholder="请选择快递公司" clearable filterable size="small" style="width: 100%;">
+                <el-option
+                    v-for="item in courierServices"
+                    :key="item.dictKey"
+                    :label="item.dictValue"
+                    :value="item.dictKey">
+                </el-option>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -88,6 +99,7 @@
 <script>
 import detailsPage from "./detailsPage";
 import {option} from "./js/optionList";
+import {optionList} from "./js/optionList";
 import {
   getListTwo,
   getCorpsAll,
@@ -95,7 +107,7 @@ import {
   getCorpType,
   orderRemove,
   statusStatisticsApi,
-  delivery
+  delivery, getDetails, getStoragelist
 } from "@/api/basicData/salesOrder";
 
 export default {
@@ -104,6 +116,108 @@ export default {
     return {
       src: '',
       form: {},
+      optionList: {
+        header:false,
+        align: "center",
+        addBtn: false,
+        refreshBtn: false,
+        editBtn: false,
+        delBtn: false,
+        columnBtn: false,
+        border: true,
+        menuWidth: 120,
+        stripe: true,
+        index: true,
+        menu:false,
+        expandRowKeys:[],
+        rowKey:'id',
+        indexSlot: true,
+        showSummary: true,
+        summaryText: "合计",
+        sumColumnList: [
+          {
+            name: "amount",
+            type: "sum"
+          },
+          {
+            name: "storageAmount",
+            type: "sum"
+          },
+          {
+            name: "storageInQuantity",
+            type: "sum"
+          },
+          {
+            name: "actualQuantity",
+            type: "sum"
+          }
+        ],
+        column: [
+          {
+            label: "产品",
+            prop: "cname",
+            width: '250px',
+            // overHidden: true
+          },
+          {
+            label: "仓库",
+            prop: "storageId",
+            overHidden: true,
+            type: "select",
+            props: {
+              label: "cname",
+              value: "id"
+            },
+            dicData: []
+          },
+          {
+            label: "数量",
+            prop: "storageInQuantity",
+            overHidden: true
+          },
+          {
+            label: "单位",
+            prop: "unit",
+            type: "select",
+            props: {
+              label: "dictValue",
+              value: "dictValue"
+            },
+            dicData: [],
+            cell: true,
+            overHidden: true
+          },
+          {
+            label: "单价",
+            prop: "price",
+            overHidden: true
+          },
+          {
+            label: "金额",
+            prop: "amount",
+            overHidden: true
+          },
+          {
+            label: "送货数量",
+            prop: "actualQuantity",
+            type: 'number',
+            controls: false,
+            cell: true,
+            overHidden: true
+          },
+          {
+            label: "备注",
+            prop: "remarks",
+            cell: true,
+            overHidden: true
+          },
+          {
+            label: "进价",
+            prop: "purchasePrice",
+            overHidden: true
+          }
+        ]
+      },
       dialogVisible: false,
       badgeList: [],
       show: true,
@@ -191,6 +305,7 @@ export default {
             }
           }]
       },
+      courierServices:[]
     };
   },
   components: {
@@ -205,6 +320,9 @@ export default {
       this.findObject(this.option.column, "actualPaymentStatus").dicData = res.data.data;
       this.key++
     });
+    this.getWorkDicts("courier_services").then(res => {
+      this.courierServices = res.data.data
+    });
   },
   activated() {
     this.$refs.crud.refreshTable();
@@ -229,15 +347,32 @@ export default {
   },
   methods: {
     confirmShipment(){
-      delivery({
-        id:this.form.id,
-        courierNumber:this.form.courierNumber,
-        courierCorporation:this.form.courierCorporation
-      }).then(res=>{
-        this.$message.success("发货成功")
-        this.dialogVisible = false
-        this.onLoad(this.page)
-      })
+      if (!this.form.courierNumber){
+        this.$alert('是否继续发货', '未填写快递单号', {
+          confirmButtonText: '确定',
+          callback: action => {
+            delivery({
+              id:this.form.id,
+              courierNumber:this.form.courierNumber,
+              courierCorporation:this.form.courierCorporation
+            }).then(res=>{
+              this.$message.success("发货成功")
+              this.dialogVisible = false
+              this.onLoad(this.page)
+            })
+          }
+        });
+      }else{
+        delivery({
+          id:this.form.id,
+          courierNumber:this.form.courierNumber,
+          courierCorporation:this.form.courierCorporation
+        }).then(res=>{
+          this.$message.success("发货成功")
+          this.dialogVisible = false
+          this.onLoad(this.page)
+        })
+      }
     },
     query(status) {
       this.search.status = status
@@ -253,6 +388,20 @@ export default {
       });
       this.$refs.crud.init();
     },
+    expandChange(row, expendList) {
+      this.getWorkDicts("unit").then(res => {
+        this.findObject(this.optionList.column, "unit").dicData = res.data.data;
+      });
+      getStoragelist().then(res => {
+        this.storageoptions = res.data;
+        this.findObject(this.optionList.column, "storageId").dicData = res.data;
+      })
+      if (row){
+        getDetails({ id: row.id }).then(res=>{
+          row.orderItemsList = res.data.data.orderItemsList
+        })
+      }
+    },
     searchCriteriaSwitch(type) {
       if (type) {
         this.option.height = this.option.height - 138;
@@ -278,6 +427,11 @@ export default {
       this.$store.commit("IN_PJXS_STATUS");
     },
     onLoad(page, params = {}) {
+      if (this.$refs.expandCrud){
+        this.dataList.forEach(item => {
+          this.$refs.crud.toggleRowExpansion(item, false);
+        });
+      }
       statusStatisticsApi().then(res => {
         this.badgeList = [];
         this.badgeList.push({

+ 1 - 0
src/views/salesOrder/js/optionList.js

@@ -6,6 +6,7 @@ export const option = {
   align: "center",
   searchSpan: 8,
   tip: false,
+  expand: true,
   border: true,
   index: true,
   addBtn: false,

+ 2 - 2
vue.config.js

@@ -32,9 +32,9 @@ module.exports = {
       '/api': {
         //本地服务接口地址
         // target: 'http://192.168.3.64:1080',
-        target: 'http://192.168.0.103:1080',
+        // target: 'http://192.168.0.103:1080',
         // 打包地址
-        // target: 'http://121.37.83.47:10004',//服务器ip
+        target: 'http://121.37.83.47:10004',//服务器ip
         // target: 'http://trade.tubaosoft.com:10004',//服务器域名
         ws: true,
         pathRewrite: {