Browse Source

Merge branch 'feature/Feature-basic_data' into develop

莫绍宝 3 years ago
parent
commit
032a1720f6

+ 45 - 31
src/api/finance/rebate_form.js

@@ -1,41 +1,55 @@
-import request from '@/utils/request'
+import request from "@/utils/request";
 // 经销商列表
 export function getCustomerList(params) {
-    return request({
-      url: '/customer/list',
-      method: 'get',
-      params
-    })
-  }
+  return request({
+    url: "/customer/list",
+    method: "get",
+    params,
+  });
+}
 // 经销商钱包列表
 export function getWalletCustomerList(params) {
-    return request({
-      url: '/wallet/customer/list',
-      method: 'get',
-      params
-    })
-  }
+  return request({
+    url: "/wallet/customer/list",
+    method: "get",
+    params,
+  });
+}
 // 新增
 export function getRebateOrderAdd(data) {
-    return request({
-      url: '/rebate/order/add',
-      method: 'post',
-      data
-    })
-  }
+  return request({
+    url: "/rebate/order/add",
+    method: "post",
+    data,
+  });
+}
 // 提审
 export function getRebateOrderApply(params) {
-    return request({
-      url: '/rebate/order/apply',
-      method: 'post',
-      params
-    })
-  }
+  return request({
+    url: "/rebate/order/apply",
+    method: "post",
+    params,
+  });
+}
 // 列表
 export function getRebateOrderList(params) {
-    return request({
-      url: '/rebate/order/list',
-      method: 'get',
-      params
-    })
-  }
+  return request({
+    url: "/rebate/order/list",
+    method: "get",
+    params,
+  });
+}
+// 下载销售返利单模板
+export function getRebateOrderDownLoad() {
+  return request({
+    url: "/rebate/order/download",
+    method: "get",
+  });
+}
+// 导入销售返利单数据
+export function getRebateOrderImport() {
+  return request({
+    url: "/rebate/order/import",
+    method: "post",
+  });
+}

+ 9 - 3
src/views/basic_data/dealer/dealer_deposit.vue

@@ -45,7 +45,13 @@
     <!-- 按钮 -->
     <div class="btn-group clearfix">
       <div class="fl">
-        <el-button type="primary" size="small" @click="addFn">新增</el-button>
+        <el-button
+          v-if="$checkBtnRole('add', $router.meta.roles)"
+          type="primary"
+          size="small"
+          @click="addFn"
+          >新增</el-button
+        >
       </div>
     </div>
 
