Jelajahi Sumber

【新增】
1.零售订单
2.发货申请单

莫绍宝 3 tahun lalu
induk
melakukan
cd82fd24d1

+ 2 - 2
src/api/supply/apply.js

@@ -1,9 +1,9 @@
 import request from '@/utils/request'
 
 // 获取列表
-export function getList(params) {
+export function getApplyList(params) {
   return request({
-    url: '/ship/list',
+    url: '/invoice/list',
     method: 'get',
     params
   })

+ 39 - 22
src/views/supply/apply/apply_list.vue

@@ -6,14 +6,10 @@
         <el-form ref="screenForm" :model="screenForm" label-width="100px" size="small" label-position="left">
           <el-row :gutter="20">
             <el-col :xs="24" :sm="24" :lg="24">
-              <el-form-item prop="orderNum" label-width="0">
-                <el-radio-group v-model="screenForm.status" size="medium">
-                  <el-radio-button label="1">全部</el-radio-button>
-                  <el-radio-button label="2">已保存</el-radio-button>
-                  <el-radio-button label="3">待审核</el-radio-button>
-                  <el-radio-button label="3">审核通过</el-radio-button>
-                  <el-radio-button label="3">审核驳回</el-radio-button>
-                  <el-radio-button label="3">已发货</el-radio-button>
+              <el-form-item prop="status" label-width="0">
+                <el-radio-group v-model="screenForm.status" size="medium" @change="getList()">
+                  <el-radio-button label="">全部</el-radio-button>
+                  <el-radio-button v-for="(item, index) in statusList" :key="index" :label="item.value">{{item.label}}</el-radio-button>
                 </el-radio-group>
               </el-form-item>
             </el-col>
@@ -23,18 +19,18 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="仓库" prop="orderNum">
-                <el-input v-model="screenForm.orderNum" placeholder="请输入仓库"></el-input>
+              <el-form-item label="仓库" prop="warehouse">
+                <el-input v-model="screenForm.warehouse" placeholder="请输入仓库"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="经销商编码" prop="jxsName">
-                <el-input v-model="screenForm.jxsName" placeholder="请输入经销商编码"></el-input>
+              <el-form-item label="经销商编码" prop="jxsNum">
+                <el-input v-model="screenForm.jxsNum" placeholder="请输入经销商编码"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="经销商名称" prop="jxsNum">
-                <el-input v-model="screenForm.jxsNum" placeholder="请输入经销商名称"></el-input>
+              <el-form-item label="经销商名称" prop="jxsName">
+                <el-input v-model="screenForm.jxsName" placeholder="请输入经销商名称"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
@@ -125,15 +121,22 @@
 </template>
 
 <script>
-import { getList } from "@/api/supply/apply";
+import { getApplyList } from "@/api/supply/apply";
 import ApplyDetail from "@/views/supply/apply/components/apply_detail";
 import ApplyExamine from "@/views/supply/apply/components/apply_examine";
 
+let that
 export default {
   components: {
     ApplyDetail,
     ApplyExamine,
   },
+  filters: {
+    statusFilter(val) {
+      let obj = that.statusList.find(o => o.value == val);
+      return obj ? obj.label : ''
+    }
+  },
   data() {
     return {
       currentPage: 1, // 当前页码
@@ -143,13 +146,21 @@ export default {
       listLoading: false, // 列表加载loading
       screenForm: { // 筛选表单数据
         orderNum: '',
+        warehouse: '',
+        jxsNum: '',
         jxsName: '',
+        date: '',
         chName: '',
         model: '',
-        date: '',
-        jxsNum: '',
         status: '',
       },
+      statusList: [
+        { label: '已保存', value: 1 },
+        { label: '待审核', value: 2 },
+        { label: '审核通过', value: 3 },
+        { label: '审核驳回', value: 5 },
+        { label: '已退单', value: 4 },
+      ],
 
       queryItem: {},
       isShowDetail: false,
@@ -160,18 +171,23 @@ export default {
   computed: {
     exParams() {
       return {
-        retreatOrderNo: this.screenForm.orderNum,
+        id: this.screenForm.orderNum,
+        correspondId: this.screenForm.warehouse,
         customerNumber: this.screenForm.jxsNum,
         customerName: this.screenForm.jxsName,
         productName: this.screenForm.chName,
         specification: this.screenForm.model,
         startTime: this.screenForm.date ? this.screenForm.date[0] : '',
         endTime: this.screenForm.date ? this.screenForm.date[1] : '',
-        status: 2, // 1:发货单,2:工程发货单
+        status: this.screenForm.status,
       }
     },
   },
 
+  beforeCreate() {
+    that = this;
+  },
+
   created() {
     this.getList();
   },
@@ -193,16 +209,17 @@ export default {
       let params = {
         pageNum: this.currentPage,
         pageSize: this.pageSize,
-        retreatOrderNo: this.screenForm.orderNum,
+        id: this.screenForm.orderNum,
+        correspondId: this.screenForm.warehouse,
         customerNumber: this.screenForm.jxsNum,
         customerName: this.screenForm.jxsName,
         productName: this.screenForm.chName,
         specification: this.screenForm.model,
         startTime: this.screenForm.date ? this.screenForm.date[0] : '',
         endTime: this.screenForm.date ? this.screenForm.date[1] : '',
-        status: 2, // 1:发货单,2:工程发货单
+        status: this.screenForm.status,
       };
-      getList(params).then((res) => {
+      getApplyList(params).then((res) => {
         this.dataList = res.data.records;
         this.listTotal = res.data.total;
         this.listLoading = false;

+ 6 - 2
src/views/supply/retail/components/retail_detail.vue

@@ -6,7 +6,7 @@
       <div class="title">提货进度</div>
     </div>
     <div class="progress-container">
-      <el-progress :text-inside="true" :stroke-width="26" :percentage="70"></el-progress>
+      <el-progress :text-inside="true" :stroke-width="26" :percentage="progress || 0"></el-progress>
     </div>
 
     <div class="main-title">
@@ -69,7 +69,7 @@
     <div class="table" style="margin-top: 20px">
       <el-table :data="detailData.retailOrderItemList" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
         <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品编码" prop="materialCode" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
@@ -237,6 +237,10 @@ export default {
     },
     isExamine() {
       return this.detailData.examineStatus === 'OK' || this.detailData.examineStatus === 'FAIL'
+    },
+    progress() {
+      if(this.detailData.totalQty == 0) return 0;
+      return (this.detailData.takeQty * 100) / (this.detailData.totalQty * 100);
     }
   },
 

+ 3 - 2
src/views/supply/retail/components/retail_examine.vue

@@ -50,7 +50,7 @@
     <div class="table" style="margin-top: 20px">
       <el-table :data="detailData.retailOrderItemList" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
         <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品编码" prop="materialCode" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
@@ -82,7 +82,7 @@
       <el-row :gutter="0">
         <el-col :span="12" class="item">
           <div class="label">审批人</div>
-          <div class="value">{{detailData.examineName}}</div>
+          <div class="value">{{userName}}</div>
         </el-col>
         <el-col :span="12" class="item">
           <div class="label">审批结果</div>
@@ -132,6 +132,7 @@ export default {
   data() {
     return {
       detailData: {},
+      userName: JSON.parse(localStorage.getItem("supply_user")).nickName,
 
       formLoading: false,
       mainForm: {

+ 8 - 7
src/views/supply/retail/components/retail_form.vue

@@ -77,9 +77,9 @@
             {{scope.row.price * scope.row.qty}}
           </template>
         </el-table-column>
-        <el-table-column align="center" label="返利钱包" prop="walletRebateId" min-width="160" show-overflow-tooltip>
+        <el-table-column align="center" label="返利钱包" prop="customerWalletId2" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
-            <el-select v-model="scope.row.walletRebateId" placeholder="选择返利钱包" size="small" @change="changeWallet(scope.$index)">
+            <el-select v-model="scope.row.customerWalletId2" placeholder="选择返利钱包" size="small" @change="changeWallet(scope.$index)">
               <el-option label="不使用" value=""></el-option>
               <el-option
                 v-for="item in flWalletList"
@@ -100,9 +100,9 @@
             {{scope.row.qty * scope.row.discAmount}}
           </template>
         </el-table-column>
-        <el-table-column align="center" label="现金钱包" prop="walletRebateId2" min-width="160" show-overflow-tooltip>
+        <el-table-column align="center" label="现金钱包" prop="customerWalletId" min-width="160" show-overflow-tooltip>
           <template slot-scope="scope">
-            <el-select v-model="scope.row.walletRebateId2" placeholder="选择现金钱包" size="small">
+            <el-select v-model="scope.row.customerWalletId" placeholder="选择现金钱包" size="small">
               <el-option label="不使用" value=""></el-option>
               <el-option
                 v-for="item in xjWalletList"
@@ -452,6 +452,7 @@ export default {
           item.status2 = '';
           item.rebateAmount = '';
           item.rebateRate = '';
+          item.productPriceId = item.id;
         });
         this.leftGoodsList = res.data.records;
         this.listTotal = res.data.total;
@@ -569,8 +570,8 @@ export default {
 
     // 修改返利钱包
     changeWallet(index) {
-      if(this.goodsList[index].walletRebateId) {
-        let obj = this.flWalletList.find(o => o.customerWalletId == this.goodsList[index].walletRebateId);
+      if(this.goodsList[index].customerWalletId2) {
+        let obj = this.flWalletList.find(o => o.customerWalletId == this.goodsList[index].customerWalletId2);
         this.goodsList[index].rebateRate = obj.rebateRate;
       }else {
         this.goodsList[index].rebateRate = '';
@@ -607,7 +608,7 @@ export default {
       this.$refs.mainForm.validate((valid) => {
         if (valid) {
           for(let i=0; i<this.goodsList.length; i++) {
-            if(!this.goodsList[i].walletRebateId2) {
+            if(!this.goodsList[i].customerWalletId) {
               this.$errorMsg('请选择现金钱包');
               return;
             }

+ 19 - 3
src/views/supply/retail/components/retail_return.vue

@@ -50,7 +50,7 @@
     <div class="table" style="margin-top: 20px">
       <el-table :data="detailData.retailOrderItemList" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
         <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品编码" prop="materialCode" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
@@ -82,11 +82,11 @@
       <el-row :gutter="0">
         <el-col :span="12" class="item">
           <div class="label">操作人</div>
-          <div class="value">{{detailData.examineName}}</div>
+          <div class="value">{{userName}}</div>
         </el-col>
         <el-col :span="12" class="item">
           <div class="label">退订日期</div>
-          <div class="value">{{detailData.examineName}}</div>
+          <div class="value">{{nowDate}}</div>
         </el-col>
         <el-col :span="24" class="item">
           <div class="label">退订说明</div>
@@ -127,6 +127,7 @@ export default {
   data() {
     return {
       detailData: {},
+      userName: JSON.parse(localStorage.getItem("supply_user")).nickName,
 
       formLoading: false,
       mainForm: {
@@ -146,6 +147,21 @@ export default {
         openSidebar: this.sidebar.opened
       }
     },
+    nowDate() {
+      var date = new Date();
+      var seperator1 = "-";
+      var year = date.getFullYear();
+      var month = date.getMonth() + 1;
+      var strDate = date.getDate();
+      if (month >= 1 && month <= 9) {
+          month = "0" + month;
+      }
+      if (strDate >= 0 && strDate <= 9) {
+          strDate = "0" + strDate;
+      }
+      var currentdate = year + seperator1 + month + seperator1 + strDate;
+      return currentdate;
+    }
   },
 
   created() {