From f7315638ff81dbdfee099c324a693d4d1b42d2b1 Mon Sep 17 00:00:00 2001
From: 18650502300 <18650502300@163.com>
Date: Sun, 24 Dec 2023 16:12:22 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A5=97=E9=A4=90=E5=88=86=E6=9C=9F=E9=85=8D?=
 =?UTF-8?q?=E7=BD=AE=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/api/setting1.js                      | 40 ++++-------
 src/views/order/index.vue                |  6 +-
 src/views/store/setting/creatSetting.vue | 84 +++++++++++++++++++-----
 src/views/store/setting/index.vue        | 45 +++++++++++--
 4 files changed, 123 insertions(+), 52 deletions(-)

diff --git a/src/api/setting1.js b/src/api/setting1.js
index 6990308..82f135b 100644
--- a/src/api/setting1.js
+++ b/src/api/setting1.js
@@ -5,9 +5,9 @@ import request from '@/utils/request';
  * @param id
  * @constructor
  */
-export function DelInstallments(pram) {
+export function DelInstallments(id) {
   const data = {
-    id: pram.id,
+    id: id,
   };
   return request({
     url: '/admin/installments/delete',
@@ -58,18 +58,12 @@ export function ListInstallments(pram) {
  */
 export function AddInstallments(pram) {
   const data = {
-    author: pram.author,
-    cid: pram.cid,
-    content: pram.content,
-    imageInput: pram.imageInput,
-    isBanner: pram.isBanner,
-    isHot: pram.isHot,
-    shareSynopsis: pram.shareSynopsis,
-    shareTitle: pram.shareTitle,
-    sort: pram.sort,
-    synopsis: pram.synopsis,
-    title: pram.title,
-    url: pram.url,
+    name: pram.name,
+    installmentNumber: pram.installmentNumber,
+    amountComesUp: pram.amountComesUp,
+    downPaymentPercent: pram.downPaymentPercent,
+    downPaymentNumber: pram.downPaymentNumber,
+    cycle:pram.cycle
   };
   return request({
     url: '/admin/installments/save',
@@ -85,18 +79,12 @@ export function AddInstallments(pram) {
  */
 export function UpdateInstallments(pram) {
   const data = {
-    author: pram.author,
-    cid: pram.cid,
-    content: pram.content,
-    imageInput: pram.imageInput,
-    isBanner: pram.isBanner,
-    isHot: pram.isHot,
-    shareSynopsis: pram.shareSynopsis,
-    shareTitle: pram.shareTitle,
-    sort: pram.sort,
-    synopsis: pram.synopsis,
-    title: pram.title,
-    url: pram.url,
+    name: pram.name,
+    installmentNumber: pram.installmentNumber,
+    amountComesUp: pram.amountComesUp,
+    downPaymentPercent: pram.downPaymentPercent,
+    downPaymentNumber: pram.downPaymentNumber,
+    cycle:pram.cycle
   };
   return request({
     url: '/admin/installments/update',
diff --git a/src/views/order/index.vue b/src/views/order/index.vue
index 035388e..c67dfe3 100644
--- a/src/views/order/index.vue
+++ b/src/views/order/index.vue
@@ -423,7 +423,7 @@ export default {
     return {
       options: [
         {
-          value: 2,
+          value: 3,
           label: '全部',
         },
         {
@@ -434,6 +434,10 @@ export default {
           value: 1,
           label: '视频号订单',
         },
+        {
+          value: 2,
+          label: '分期订单',
+        },
       ],
       RefuseVisible: false,
       RefuseData: {},
diff --git a/src/views/store/setting/creatSetting.vue b/src/views/store/setting/creatSetting.vue
index 57a2a6f..e10d629 100644
--- a/src/views/store/setting/creatSetting.vue
+++ b/src/views/store/setting/creatSetting.vue
@@ -7,8 +7,8 @@
     :before-close="handleClose"
   >
     <el-form :model="user" :rules="rules" ref="user" label-width="100px" class="demo-ruleForm" v-loading="loading">
-      <el-form-item label="商品名称" prop="productId">
-        <el-input v-model="user.productId" placeholder="请输入商品名称"></el-input>
+      <el-form-item label="分期名称" prop="name">
+        <el-input v-model="user.name" placeholder="请输入分期套餐名称"></el-input>
       </el-form-item>
       <el-form-item label="分期数" >
         <el-select v-model="user.installmentNumber" placeholder="请选择" style="width: 20%">
@@ -17,13 +17,45 @@
         </el-select>
         <span>期</span>
       </el-form-item>
-      <el-form-item label="价格" >
-        <el-input-number
-          v-model="user.price"
+      <el-form-item label="周期" >
+        <el-input-number style="width: 60%"
+           v-model="user.cycle"
+           :min="0"
+           :step="1"
+           step-strictly
+           placeholder="请输入首付期数"
+           class="selWidthd mr20"
+        />
+      </el-form-item>
+      <el-form-item label="上浮比例(%)" >
+        <el-input style="width: 30%;float: left"
+          v-model="user.amountComesUpStr"
           :min="0"
           :step="1"
           step-strictly
-          placeholder="请输入价格"
+          placeholder="请输入上浮比例"
+        />
+        <span class="el-input-group__append">%</span>
+      </el-form-item>
+      <el-form-item label="首付比例(%)" >
+        <el-input style="width: 30%;float: left"
+            v-model="user.downPaymentPercentStr"
+            :min="0"
+            :step="1"
+            step-strictly
+            placeholder="请输入首付比例"
+
+        />
+        <span class="el-input-group__append">%</span>
+      </el-form-item>
+
+      <el-form-item label="首付期数" >
+        <el-input-number style="width: 60%"
+          v-model="user.downPaymentNumber"
+          :min="0"
+          :step="1"
+          step-strictly
+          placeholder="请输入首付期数"
           class="selWidthd mr20"
         />
       </el-form-item>
@@ -34,7 +66,7 @@
       <el-button
         type="primary"
         @click="submitForm('formValidate')"
-        v-hasPermi="['admin:system:user:level:update', 'admin:system:user:level:save']"
+        v-hasPermi="['admin:setting:update', 'admin:setting:save']"
         >确 定</el-button
       >
     </span>
@@ -42,7 +74,7 @@
 </template>
 
 <script>
-import { levelSaveApi, levelInfoApi, levelUpdateApi } from '@/api/user';
+import { AddInstallments,UpdateInstallments} from '@/api/setting1';
 import { Debounce } from '@/utils/validate';
 const obj = {
   name: '',
@@ -72,7 +104,7 @@ export default {
       formValidate: Object.assign({}, obj),
       loading: false,
       rules: {
-        productId: [{ required: true, message: '请输入商品名称', trigger: 'blur' }],
+        name: [{ required: true, message: '请输入分期套餐名称', trigger: 'blur' }],
         // grade: [
         //   { required: true, message: '请输入等级', trigger: 'blur' },
         //   { type: 'number', message: '等级必须为数字值' },
@@ -88,6 +120,13 @@ export default {
     };
   },
   methods: {
+    formatPercentage(value) {
+      if(value == "0.00" || value == "0.0" || value == "0" || value == 0 || value == null){
+        return "-";
+      }else {
+        return (value * 100).toFixed(2) + '%';
+      }
+    },
     // 点击商品图
     modalPicTap(tit, num) {
       const _this = this;
@@ -122,17 +161,20 @@ export default {
       this.$refs.user.validate((valid) => {
         if (valid) {
           this.loading = true;
+           this.user.amountComesUp = (this.user.amountComesUpStr)/100;
+           this.user.downPaymentPercent = (this.user.downPaymentPercentStr)/100;
+          console.log("----------- "+JSON.stringify(this.user));
           let data = {
-            discount: this.user.discount,
-            experience: this.user.experience,
-            grade: this.user.grade,
-            icon: this.user.icon,
-            id: this.user.id,
-            isShow: this.user.isShow,
             name: this.user.name,
+            installmentNumber: this.user.installmentNumber,
+            amountComesUp: (this.user.amountComesUpStr)/100,
+            downPaymentPercent: (this.user.downPaymentPercentStr)/100,
+            downPaymentNumber: this.user.downPaymentNumber,
+            cycle: this.user.cycle,
+            id: this.user.id
           };
           this.user.id
-            ? levelUpdateApi(this.user.id, data)
+            ? UpdateInstallments(data)
                 .then((res) => {
                   this.$message.success('编辑成功');
                   this.loading = false;
@@ -143,7 +185,7 @@ export default {
                 .catch(() => {
                   this.loading = false;
                 })
-            : levelSaveApi(this.user)
+            : AddInstallments(this.user)
                 .then((res) => {
                   this.$message.success('添加成功');
                   this.loading = false;
@@ -171,4 +213,10 @@ export default {
 };
 </script>
 
-<style scoped></style>
+<style scoped>
+  .el-input-number .el-input-group__append {
+    padding: 0 12px;
+    line-height: 36px;
+    border-left: 1px solid #dcdfe6;
+  }
+</style>
diff --git a/src/views/store/setting/index.vue b/src/views/store/setting/index.vue
index 71e40a4..48f2026 100644
--- a/src/views/store/setting/index.vue
+++ b/src/views/store/setting/index.vue
@@ -2,15 +2,30 @@
   <div class="divBox">
     <el-card class="box-card">
       <div slot="header" class="clearfix">
-        <el-button type="primary" class="mr10" @click="add" size="small" v-hasPermi="['admin:system:user:level:save']"
+        <el-button type="primary" class="mr10" @click="add" size="small" v-hasPermi="['admin:setting:save']"
           >添加分期配置</el-button>
       </div>
 
       <el-table v-loading="listLoading" :data="listData.list" style="width: 100%" size="mini">
         <el-table-column prop="id" label="ID" min-width="50" />
-        <el-table-column prop="productId" label="商品名称" min-width="100" />
+        <el-table-column prop="name" label="分期套餐名称" min-width="100" />
         <el-table-column prop="installmentNumber" label="分期数" min-width="100" />
-        <el-table-column prop="price" label="分期价格" min-width="100" />
+        <el-table-column prop="amountComesUp" label="上浮比例(%)" min-width="100" >
+          <template slot-scope="scope">
+            {{ formatPercentage(scope.row.amountComesUp) }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="cycle" label="周期(天)" min-width="100" />
+        <el-table-column prop="downPaymentPercent" label="首付比例(%)" min-width="100" >
+          <template slot-scope="scope">
+            {{ formatPercentage(scope.row.downPaymentPercent) }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="downPaymentNumber" label="首付期数" min-width="100" >
+          <template slot-scope="scope">
+            {{ formatNumber(scope.row.downPaymentNumber) }}
+          </template>
+        </el-table-column>
         <el-table-column label="操作" min-width="120" fixed="right" align="center">
           <template slot-scope="scope">
             <el-button
@@ -18,13 +33,13 @@
               size="small"
               @click="edit(scope.row)"
               class="mr10"
-              v-hasPermi="['admin:system:user:level:update']"
+              v-hasPermi="['admin:setting:update']"
               >编辑</el-button>
             <el-button
               type="text"
               size="small"
               @click="handleDelete(scope.row.id, scope.$index)"
-              v-hasPermi="['admin:system:user:level:delete']"
+              v-hasPermi="['admin:setting:delete']"
               >删除</el-button>
           </template>
         </el-table-column>
@@ -84,6 +99,20 @@ export default {
     this.getList();
   },
   methods: {
+    formatPercentage(value) {
+      if(value == "0.00" || value == "0.0" || value == "0" || value == 0 || value == null){
+        return "-";
+      }else {
+        return (value * 100).toFixed(2) + '%';
+      }
+    },
+    formatNumber(value){
+      if(value == 0){
+        return "-";
+      }else {
+        return value + "期";
+      }
+    },
     checkPermi,
     seachList() {
       this.getList();
@@ -92,9 +121,11 @@ export default {
       this.$refs.grades.dialogVisible = true;
       this.userInfo = {};
     },
-    edit(id) {
+    edit(user) {
       // this.$refs.grades.info(id)
-      this.userInfo = id;
+      user.amountComesUpStr = user.amountComesUp*100;
+      user.downPaymentPercentStr = user.downPaymentPercent*100;
+      this.userInfo = user;
       this.$refs.grades.dialogVisible = true;
     },
     // 列表