@@ -563,5 +569,5 @@ export default {
 // .main {
 //   padding: 12px;
 // }
-</style>>
-
+</style>
+>

+ 12 - 2
src/views/basic_data/dealer/dealer_stock.vue

@@ -33,9 +33,19 @@
 
     <div class="btn-group clearfix">
       <div class="fl">
-        <el-button type="primary" size="small" @click="addFn">新增</el-button>
+        <el-button
+          v-if="$checkBtnRole('add', $router.meta.roles)"
+          type="primary"
+          size="small"
+          @click="addFn"
+          >新增</el-button
+        >
 
-        <el-popconfirm @onConfirm="deleFn" title="这是一段内容确定删除吗?">
+        <el-popconfirm
+          v-if="$checkBtnRole('del', $router.meta.roles)"
+          @onConfirm="deleFn"
+          title="这是一段内容确定删除吗?"
+        >
           <el-button
             type="primary"
             size="small"

+ 2 - 0
src/views/basic_data/taker/taker_car.vue

@@ -42,6 +42,7 @@
     <div class="btn-group clearfix">
       <div class="fl">
         <el-button
+          v-if="$checkBtnRole('add', $router.meta.roles)"
           type="primary"
           icon="el-icon-plus"
           size="small"
@@ -50,6 +51,7 @@
         >
 
         <el-popconfirm
+          v-if="$checkBtnRole('del', $router.meta.roles)"
           class="delClass"
           @onConfirm="delFn"
           title="这是一段内容确定删除吗?"

+ 7 - 1
src/views/basic_data/taker/taker_list.vue

@@ -49,7 +49,13 @@
     <!-- 按钮 -->
     <div class="btn-group clearfix">
       <div class="fl">
-        <el-button type="primary" size="small" @click="addFn">新增</el-button>
+        <el-button
+          v-if="$checkBtnRole('add', $router.meta.roles)"
+          type="primary"
+          size="small"
+          @click="addFn"
+          >新增</el-button
+        >
       </div>
       <div class="fr">
         <ExportButton :exUrl="'/taker-record/export'" :exParams="exParams" />

+ 23 - 16
src/views/finance/change_apply.vue

@@ -15,7 +15,7 @@
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="返利互转单号" prop="">
-              <el-input placeholder="请输入" disabled></el-input>
+              <el-input disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
@@ -32,30 +32,24 @@
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="制单人" prop="">
-              <el-input placeholder="请输入" disabled></el-input>
+              <el-input v-model="searchForm.nickName" disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="经销商编号" prop="">
-              <el-input
-                placeholder="请输入"
-                v-model="searchForm.customerId"
-              ></el-input>
+              <el-input disabled v-model="searchForm.customerNumber"></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="经销商名称" prop="">
-              <el-input
-                placeholder="请输入"
-                v-model="searchForm.customerName"
-              ></el-input>
+              <el-input disabled v-model="searchForm.customerName"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :xs="24" :sm="12" :lg="6">
+          <!-- <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="备注信息" prop="">
               <el-input placeholder="请输入"></el-input>
             </el-form-item>
-          </el-col>
+          </el-col> -->
         </el-row>
       </el-form>
     </div>
@@ -135,7 +129,7 @@
             show-overflow-tooltip
           >
             <template slot-scope="scope">
-              <el-input v-model="scope.row.money"></el-input>
+              <el-input type="number" v-model="scope.row.money"></el-input>
             </template>
           </el-table-column>
           <el-table-column
@@ -196,6 +190,8 @@ export default {
       searchForm: {
         customerId: "",
         customerName: "",
+        nickName: "",
+        customerNumber: "",
         theTime: null,
       },
       customerData: [], //经销商数据
@@ -245,13 +241,22 @@ export default {
       if (v.customerId == "") {
         return;
       }
-      console.log(v, index, 123456789);
+
       v.name = "";
       let res = await getWalletCustomerList({
         customerId: v.customerId,
         type: "REBATE",
       });
-      this.$set(this.dataList[index], "typeList", res.data);
+
+      if (index == 1) {
+        let aa = res.data.filter(
+          (v) => v.customerWalletId != this.dataList[0].name
+        );
+        console.log(aa);
+        this.$set(this.dataList[index], "typeList", aa);
+      } else {
+        this.$set(this.dataList[index], "typeList", res.data);
+      }
     },
 
     // async typeFn(row) {
@@ -315,7 +320,7 @@ export default {
         amount = this.dataList[1].money;
       }
       await getTransferAdd({
-        theTime: this.theTime,
+        theTime: this.searchForm.theTime,
         receiverWalletRebateId,
         initiatorWalletRebateId,
         receiverRemark,
@@ -330,6 +335,8 @@ export default {
       this.searchForm.customerNumber = res.data.customerNumber;
       this.dataList[0].customerId = res.data.customerId;
       this.searchForm.customerName = res.data.customerName;
+      this.searchForm.customerNumber = res.data.customerNumber;
+      this.searchForm.nickName = res.data.nickName;
       // const res2 = await getWalletCustomerList({
       //   customerId: res.data.customerId,
       //   type: "REBATE",

+ 7 - 2
src/views/finance/components/rebate_list-apply.vue

@@ -374,14 +374,19 @@
         <el-col :span="12" class="item">
           <div class="label">审批结果</div>
           <div class="value">
-            <el-radio v-model="examineStatus" label="OK">通过</el-radio>
-            <el-radio v-model="examineStatus" label="FAIL">驳回</el-radio>
+            <el-radio disabled v-model="examineStatus" label="OK"
+              >通过</el-radio
+            >
+            <el-radio disabled v-model="examineStatus" label="FAIL"
+              >驳回</el-radio
+            >
           </div>
         </el-col>
         <el-col :span="24" class="item">
           <div class="label">审批说明</div>
           <div class="value">
             <el-input
+              disabled
               v-model="examineRemark"
               placeholder="请输入内容"
             ></el-input>

+ 98 - 8
src/views/finance/components/rebate_list-confirm.vue

@@ -20,6 +20,7 @@
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="返利单号" prop="">
               <el-input
+                disabled
                 v-model="searchForm.rebateOrderId"
                 placeholder="请输入"
               ></el-input>
@@ -28,6 +29,7 @@
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="返利日期" prop="">
               <el-input
+                disabled
                 v-model="searchForm.theTime"
                 placeholder="请输入"
               ></el-input>
@@ -36,6 +38,7 @@
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="备注" prop="">
               <el-input
+                disabled
                 v-model="searchForm.remark"
                 placeholder="请输入"
               ></el-input>
@@ -44,6 +47,7 @@
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="制单人" prop="">
               <el-input
+                disabled
                 v-model="searchForm.createBy"
                 placeholder="请输入"
               ></el-input>
@@ -52,6 +56,7 @@
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="制单日期" prop="">
               <el-input
+                disabled
                 v-model="searchForm.createTime"
                 placeholder="请输入"
               ></el-input>
@@ -59,12 +64,34 @@
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="审批人" prop="">
-              <el-input placeholder="请输入"></el-input>
+              <el-input
+                v-if="this.searchForm.secondExamineBy != null"
+                disabled
+                v-model="searchForm.secondExamineBy"
+                placeholder=""
+              ></el-input>
+              <el-input
+                v-else
+                disabled
+                v-model="searchForm.examineBy"
+                placeholder=""
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="审批日期" prop="">
-              <el-input placeholder="请输入"></el-input>
+              <el-input
+                v-if="this.searchForm.secondExamineTime != null"
+                disabled
+                v-model="searchForm.secondExamineTime"
+                placeholder=""
+              ></el-input>
+              <el-input
+                v-else
+                disabled
+                v-model="searchForm.examineTime"
+                placeholder=""
+              ></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -115,7 +142,7 @@
             show-overflow-tooltip
           >
             <template slot-scope="scope">
-              <el-input v-model="scope.row.rebateAmount"></el-input>
+              <el-input v-model.number="scope.row.rebateAmount"></el-input>
             </template>
           </el-table-column>
           <el-table-column
@@ -126,7 +153,7 @@
             show-overflow-tooltip
           >
             <template slot-scope="scope">
-              <el-input v-model="scope.row.allowanceAmount"></el-input>
+              <el-input v-model.number="scope.row.allowanceAmount"></el-input>
             </template>
           </el-table-column>
           <el-table-column
@@ -140,8 +167,10 @@
       </div>
     </div>
     <br />
-    <el-button type="primary" size="small" @click="btnFn">确定</el-button>
-    <el-button type="primary" size="small" @click="resetFn">重置</el-button>
+    <div v-if="!isShow">
+      <el-button type="primary" size="small" @click="btnFn">确定</el-button>
+      <el-button type="primary" size="small" @click="resetFn">重置</el-button>
+    </div>
   </div>
 </template>
 
@@ -156,6 +185,10 @@ export default {
       type: String,
       required: true,
     },
+    isShow: {
+      type: Boolean,
+      required: true,
+    },
   },
   data() {
     return {
@@ -167,6 +200,7 @@ export default {
         remark: "",
       },
       dataList: [],
+      saveDataList: [],
       listLoading: false, // 列表加载loading
     };
   },
@@ -174,19 +208,69 @@ export default {
     this.getDataList();
   },
   methods: {
+    //深拷贝数据
+    deepCopy(data) {
+      //string,number,bool,null,undefined,symbol
+      //object,array,date
+      if (data && typeof data === "object") {
+        //针对函数的拷贝
+        if (typeof data === "function") {
+          let tempFunc = data.bind(null);
+          tempFunc.prototype = this.deepCopy(data.prototype);
+          return tempFunc;
+        }
+
+        switch (Object.prototype.toString.call(data)) {
+          case "[object String]":
+            return data.toString();
+          case "[object Number]":
+            return Number(data.toString());
+          case "[object Boolean]":
+            return new Boolean(data.toString());
+          case "[object Date]":
+            return new Date(data.getTime());
+          case "[object Array]":
+            var arr = [];
+            for (let i = 0; i < data.length; i++) {
+              arr[i] = this.deepCopy(data[i]);
+            }
+            return arr;
+
+          //js自带对象或用户自定义类实例
+          case "[object Object]":
+            var obj = {};
+            for (let key in data) {
+              //会遍历原型链上的属性方法,可以用hasOwnProperty来控制 (obj.hasOwnProperty(prop)
+              obj[key] = this.deepCopy(data[key]);
+            }
+            return obj;
+        }
+      } else {
+        //string,number,bool,null,undefined,symbol
+        return data;
+      }
+    },
+    //重置
+    resetFn() {
+      console.log(this.dataList, this.saveDataList);
+      this.dataList = this.saveDataList;
+      this.saveDataList = this.deepCopy(this.dataList);
+    },
     //确定
     async btnFn() {
       console.log(this.dataList);
       const res = this.dataList.map((v) => {
         return {
           allowanceAmount: v.allowanceAmount,
-          rebateAmount: v.amount,
+          rebateAmount: v.rebateAmount,
           itemId: v.id,
         };
       });
       console.log(res, 888);
       await getRebateOrderAck(res);
-      this.$message.success("确认成功");
+      // this.$emit("updateList");
+      // this.$message.success("确认成功");
+      // this.$parent.showPage = 1;
     },
     //获取详情数据
     async getDataList() {
@@ -197,7 +281,13 @@ export default {
       this.searchForm.createBy = res.data.createBy;
       this.searchForm.createTime = res.data.createTime;
       this.searchForm.remark = res.data.remark;
+      this.searchForm.secondExamineBy = res.data.secondExamineBy;
+      this.searchForm.secondExamineTime = res.data.secondExamineTime;
+      this.searchForm.examineBy = res.data.examineBy;
+      this.searchForm.examineTime = res.data.examineTime;
+      this.saveDataList = this.deepCopy(res.data.items);
       this.dataList = res.data.items;
+      this;
     },
     goBack() {
       this.$parent.showPage = 1;

+ 3 - 0
src/views/finance/components/rebate_list-edit.vue

@@ -129,6 +129,9 @@
             min-width="160"
             show-overflow-tooltip
           >
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.policyDocNo"></el-input>
+            </template>
           </el-table-column>
           <el-table-column
             align="center"

+ 48 - 1
src/views/finance/rebate_form.vue

@@ -67,7 +67,23 @@
     <!-- 按钮 -->
     <div class="btn-group clearfix">
       <div class="fr">
-        <el-button type="primary" size="small">批量导入</el-button>
+        <el-button type="primary" size="small" @click="downLoadFn"
+          >模板</el-button
+        >
+        <!-- <a href="/rebate/order/download">下载文件</a> -->
+        <!-- <el-button type="primary" size="small" @click="importFn"
+          >批量导入</el-button
+        > -->
+
+        <el-upload
+          class="import-btn"
+          action=""
+          :http-request="handleImport"
+          :file-list="importFileList"
+          :show-file-list="false"
+        >
+          <el-button type="primary" size="small">批量导入</el-button>
+        </el-upload>
       </div>
     </div>
     <!-- 列表 -->
@@ -309,16 +325,21 @@
 
 <script>
 import { mapGetters } from "vuex";
+import { downloadFiles, handleImport } from "@/utils/util";
+
 import {
   getCustomerList,
   getWalletCustomerList,
   getRebateOrderAdd,
   getRebateOrderApply,
   getRebateOrderList,
+  getRebateOrderDownLoad,
 } from "@/api/finance/rebate_form";
 export default {
   data() {
     return {
+      importFileList: [],
+
       dataList: [],
       listLoading: false, // 列表加载loading
       customerData: [],
@@ -340,6 +361,7 @@ export default {
       },
     };
   },
+
   computed: {
     ...mapGetters(["name"]),
   },
@@ -348,6 +370,27 @@ export default {
     this.searchForm.createBy = this.name;
   },
   methods: {
+    // 导入
+    async handleImport(param) {
+      const file = param.file;
+
+      const formData = new FormData();
+      formData.append("file", file);
+
+      let result = await handleImport("/rebate/order/import", formData);
+
+      console.log(result);
+      this.importFileList = [];
+      if (result.code == 200) {
+        this.$message.success("导入成功");
+      } else {
+        this.$message.error("导入失败");
+      }
+    },
+    //下载模板
+    async downLoadFn() {
+      downloadFiles("/rebate/order/download");
+    },
     //重置
     cancelFn() {
       this.searchForm = {
@@ -442,4 +485,8 @@ export default {
 .selectStyle {
   width: 100%;
 }
+.import-btn {
+  display: inline-block;
+  margin-left: 10px;
+}
 </style>

+ 25 - 7
src/views/finance/rebate_list.vue

@@ -123,9 +123,11 @@
               show-overflow-tooltip
             >
               <template slot-scope="scope">
-                <el-tag
-                  v-show="scope.row.customerIsConfirm == 'true' ? '是' : '否'"
-                  >是</el-tag
+                <el-tag v-show="scope.row.customerIsConfirm == true"
+                  >已确认</el-tag
+                >
+                <el-tag v-show="scope.row.customerIsConfirm == false"
+                  >未确认</el-tag
                 >
               </template>
             </el-table-column>
@@ -464,8 +466,15 @@
                     scope.row.examineStatus == 'OK_ONE' &&
                     scope.row.withholdAmount == 0
                   "
-                  @click="confirmFn(scope.row.rebateOrderId)"
-                  >确认</el-button
+                  @click="
+                    confirmFn(
+                      scope.row.rebateOrderId,
+                      scope.row.customerIsConfirm
+                    )
+                  "
+                  >{{
+                    scope.row.customerIsConfirm == true ? "详情" : "确认"
+                  }}</el-button
                 >
               </template>
             </el-table-column>
@@ -500,7 +509,12 @@
     <!-- 详情 -->
     <RebateListDetail :detailId="detailId" v-else-if="showPage == 5" />
     <!-- 确定 -->
-    <RebateListConfirm :detailId="detailId" v-else-if="showPage == 6" />
+    <RebateListConfirm
+      @updateList="updateList"
+      :detailId="detailId"
+      :isShow="isShow"
+      v-else-if="showPage == 6"
+    />
     <!-- 编辑 -->
     <RebateListEdit
       @updateList="updateList"
@@ -549,6 +563,7 @@ export default {
       detailId: null,
       isCustomer: null,
       secondId: null,
+      isShow: null,
     };
   },
   created() {
@@ -606,12 +621,15 @@ export default {
           }
         });
         this.dataList = arr2;
+        this.listTotal = arr2.length;
       } else {
         this.dataList = arr;
+        this.listTotal = res.data.total;
       }
     },
     //确认
-    confirmFn(id) {
+    confirmFn(id, isShow) {
+      this.isShow = isShow;
       this.detailId = id;
       this.showPage = 6;
     },

+ 2 - 0
src/views/finance/receivable_list.vue

@@ -89,6 +89,7 @@
       <div class="btn-group clearfix">
         <div class="fl">
           <el-button
+            v-if="$checkBtnRole('add', $router.meta.roles)"
             type="primary"
             icon="el-icon-plus"
             size="small"
@@ -97,6 +98,7 @@
           >
 
           <el-popconfirm
+            v-if="$checkBtnRole('del', $router.meta.roles)"
             class="delClass"
             @onConfirm="deleFn"
             title="这是一段内容确定删除吗?"