Procházet zdrojové kódy

update:1.同步最新的代码到生产

ruhuxu před 4 týdny
rodič
revize
112d2aa560
38 změnil soubory, kde provedl 586 přidání a 783 odebrání
  1. 1 1
      .env
  2. 2 2
      .env.dev
  3. 3 0
      src/api/system/distri/sharepath/index.ts
  4. 11 5
      src/components/ZxTemplate/Consumption/index.vue
  5. 10 1
      src/components/ZxTemplate/Points/Points.vue
  6. 1 0
      src/locales/zh-CN.ts
  7. 6 2
      src/utils/dict.ts
  8. 7 15
      src/views/Profile/components/BasicInfo.vue
  9. 3 3
      src/views/mall/product/spu/form/InfoForm.vue
  10. 1 1
      src/views/mall/product/spu/form/MobileIndex.vue
  11. 1 1
      src/views/mall/product/spu/form/index.vue
  12. 6 5
      src/views/mall/trade/order/components/OrderBaseInfo.vue
  13. 2 2
      src/views/mall/trade/order/components/OrderIndex.vue
  14. 2 2
      src/views/mall/trade/order/components/OrderMobileIndex.vue
  15. 7 23
      src/views/mall/trade/order/components/OrderProduct.vue
  16. 1 1
      src/views/mall/trade/order/index.vue
  17. 8 5
      src/views/member/user/components/MemberUserMobileTab.vue
  18. 10 5
      src/views/member/user/components/MemberUserTab.vue
  19. 31 26
      src/views/member/user/components/UserForm.vue
  20. 5 5
      src/views/member/user/index.vue
  21. 12 12
      src/views/system/distri/consumption/ConsumptionTopUpLogForm.vue
  22. 12 12
      src/views/system/distri/consumption/ConsumptionTopUpLogMobileForm.vue
  23. 138 132
      src/views/system/distri/consumption/index.vue
  24. 9 8
      src/views/system/distri/dailybill/DailyBillForm.vue
  25. 7 7
      src/views/system/distri/dailybill/index.vue
  26. 20 9
      src/views/system/distri/duser/index.vue
  27. 7 53
      src/views/system/distri/ordercalc/index.vue
  28. 104 114
      src/views/system/distri/orderpercentage/OrderPercentageForm.vue
  29. 25 195
      src/views/system/distri/orderpercentage/index.vue
  30. 2 1
      src/views/system/distri/partitioncrash/PartitionCrashForm.vue
  31. 7 7
      src/views/system/distri/ptdailybill/index.vue
  32. 7 61
      src/views/system/distri/ptprofit/PtProfitForm.vue
  33. 42 29
      src/views/system/distri/ptprofit/index.vue
  34. 41 16
      src/views/system/distri/sharepath/Descendants.vue
  35. 25 12
      src/views/system/distri/sharepath/index.vue
  36. 5 5
      src/views/system/sale/merchant/Apply/MerchantApplyBaseInfo.vue
  37. 2 2
      src/views/system/sale/merchant/components/MerchantStoreTab.vue
  38. 3 3
      src/views/system/sale/merchant/index.vue

+ 1 - 1
.env

@@ -2,7 +2,7 @@
 VITE_APP_TITLE=常来此购
 
 # 项目本地运行端口号
-VITE_PORT=9002
+VITE_PORT=9003
 
 # open 运行 npm run dev 时自动打开浏览器
 VITE_OPEN=false

+ 2 - 2
.env.dev

@@ -4,10 +4,10 @@ NODE_ENV=development
 VITE_DEV=true
 
 # 请求路径
-VITE_BASE_URL='http://192.168.3.41:8002'
+VITE_BASE_URL='http://192.168.3.41:8012'
 
 # 上传路径
-VITE_UPLOAD_URL='http://192.168.3.41:8002/admin-api/infra/file/upload'
+VITE_UPLOAD_URL='http://192.168.3.41:8012/admin-api/infra/file/upload'
 
 # 接口前缀
 VITE_API_BASEPATH=/dev-api

+ 3 - 0
src/api/system/distri/sharepath/index.ts

@@ -24,6 +24,9 @@ export const SharePathApi = {
   getDuserByUserId: async (params: any) => {
     return await request.get({ url: `/distri/share-path/getDescendants`, params })
   },
+  getAreaChildren: async (params: any) => {
+    return await request.get({ url: `/distri/share-path/getAreaChildren`, params })
+  },
   // 查树状图结构
   getSharePathPageTree: async (params: any) => {
     return await request.get({ url: `/distri/share-path/getTree`, params })

+ 11 - 5
src/components/ZxTemplate/Consumption/index.vue

@@ -7,13 +7,13 @@
       
       <el-table-column label="变动额度" align="center" prop="consumptionPoints">
         <template #default="scope">
-          {{ scope.row.consumptionPoints>0 ?  "+" + pointsToPoint(scope.row.consumptionPoints || 0) : pointsToPoint(scope.row.consumptionPoints || 0)}}
+          {{ scope.row.practicalIntegralPoints>0 ?  "+" + pointsToPoint(scope.row.practicalIntegralPoints || 0) : pointsToPoint(scope.row.practicalIntegralPoints || 0)}}
         </template>
       </el-table-column>
 
-      <el-table-column label="消费分余额" align="center" prop="afterConsumptionPoints">
+      <el-table-column label="积分余额" align="center" prop="afterIntegralPoints">
         <template #default="scope">
-          {{ pointsToPoint(scope.row.afterConsumptionPoints || 0) }}
+          {{ pointsToPoint(scope.row.afterIntegralPoints || 0) }}
         </template>
       </el-table-column>
       
@@ -31,7 +31,7 @@
       @pagination="getUserInfo" />
   </div>
   <div style="text-align: center;margin-top: 50px;font-size: 14px;" v-else>
-    暂无消费分记录
+    暂无分记录
   </div>
 </template>
 
@@ -48,12 +48,17 @@
       type: Number,
       default: 0
     },
+    integralType: {
+      type: Number,
+      default: 0
+    },
   });
   const list = ref([])
   const queryParams = reactive({
     pageNo: 1,
     pageSize: 10,
-    userId:undefined
+    userId:undefined,
+    integralType:undefined
   })
   const getUserInfo = async () => {
     const res = await UserApi.getUserConsumption(queryParams);
@@ -63,6 +68,7 @@
   onMounted(() => {
     // props.userId
     queryParams.userId = props.userId;
+    queryParams.integralType = props.integralType;
     getUserInfo();
   });
 

+ 10 - 1
src/components/ZxTemplate/Points/Points.vue

@@ -2,6 +2,8 @@
 <template>
   <div style="margin-top:10px;padding: 10px;" v-if="list.length > 0" >
     <el-table :data="list" :stripe="true" :show-overflow-tooltip="true">
+      <el-table-column label="订单号" align="center" prop="orderNo" />
+        
       <el-table-column label="获得" align="center" prop="amount" >
         <template #default="scope">
           {{ pointsToPoint(scope.row.amount || 0) }}
@@ -65,7 +67,7 @@
       @pagination="getUserInfo" />
   </div>
   <div style="text-align: center;margin-top: 50px;font-size: 14px;" v-else>
-    暂无佣金记录
+    暂无积分记录
   </div>
 </template>
 
@@ -82,6 +84,10 @@
       type: Number,
       default: 0
     },
+    Infotype: {
+      type: Number,
+      default: 0
+    }
   });
   const list = ref([])
   const queryParams = reactive({
@@ -102,6 +108,9 @@
     }else {
       queryParams.visitor = true
     }
+    if(props.Infotype){
+      queryParams.profitType = props.Infotype
+    }
     getUserInfo();
   });
 

+ 1 - 0
src/locales/zh-CN.ts

@@ -59,6 +59,7 @@ export default {
 		amount: '数量',
 		total: '合计',
 		registrationVolume: '注册量',
+		edit:'编辑'
 	},
 	error: {
 		noPermission: `抱歉,您无权访问此页面。`,

+ 6 - 2
src/utils/dict.ts

@@ -104,7 +104,7 @@ export enum DICT_TYPE {
   USER_TYPE = 'user_type',
   COMMON_STATUS = 'common_status',
   TERMINAL = 'terminal', // 终端
-
+  MEMBER_USER_CATAGORY = 'member_user_catagory', // 会员等级
   // ========== SYSTEM 模块 ==========
   SYSTEM_USER_SEX = 'system_user_sex',
   SYSTEM_MENU_TYPE = 'system_menu_type',
@@ -194,6 +194,7 @@ export enum DICT_TYPE {
   PROMOTION_BANNER_POSITION = 'promotion_banner_position', // banner 定位
 
   // ========== CRM - 客户管理模块 ==========
+
   CRM_AUDIT_STATUS = 'crm_audit_status', // CRM 审批状态
   CRM_BIZ_TYPE = 'crm_biz_type', // CRM 业务类型
   CRM_RECEIVABLE_RETURN_TYPE = 'crm_receivable_return_type', // CRM 回款的还款方式
@@ -203,5 +204,8 @@ export enum DICT_TYPE {
   CRM_PRODUCT_STATUS = 'crm_product_status',
   CRM_PERMISSION_LEVEL = 'crm_permission_level', // CRM 数据权限的级别
   CRM_PRODUCT_UNIT = 'crm_product_unit', // 产品单位
-  CRM_FOLLOW_UP_TYPE = 'crm_follow_up_type' // 跟进方式
+  CRM_FOLLOW_UP_TYPE = 'crm_follow_up_type', // 跟进方式
+
+  // ========== IntegralType ==========
+  INTEGRAL_TYPE = 'IntegralType', // 积分类型
 }

+ 7 - 15
src/views/Profile/components/BasicInfo.vue

@@ -8,10 +8,16 @@
         </el-form-item>
       </el-col>
       <el-col :span="12">
+        <el-form-item :label="t('profile.user.address')" prop="areaId">
+          <el-cascader v-model="formData.areaId" :options="areaTree" :props="defaultProps" class="w-1/1" clearable
+            placeholder="请选择所在地" filterable collapse-tags />
+        </el-form-item>
+      </el-col>
+      <!-- <el-col :span="12">
         <el-form-item :label="t('profile.user.nickname')" prop="nickname">
           <el-input v-model="formData.nickname" :placeholder="t('profile.rules.nickname')" class="w-80!" />
         </el-form-item>
-      </el-col>
+      </el-col> -->
     </el-row>
     <el-row>
       <el-col :span="12">
@@ -28,20 +34,6 @@
         </el-form-item>
       </el-col>
     </el-row>
-
-    <el-row>
-      <el-col :span="12">
-        <el-form-item :label="t('profile.user.address')" prop="areaId">
-          <el-cascader v-model="formData.areaId" :options="areaTree" :props="defaultProps" class="w-1/1" clearable
-            placeholder="请选择所在地" filterable collapse-tags />
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item :label="t('profile.user.email')" prop="email">
-          <el-input v-model="formData.email" :placeholder="t('profile.rules.mail')" class="w-80!" />
-        </el-form-item>
-      </el-col>
-    </el-row>
     <div v-if="!isDetail">
       <el-row>
         <el-col :span="12">

+ 3 - 3
src/views/mall/product/spu/form/InfoForm.vue

@@ -64,7 +64,7 @@ v-model="formData.categoryId" :options="categoryList" :props="defaultProps" clas
 
 		</template>
 		
-		<el-row>
+		<!-- <el-row>
 			<el-col :span="isDetail ? 12 : 24">
 				<el-form-item label="价格高精度" prop="highPrecision">
 					<el-select v-model="formData.highPrecision" class="w-80" disabled>
@@ -78,11 +78,11 @@ v-model="formData.categoryId" :options="categoryList" :props="defaultProps" clas
 					<el-select v-model="formData.spuPayType" placeholder="请选择商品支付方式" class="w-80">
 						<el-option label="人民币+佣金" :value="1" />
 						<el-option label="纯佣金" :value="2" />
-						<!-- <el-option label="看点" :value="3" /> -->
+						<el-option label="看点" :value="3" /> 
 					</el-select>
 				</el-form-item>
 			</el-col>
-		</el-row>
+		</el-row> -->
 		<el-row>
 			<el-col :span="24">
 				<el-form-item label="所属店铺" prop="shopName">

+ 1 - 1
src/views/mall/product/spu/form/MobileIndex.vue

@@ -9,7 +9,7 @@
 					<van-tab title="详情" name="description" />
 					<van-tab title="评价" name="comment" />
 					<van-tab title="客服" name="service" />
-					<van-tab title="售后" name="aftersale" />
+					<!-- <van-tab title="售后" name="aftersale" /> -->
 					<van-tab title="物流设置" name="delivery" />
 					<van-tab title="申请记录" name="apply" />
 			</van-tabs>

+ 1 - 1
src/views/mall/product/spu/form/index.vue

@@ -35,7 +35,7 @@
           <el-tab-pane label="详情" name="description" />
           <el-tab-pane label="评价" name="comment" v-if="isDetail" />
           <el-tab-pane label="客服" name="service" v-if="isDetail" />
-          <el-tab-pane label="售后" name="aftersale" v-if="isDetail" />
+          <!-- <el-tab-pane label="售后" name="aftersale" v-if="isDetail" /> -->
           <el-tab-pane label="物流设置" name="delivery" />
           <el-tab-pane label="申请记录" name="apply" v-if="isDetail" />
         </el-tabs>

+ 6 - 5
src/views/mall/trade/order/components/OrderBaseInfo.vue

@@ -11,7 +11,7 @@
       </el-col>
       <el-col :span="12">
         <el-form-item label="总金额" prop="categoryId">
-          {{ fenToYuan(formData.payPrice) }}元
+          {{ fenToYuan(formData.totalPrice) }}元
         </el-form-item>
       </el-col>
     </el-row>
@@ -34,7 +34,7 @@
     <el-row>
       <el-col :span="12">
         <el-form-item label="客户名称" prop="brandId">
-          {{ formData?.user?.nickname }}
+          {{ formData?.user?.username }}
         </el-form-item>
       </el-col>
       <el-col :span="12">
@@ -90,7 +90,7 @@
       </el-col>
       <el-col :span="12">
         <el-form-item label="总金额" prop="categoryId">
-          {{ fenToYuan(formData.payPrice) }}元
+          {{ fenToYuan(formData.totalPrice) }}元
         </el-form-item>
       </el-col>
     </el-row>
@@ -113,12 +113,13 @@
     <el-row>
       <el-col :span="12">
         <el-form-item label="客户名称" prop="brandId">
-          {{ formData?.user?.nickname }}
+          {{ formData?.user?.username }}
         </el-form-item>
       </el-col>
       <el-col :span="12">
         <el-form-item label="支付方式" prop="keyword">
-          {{ getDictObj(DICT_TYPE.PAY_CHANNEL_CODE, formData.payChannelCode)?.label }}
+          {{ getDictLabel(DICT_TYPE.INTEGRAL_TYPE, formData.integralType) }}
+
         </el-form-item>
       </el-col>
     </el-row>

+ 2 - 2
src/views/mall/trade/order/components/OrderIndex.vue

@@ -25,9 +25,9 @@
 					<el-tab-pane label="商品" name="product" />
           <el-tab-pane label="评价" name="comment" />
           <el-tab-pane label="客服" name="service" />
-          <el-tab-pane label="售后" name="afterSale" />
+          <!-- <el-tab-pane label="售后" name="afterSale" /> -->
           <el-tab-pane label="物流" name="logistics" />
-          <el-tab-pane label="支付" name="pay" />
+          <!-- <el-tab-pane label="支付" name="pay" /> -->
           <el-tab-pane label="日志" name="logs" />
 				</el-tabs>
 

+ 2 - 2
src/views/mall/trade/order/components/OrderMobileIndex.vue

@@ -8,9 +8,9 @@
 				<van-tab title="商品" name="product"/>
 				<van-tab title="评价" name="comment"/>
 				<van-tab title="客服" name="service"/>
-				<van-tab title="售后" name="afterSale"/>
+				<!-- <van-tab title="售后" name="afterSale"/> -->
 				<van-tab title="物流" name="logistics"/>
-				<van-tab title="支付" name="pay"/>
+				<!-- <van-tab title="支付" name="pay"/> -->
 				<van-tab title="日志" name="logs"/>
 			</van-tabs>
 		</div>

+ 7 - 23
src/views/mall/trade/order/components/OrderProduct.vue

@@ -10,35 +10,19 @@
       </el-col>
       <el-col :span="12">
         <el-form-item label="应付金额">
-          {{ fenToYuan(formData.payPrice!) }} 元
-        </el-form-item>
-      </el-col>
-    </el-row>
-    <el-row>
-      <!-- <el-col :span="12">
-        <el-form-item label="优惠卷优惠">
-          {{ fenToYuan(formData.couponPrice!) }} 元
-        </el-form-item>
-      </el-col> -->
-      <el-col :span="12">
-        <el-form-item label="佣金抵扣" >
           {{ pointsToYuan(formData.payIntegral!) }} 元
         </el-form-item>
       </el-col>
-      <el-col :span="12">
-        <el-form-item label="运费金额">
-          {{ fenToYuan(formData.deliveryPrice!) }} 元
-        </el-form-item>
-      </el-col>
     </el-row>
-    <el-row>
+
+    <!-- <el-row>
       <el-col :span="24">
-        <el-form-item label="消费分抵扣" >
-          {{ pointsToYuan(formData.payConsumptionPoints!) }} 元
+        <el-form-item label="运费金额">
+          {{ fenToYuan(formData.deliveryPrice!) }} 元
         </el-form-item>
       </el-col>
 
-    </el-row>
+    </el-row> -->
     <!-- <el-row>
       <el-col :span="12">
         <el-form-item label="订单人工调价">
@@ -111,7 +95,7 @@
         
         <el-col :span="12">
           <el-form-item label="小计">
-            {{ fenToYuan(item.payPrice!) }} 元
+            {{ fenToYuan(item.price * item.count) }} 元
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -158,7 +142,7 @@
             <el-table-column label="数量" prop="count" width="100" />
             <el-table-column label="小计" prop="payPrice" width="100">
 
-              <template #default="{ row }">{{ fenToYuan(row.payPrice) }}元</template>
+              <template #default="{ row }">{{ fenToYuan(row.price * row.count) }}元</template>
             </el-table-column>
             <el-table-column label="备注" prop="afterSaleStatus">
 

+ 1 - 1
src/views/mall/trade/order/index.vue

@@ -227,7 +227,7 @@ v-if="queryParams.deliveryType === DeliveryTypeEnum.PICK_UP.type" label="自提
               <p>¥{{ fenToYuan(o.totalPrice) }}</p>
               <p>{{ o.no }}</p>
               <p>{{ getDictObj(DICT_TYPE.TRADE_ORDER_STATUS, o.status)?.label }}</p>
-              <p>{{ o.user.nickname }}</p>
+              <p>{{ o.user.username }}</p>
               <p
                 ><span class="year">{{ timestampToY(o.createTime) }}</span
                 >{{ timestampToMDHM(o.createTime) }}

+ 8 - 5
src/views/member/user/components/MemberUserMobileTab.vue

@@ -4,8 +4,9 @@
 			<van-tabs v-model:active="activeName">
 				<van-tab title="基本信息" name="info"/>
         <van-tab title="团队" name="team" />
-        <van-tab title="佣金" name="points" />
-        <van-tab title="消费分" name="consumption" />
+        <el-tab-pane label="红积分" name="red" />
+        <el-tab-pane label="绿积分" name="green" />
+        <el-tab-pane label="黄积分" name="yellow" />
         <van-tab title="看点" name="highlights" />
         <van-tab title="任务" name="task" />
         <van-tab title="订单" name="order" />
@@ -18,13 +19,15 @@
 			</van-tabs>
 		</div>
 		<div class="bottom">
-      <UserForm :obj="userObj" ref="userFormRef" :isDetail="true" :openType="openType" v-if="activeName == 'info'" />
+      <UserForm :obj="userObj" ref="userFormRef" :isDetail="true" openType="openType" v-if="activeName == 'info'" />
       <AfterSale v-if="activeName == 'aftersales'" :userId="userObj.id" openSource="MemberUser" />
         <Order v-if="activeName == 'order'" :id="userObj.id" openSource="MemberUser" />
         <Address v-if="activeName == 'address'" :userId="userObj.id" :addressType="1" openSource="MemberUser" />
         <Team v-if="activeName == 'team'" :userId="userObj.id" openSource="MemberUser" />
         <Points v-if="activeName == 'points'" :userId="userObj.id" openSource="MemberUser" />
-        <Consumption v-if="activeName == 'consumption'" :userId="userObj.id" openSource="MemberUser" />
+        <Consumption v-if="activeName == 'red'" :integralType="1" :userId="userObj.id" openSource="MemberUser" />
+        <Consumption v-if="activeName == 'green'" :integralType="2" :userId="userObj.id" openSource="MemberUser" />
+        <Consumption v-if="activeName == 'yellow'" :integralType="3" :userId="userObj.id" openSource="MemberUser" />
         <Favorite v-if="activeName == 'collection'" :userId="userObj.id" openSource="MemberUser" />
         <Level v-if="activeName == 'level'" :userId="userObj.id" openSource="MemberUser" />
         <SignUp v-if="activeName == 'signin'" :userId="userObj.id" openSource="MemberUser" />
@@ -52,7 +55,7 @@ import { useRoute } from 'vue-router';
 const route = useRoute();
 
 const openType = route.query.type;
-const userObj = JSON.parse(route.query.obj);
+const userObj = JSON.parse(route.query.obj as string);
 import { propTypes } from '@/utils/propTypes'
 
 defineOptions({ name: 'ProductSpuForm' })

+ 10 - 5
src/views/member/user/components/MemberUserTab.vue

@@ -8,11 +8,13 @@
         <el-tabs v-model="activeName" tab-position="left" class="child-tabs">
           <el-tab-pane label="基本信息" name="info" />
           <template v-if="isDetail">
-            <el-tab-pane label="身价" name="level" />
+            <!-- <el-tab-pane label="身价" name="level" /> -->
             <el-tab-pane label="团队" name="team" />
-            <el-tab-pane label="佣金" name="points" />
-            <el-tab-pane label="消费分" name="consumption" />
-            <el-tab-pane label="看点" name="highlights" />
+            <el-tab-pane label="红积分" name="red" />
+            <el-tab-pane label="绿积分" name="green" />
+            <el-tab-pane label="黄积分" name="yellow" />
+            <!-- <el-tab-pane label="消费分" name="consumption" /> -->
+            <!-- <el-tab-pane label="看点" name="highlights" /> -->
             <el-tab-pane label="任务" name="task" />
             <el-tab-pane label="订单" name="order" />
             <el-tab-pane label="售后" name="aftersales" />
@@ -35,7 +37,10 @@
         <Address v-if="activeName == 'address'" :userId="userObj.id" :addressType="1" openSource="MemberUser" />
         <Team v-if="activeName == 'team'" :userId="userObj.id" openSource="MemberUser" />
         <Points v-if="activeName == 'points'" :userId="userObj.id" openSource="MemberUser" />
-        <Consumption v-if="activeName == 'consumption'" :userId="userObj.id" openSource="MemberUser" />
+        
+        <Consumption v-if="activeName == 'red'" :integralType="1" :userId="userObj.id" openSource="MemberUser" />
+        <Consumption v-if="activeName == 'green'" :integralType="2" :userId="userObj.id" openSource="MemberUser" />
+        <Consumption v-if="activeName == 'yellow'" :integralType="3" :userId="userObj.id" openSource="MemberUser" />
         <Favorite v-if="activeName == 'collection'" :userId="userObj.id" openSource="MemberUser" />
         <Level v-if="activeName == 'level'" :userId="userObj.id" openSource="MemberUser" />
         <SignUp v-if="activeName == 'signin'" :userId="userObj.id" openSource="MemberUser" />

+ 31 - 26
src/views/member/user/components/UserForm.vue

@@ -8,8 +8,9 @@
         </el-form-item>
       </el-col>
       <el-col :span="12">
-        <el-form-item label="昵称" prop="nickname">
-          <el-input v-model="formData.nickname" placeholder="请输入昵称" />
+        <el-form-item label="所在地" prop="areaId">
+          <el-tree-select v-model="formData.areaId" :data="areaList" :props="defaultProps"
+            :render-after-expand="true" />
         </el-form-item>
       </el-col>
     </el-row>
@@ -33,19 +34,7 @@
     <!-- <el-form-item label="头像" prop="avatar">
         <UploadImg v-model="formData.avatar" :limit="1" :disabled="isDetail" :is-show-tip="false" />
       </el-form-item> -->
-    <el-row>
-      <el-col :span="12">
-        <el-form-item label="所在地" prop="areaId">
-          <el-tree-select v-model="formData.areaId" :data="areaList" :props="defaultProps"
-            :render-after-expand="true" />
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
-        <el-form-item label="邮箱" prop="email">
-          <el-input v-model="formData.email" placeholder="请输入邮箱" />
-        </el-form-item>
-      </el-col>
-    </el-row>
+    
     <el-row>
       <el-col :span="12">
         <el-form-item label="性别" prop="sex">
@@ -66,8 +55,6 @@
     <el-row>
       <el-col :span="12">
         <el-form-item label="推荐人" >
-
-
           <el-select
               v-model="formData.recommenderdId"
               clearable
@@ -95,32 +82,43 @@
         </el-form-item>
       </el-col>
       <el-col :span="12">
-        <el-form-item label="身价">
-          <el-input v-model="formData.currentMemberWorthLevel" disabled="true" />
+       
+        <el-form-item label="会员等级">
+          <el-select v-model="formData.categoryId" placeholder="请选择会员等级">
+            <el-option v-for="item in getIntDictOptions(DICT_TYPE.MEMBER_USER_CATAGORY)" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
         </el-form-item>
       </el-col>
     </el-row>
     <el-row>
       <el-col :span="12">
-        <el-form-item label="佣金">
-          <el-input v-model="currentQuota" disabled="true" />
+        <el-form-item label="红积分">
+          <el-input v-model="redCurrentQuota" :disabled="true" />
         </el-form-item>
       </el-col>
       <el-col :span="12">
-        <el-form-item label="消费分">
-          <el-input v-model="currentConsumptionPoints" disabled="true" />
+        <el-form-item label="绿积分">
+          <el-input v-model="greenCurrentQuota" :disabled="true" />
         </el-form-item>
       </el-col>
     </el-row>
     <el-row>
       <el-col :span="12">
-        <el-form-item label="峰值">
-          <el-input v-model="highQuotaTotal" disabled="true" />
+        <el-form-item label="黄积分">
+          <el-input v-model="yellowCurrentQuota" :disabled="true" />
         </el-form-item>
       </el-col>
       <el-col :span="12">
+        <el-form-item label="峰值">
+          <el-input v-model="highQuotaTotal" :disabled="true" />
+        </el-form-item>
+      </el-col>
+      
+    </el-row>
+    <el-row>
+      <el-col :span="24">
         <el-form-item label="最后登陆时间">
-          <el-input v-model="loginDate" disabled="true" />
+          <el-input v-model="loginDate" :disabled="true" />
         </el-form-item>
       </el-col>
     </el-row>
@@ -163,11 +161,18 @@ const formData = ref({
   tagIds: [],
   groupId: undefined,
   currentQuota:0,
+  redCurrentQuota:0,
+  greenCurrentQuota:0,
+  yellowCurrentQuota:0,
   consumptionPoints:0,
   username:undefined,
   recommenderdId:undefined,
+  categoryId:undefined
 })
 const currentQuota = computed(() => pointsToPoint(formData.value.currentQuota))
+const redCurrentQuota = computed(() => pointsToPoint(formData.value.redCurrentQuota))
+const greenCurrentQuota = computed(() => pointsToPoint(formData.value.greenCurrentQuota))
+const yellowCurrentQuota = computed(() => pointsToPoint(formData.value.yellowCurrentQuota))
 const currentConsumptionPoints= computed(() => pointsToPoint(formData.value.consumptionPoints))
 const highQuotaTotal = computed(() => pointsToPoint(formData.value.highQuotaTotal)) 
 const props = defineProps({

+ 5 - 5
src/views/member/user/index.vue

@@ -14,10 +14,10 @@
   </div>
   <div class="searchMore" v-show="searchMoreShow" :style="{ width: (mobile ? '88.7%' : '96%') }">
     <el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="80px">
-      <el-form-item label="用户昵称" prop="nickname">
+      <!-- <el-form-item label="用户昵称" prop="nickname">
         <el-input v-model="queryParams.nickname"  clearable placeholder="请输入用户昵称"
           @keyup.enter="handleQuery" />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="用户名" prop="username">
         <el-input v-model="queryParams.username"  clearable placeholder="请输入用户名"
           @keyup.enter="handleQuery" />
@@ -65,7 +65,7 @@
       <el-card @click="openTabs('view', o)">
         <div style="display: flex;justify-content: space-between;align-items: center;margin-bottom: 5px;">
           <p style="width: 100%;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;font-size: 16px;color:#000"
-            :title="o.nickname">{{ o.nickname }}
+            :title="o.username">{{ o.username }}
           </p>
           <div v-show="!mobile" class="setting" @click.stop="openTabs('update', o)" v-hasPermi="['system:user:update']">
             <el-icon size="20" color="rgb(220 223 231)">
@@ -77,8 +77,8 @@
           'align-items': 'flex-start'
         }">
           <template #label>
-            <p>{{ pointsToPoint(o.currentMemberPoints) }}佣金 / {{ o.currentMemberWorthLevel }}</p>
-            <p>{{ o.name || "无设置" }}</p>
+            <p>{{ pointsToPoint(o.redCurrentQuota || 0) }}红积分</p>
+            <!-- <p>{{ o.name || "无设置" }}</p> -->
             <p>{{ o.mobile || "无手机号" }}</p>
             <p>最后登陆时间:{{ formatDate(o.loginDate, 'YYYY/MM/DD HH:mm') }}</p>
           </template>

+ 12 - 12
src/views/system/distri/consumption/ConsumptionTopUpLogForm.vue

@@ -46,18 +46,18 @@
       </el-row>
       <el-row>
         <el-col :span="12">
-          <el-form-item label="充值金额" prop="consumptionPoints">
+          <el-form-item label="充值金额" prop="integralPoints">
             <el-input
-              v-model.number="formData.consumptionPoints"
+              v-model.number="formData.integralPoints"
               placeholder="请输入充值金额"
               :disabled="!formData.userId"
-              @input="(val) => (formData.consumptionPoints = val.replace(/[^\d]/g, ''))"
+              @input="(val) => (formData.integralPoints = val.replace(/[^\d]/g, ''))"
               :maxlength="9"
             />
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="消费分" prop="">
+          <el-form-item label="实到积分" prop="">
             <span style="height: 30px; line-height: 30px">{{ consumptionPoints }}</span>
           </el-form-item>
         </el-col>
@@ -119,7 +119,7 @@ const formData = reactive({
   id: undefined,
   userId: undefined,
   attachment: undefined,
-  consumptionPoints: undefined,
+  integralPoints: undefined,
   practicalConsumptionPoints: undefined,
   userName: undefined,
   smsCodeUseReqDTO: {
@@ -133,7 +133,7 @@ const resetFormData = () => {
   formData.id = undefined
   formData.userId = undefined;
   formData.attachment = undefined
-  formData.consumptionPoints = undefined
+  formData.integralPoints = undefined
   formData.practicalConsumptionPoints = undefined
   formData.userName = undefined
   formData.smsCodeUseReqDTO = {
@@ -143,9 +143,9 @@ const resetFormData = () => {
   }
 }
 const formRules = reactive({
-  consumptionPoints: [{ required: true, message: '消费分不能为空', trigger: 'blur' },],
+  integralPoints: [{ required: true, message: '充值金额不能为空', trigger: 'blur' },],
   userId: [{ required: true, message: '用户不能为空', trigger: 'blur' }],
-  attachment: [{ required: true, message: '转账凭证附件不能为空', trigger: 'blur' }],
+  // attachment: [{ required: true, message: '转账凭证附件不能为空', trigger: 'blur' }],
   'smsCodeUseReqDTO.code': [{ required: true, message: '验证码不能为空', trigger: 'blur' }]
 })
 const formRef = ref() // 表单 Ref
@@ -236,14 +236,14 @@ watch(
   }
 )
 const consumptionPoints = computed(() => {
-  if (!formData.consumptionPoints) {
+  if (!formData.integralPoints) {
     return 0
   }
   let point;
-  if(formData.consumptionPoints >= parseFloat(state.triggerMagnificationPoints)){
-    point = (formData.consumptionPoints * parseFloat(state.consumptionMagnification)).toFixed(2)
+  if(formData.integralPoints >= parseFloat(state.triggerMagnificationPoints)){
+    point = (formData.integralPoints * parseFloat(state.consumptionMagnification)).toFixed(2)
   }else{
-    point = formData.consumptionPoints
+    point = formData.integralPoints
   }
   return point
 })

+ 12 - 12
src/views/system/distri/consumption/ConsumptionTopUpLogMobileForm.vue

@@ -45,12 +45,12 @@
       </el-row>
       <el-row>
         <el-col :span="12">
-          <el-form-item label="充值金额" prop="consumptionPoints">
+          <el-form-item label="充值金额" prop="integralPoints">
             <el-input
-              v-model.number="formData.consumptionPoints"
+              v-model.number="formData.integralPoints"
               placeholder="请输入充值金额"
               :disabled="!formData.userId"
-              @input="(val) => (formData.consumptionPoints = val.replace(/[^\d]/g, ''))"
+              @input="(val) => (formData.integralPoints = val.replace(/[^\d]/g, ''))"
               :maxlength="9"
             />
               
@@ -58,7 +58,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="消费分" prop="">
+          <el-form-item label="实到积分" prop="">
             <span style="height: 30px;line-height: 30px;">{{ consumptionPoints }}</span>
           </el-form-item>
         </el-col>
@@ -126,7 +126,7 @@ const formData = reactive({
   id: undefined,
   userId: undefined,
   attachment: undefined,
-  consumptionPoints: undefined,
+  integralPoints: undefined,
   practicalConsumptionPoints: undefined,
   userName: undefined,
   smsCodeUseReqDTO: {
@@ -140,7 +140,7 @@ const resetFormData = () => {
   formData.id = undefined
   // formData.userId = undefined;
   formData.attachment = undefined
-  formData.consumptionPoints = undefined
+  formData.integralPoints = undefined
   formData.practicalConsumptionPoints = undefined
   formData.userName = undefined
   formData.smsCodeUseReqDTO = {
@@ -150,9 +150,9 @@ const resetFormData = () => {
   }
 }
 const formRules = reactive({
-  consumptionPoints: [{ required: true, message: '消费分不能为空', trigger: 'blur' }],
+  integralPoints: [{ required: true, message: '充值金额不能为空', trigger: 'blur' }],
   userId: [{ required: true, message: '用户不能为空', trigger: 'blur' }],
-  attachment: [{ required: true, message: '转账凭证附件不能为空', trigger: 'blur' }],
+  // attachment: [{ required: true, message: '转账凭证附件不能为空', trigger: 'blur' }],
   'smsCodeUseReqDTO.code': [{ required: true, message: '验证码不能为空', trigger: 'blur' }]
 })
 const formRef = ref() // 表单 Ref
@@ -234,14 +234,14 @@ watch(
   }
 )
 const consumptionPoints = computed(() => {
-  if (!formData.consumptionPoints) {
+  if (!formData.integralPoints) {
     return 0
   }
   let point;
-  if(formData.consumptionPoints >= parseFloat(state.triggerMagnificationPoints)){
-    point = (formData.consumptionPoints * parseFloat(state.consumptionMagnification)).toFixed(2)
+  if(formData.integralPoints >= parseFloat(state.triggerMagnificationPoints)){
+    point = (formData.integralPoints * parseFloat(state.consumptionMagnification)).toFixed(2)
   }else{
-    point = formData.consumptionPoints
+    point = formData.integralPoints
   }
   return point
 })

+ 138 - 132
src/views/system/distri/consumption/index.vue

@@ -1,51 +1,49 @@
 <template>
-  <div class="search" style="padding: 0;">
-      <el-tabs v-model="showType" @tab-click="handleTabClick" class="parent-tabs" >
-        <el-tab-pane label="平台充值" :name="0" />
-        <el-tab-pane label="用户自充值" :name="1" />
-        <el-tab-pane label="转账" :name="2" />
-        <el-tab-pane label="异动" :name="3" v-if="isAdmin"/>
-      </el-tabs>
-      <div style="text-align: right;"  class="search-input" v-if="showType === 0">
-        <el-input
-          v-model="queryParams.userName"
-          placeholder="请输入用户名"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        >
-          <template #suffix>
-						<el-icon class="el-input__icon" @click="handleQuery" style="cursor: pointer;">
-							<Search />
-						</el-icon>
-					</template>
-          <template #append>
-            <el-button :icon="Operation" @click="showSearchMore" />
-          </template>
-        </el-input>
-      
-        <el-button
-          type="primary"
-          plain
-          class="ml-5px"
-          @click="openForm('ConsumptionCreate')"
-          v-if="showType === 0"
-          v-hasPermi="['distri:consumption-top-up-log:create']"
-        >
-          <Icon icon="ep:plus" class="mr-5px" /> 新增
-        </el-button>
-      </div>
+  <div class="search" style="padding: 0">
+    <el-tabs v-model="showType" @tab-click="handleTabClick" class="parent-tabs">
+      <el-tab-pane label="平台充值" :name="0" />
+      <!-- <el-tab-pane label="用户自充值" :name="1" /> -->
+      <el-tab-pane label="转账" :name="2" />
+      <!-- <el-tab-pane label="异动" :name="3" v-if="isAdmin"/> -->
+    </el-tabs>
+    <div style="text-align: right" class="search-input" v-if="showType === 0">
+      <el-input
+        v-model="queryParams.userName"
+        placeholder="请输入用户名"
+        clearable
+        @keyup.enter="handleQuery"
+        class="!w-240px"
+      >
+        <template #suffix>
+          <el-icon class="el-input__icon" @click="handleQuery" style="cursor: pointer">
+            <Search />
+          </el-icon>
+        </template>
+        <template #append>
+          <el-button :icon="Operation" @click="showSearchMore" />
+        </template>
+      </el-input>
+
+      <el-button
+        type="primary"
+        plain
+        class="ml-5px"
+        @click="openForm('ConsumptionCreate')"
+        v-if="showType === 0"
+        v-hasPermi="['distri:consumption-top-up-log:create']"
+      >
+        <Icon icon="ep:plus" class="mr-5px" /> 新增
+      </el-button>
     </div>
-    <div class="searchMore" v-show="searchMoreShow">
-        <el-form
+  </div>
+  <div class="searchMore" v-show="searchMoreShow">
+    <el-form
       class="-mb-15px"
       :model="queryParams"
       ref="queryFormRef"
       :inline="true"
       label-width="68px"
     >
-      
-
       <el-form-item label="创建时间" prop="createTime">
         <el-date-picker
           v-model="queryParams.createTime"
@@ -57,41 +55,43 @@
           class="!w-240px"
         />
       </el-form-item>
-          <el-row>
-            <el-col>
-              <el-form-item>
-                <el-button @click="hideSearchMore">
-                  收起
-                </el-button>
-                <el-button @click="resetQuery">
-                  重置
-                </el-button>
-                <el-button @click="handleQuery">
-                  <Icon icon="ep:search" class="mr-5px" /> 搜索
-                </el-button>
-              </el-form-item>
-            </el-col>
-          </el-row>
-        </el-form>
-    </div>
+      <el-row>
+        <el-col>
+          <el-form-item>
+            <el-button @click="hideSearchMore"> 收起 </el-button>
+            <el-button @click="resetQuery"> 重置 </el-button>
+            <el-button @click="handleQuery">
+              <Icon icon="ep:search" class="mr-5px" /> 搜索
+            </el-button>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+  </div>
   <!-- 列表 -->
   <ContentWrap class="m-t-10px p-10px">
-    <el-table v-if="showType === 0" v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
+    <el-table
+      v-if="showType === 0"
+      v-loading="loading"
+      :data="list"
+      :stripe="true"
+      :show-overflow-tooltip="true"
+    >
       <el-table-column label="编号" align="center" prop="id" />
       <el-table-column label="用户名" align="center" prop="userName" />
       <el-table-column
-        label="充值金额"
+        label="充值积分"
         align="center"
-        prop="consumptionPoints"
+        prop="integralPoints"
         :formatter="pointsFormatter"
       />
       <el-table-column
-        label="消费分"
+        label="实际积分"
         align="center"
-        prop="practicalConsumptionPoints"
+        prop="practicalIntegralPoints"
         :formatter="pointsFormatter"
       />
-      <el-table-column label="转账凭证附件" align="center" prop="attachment">
+      <!-- <el-table-column label="转账凭证附件" align="center" prop="attachment">
         <template #default="scope">
           <el-image
             style="width: 100px; height: 100px"
@@ -100,7 +100,7 @@
           />
           
         </template>
-      </el-table-column>
+      </el-table-column> -->
       <el-table-column
         label="创建时间"
         align="center"
@@ -108,10 +108,14 @@
         :formatter="dateFormatter"
         width="180px"
       />
-
     </el-table>
-    <el-table v-if="showType === 1" v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      
+    <el-table
+      v-if="showType === 1"
+      v-loading="loading"
+      :data="list"
+      :stripe="true"
+      :show-overflow-tooltip="true"
+    >
       <el-table-column label="编号" align="center" prop="id" />
       <el-table-column label="用户名" align="center" prop="userName" />
       <el-table-column
@@ -126,15 +130,10 @@
         prop="practicalConsumptionPoints"
         :formatter="pointsFormatter"
       />
-      
-      <el-table-column
-        label="支付渠道"
-        align="center"
-        prop="createTime"
-        width="180px"
-      >
+
+      <el-table-column label="支付渠道" align="center" prop="createTime" width="180px">
         <template #default="scope">
-          {{getDictLabel(DICT_TYPE.PAY_CHANNEL_CODE, scope.row.payChannelCode) }}
+          {{ getDictLabel(DICT_TYPE.PAY_CHANNEL_CODE, scope.row.payChannelCode) }}
         </template>
       </el-table-column>
       <el-table-column
@@ -151,9 +150,14 @@
         :formatter="dateFormatter"
         width="180px"
       />
-
     </el-table>
-    <el-table v-if="showType === 2" v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
+    <el-table
+      v-if="showType === 2"
+      v-loading="loading"
+      :data="list"
+      :stripe="true"
+      :show-overflow-tooltip="true"
+    >
       <el-table-column label="编号" align="center" prop="id" />
       <el-table-column label="转账人" align="center" prop="transferUserName" />
       <el-table-column
@@ -169,7 +173,12 @@
         :formatter="pointsFormatter"
       />
       <el-table-column label="接收人" align="center" prop="recipientUserName" />
-      <el-table-column label="接收人金额" align="center" prop="recipientPoints" :formatter="pointsFormatter"/>
+      <el-table-column
+        label="接收人金额"
+        align="center"
+        prop="recipientPoints"
+        :formatter="pointsFormatter"
+      />
       <el-table-column
         label="接收后余额"
         align="center"
@@ -183,9 +192,16 @@
         :formatter="dateFormatter"
         width="180px"
       />
-
     </el-table>
-    <el-table v-if="showType === 3" v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"  @row-click="openNotice($event)" row-class-name="row">
+    <el-table
+      v-if="showType === 3"
+      v-loading="loading"
+      :data="list"
+      :stripe="true"
+      :show-overflow-tooltip="true"
+      @row-click="openNotice($event)"
+      row-class-name="row"
+    >
       <el-table-column label="编号" align="center" prop="id" />
       <el-table-column label="异常用户数" align="center" prop="errorUsersCount" />
       <el-table-column
@@ -194,13 +210,7 @@
         prop="errorConsumptionPointsTotal"
         :formatter="pointsFormatter"
       />
-      <el-table-column
-        label="时间"
-        align="center"
-        prop="createTime"
-        :formatter="dateFormatter"
-      />
-
+      <el-table-column label="时间" align="center" prop="createTime" :formatter="dateFormatter" />
     </el-table>
     <!-- 分页 -->
     <Pagination
@@ -209,23 +219,21 @@
       v-model:limit="queryParams.pageSize"
       @pagination="handleGet"
     />
-
   </ContentWrap>
   <el-image-viewer
-      v-if="showViewer"
-      :url-list="urlList"
-      :z-index="9999"
-      :initial-index="currentIndex"
-      @close="closeViewer"
-    />
+    v-if="showViewer"
+    :url-list="urlList"
+    :z-index="9999"
+    :initial-index="currentIndex"
+    @close="closeViewer"
+  />
   <!-- 表单弹窗:添加/修改 -->
   <ConsumptionTopUpLogForm ref="formRef" @success="getList" />
   <ConsumptionTopNotice ref="NoticeRef" @success="getList" />
-
 </template>
 
 <script setup lang="ts">
-import { pointsFormatter,fenToYuanFormatter } from '@/utils'
+import { pointsFormatter, fenToYuanFormatter } from '@/utils'
 import { dateFormatter } from '@/utils/formatTime'
 import { DICT_TYPE, getDictLabel, getDictObj } from '@/utils/dict'
 import download from '@/utils/download'
@@ -236,11 +244,11 @@ import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 const { wsCache } = useCache()
 const user = wsCache.get(CACHE_KEY.USER)
 const isAdmin = computed(() => {
-  return user.user.id  === 1;
+  return user.user.id === 1
 })
 import { Search, Operation } from '@element-plus/icons-vue'
 const { currentRoute, push } = useRouter() // 路由跳转
-import { TabsPaneContext } from 'element-plus';
+import { TabsPaneContext } from 'element-plus'
 // 从路由中引入store中的app仓库
 import { useAppStore } from '@/store/modules/app'
 const appStore = useAppStore()
@@ -276,8 +284,8 @@ const hideSearchMore = () => {
 const showType = ref(0)
 const handleTabClick = (tab: TabsPaneContext) => {
   showType.value = tab.paneName as number
-  queryParams.pageNo = 1;
-  queryParams.userName = undefined;
+  queryParams.pageNo = 1
+  queryParams.userName = undefined
   list.value = []
   total.value = 0
   handleGet()
@@ -316,44 +324,43 @@ const getConsumptionTransfersLog = async () => {
   }
 }
 /** 查询异动记录 */
-const getConsumptionNotice= async () => {
+const getConsumptionNotice = async () => {
   loading.value = true
   try {
     const data = await ConsumptionTopUpLogApi.getConsumptionNotice(queryParams)
     list.value = data.list
     total.value = data.total
-    
   } finally {
     loading.value = false
   }
 }
-const handleGet = () =>{
-  if(showType.value == 0){
+const handleGet = () => {
+  if (showType.value == 0) {
     getList()
-  }else if(showType.value == 1){
+  } else if (showType.value == 1) {
     getUserList()
-  }else if(showType.value == 2){
+  } else if (showType.value == 2) {
     getConsumptionTransfersLog()
-  }else{
+  } else {
     getConsumptionNotice()
   }
 }
 // 控制图片预览器的状态
-const showViewer = ref(false);
-const urlList = ref<string[]>([]); // 存储所有图片URL的列表
-const currentIndex = ref(0); // 当前显示的图片索引
+const showViewer = ref(false)
+const urlList = ref<string[]>([]) // 存储所有图片URL的列表
+const currentIndex = ref(0) // 当前显示的图片索引
 
 // 打开图片预览
 const openViewer = (imageUrl: string) => {
   console.log(imageUrl)
-  urlList.value = list.value.map(item => item.attachment); // 提取所有图片URL
-  currentIndex.value = urlList.value.indexOf(imageUrl); // 根据点击的图片找到对应的索引
-  showViewer.value = true; // 显示图片预览器
-};
+  urlList.value = list.value.map((item) => item.attachment) // 提取所有图片URL
+  currentIndex.value = urlList.value.indexOf(imageUrl) // 根据点击的图片找到对应的索引
+  showViewer.value = true // 显示图片预览器
+}
 // 关闭图片预览
 const closeViewer = () => {
-  showViewer.value = false;
-};
+  showViewer.value = false
+}
 /** 搜索按钮操作 */
 const handleQuery = () => {
   queryParams.pageNo = 1
@@ -369,16 +376,16 @@ const resetQuery = () => {
 /** 添加/修改操作 */
 const formRef = ref()
 const openForm = (type: string, id?: number) => {
-  if(mobile.value){
+  if (mobile.value) {
     push({
-      name: 'ConsumptionAdd',
+      name: 'ConsumptionAdd'
     })
-  }else{
+  } else {
     formRef.value.open(type, id)
   }
 }
 const NoticeRef = ref()
-const openNotice = (row) =>{
+const openNotice = (row) => {
   NoticeRef.value.open(row.id)
 }
 
@@ -415,18 +422,17 @@ onMounted(() => {
   getList()
 })
 </script>
-<style src="@/styles/SearchIndex.css"  lang="scss" scoped></style>
+<style src="@/styles/SearchIndex.css" lang="scss" scoped></style>
 <style scoped>
-  .search{
-    flex-direction: row;
-  }
-  .search-input{
-    display: flex;
-  }
-  
+.search {
+  flex-direction: row;
+}
+.search-input {
+  display: flex;
+}
 </style>
 <style>
-  .row{
-    cursor: pointer;
-  }
-</style>
+.row {
+  cursor: pointer;
+}
+</style>

+ 9 - 8
src/views/system/distri/dailybill/DailyBillForm.vue

@@ -35,21 +35,22 @@
       <!-- <el-table-column label="商品名" align="center" prop="no" /> -->
       <el-table-column label="金额" align="center" prop="no" >
         <template #default="scope"> 
-          ¥{{fenToYuan(scope.row.payPrice) }}
+          ¥{{fenToYuan(scope.row.totalPrice) }}
         </template>
       </el-table-column>
-      <el-table-column label="确收金额" align="center" >
+      <el-table-column label="确收积分" align="center" >
         <template #default="scope"> 
-          ¥{{fenToYuan(scope.row.payPrice - scope.row.refundPrice) }}
+          <!-- ¥{{fenToYuan(scope.row.payPrice - scope.row.refundPrice) }} -->
+          ¥{{pointsToYuan(scope.row.payIntegral) }}
         </template>
       </el-table-column>
-      <el-table-column label="退款金额" align="center" prop="refundPrice" >
+      <el-table-column label="退款积分" align="center" prop="refundPrice" >
         <template #default="scope"> 
-          ¥{{fenToYuan(scope.row.refundPrice) }}
+          ¥{{pointsToYuan(scope.row.refundIntegral) }}
         </template>
       </el-table-column>
      
-      <el-table-column label="佣金抵扣" align="center" prop="payIntegral" >
+      <!-- <el-table-column label="佣金抵扣" align="center" prop="payIntegral" >
         <template #default="scope"> 
           {{pointsToPoint(scope.row.payIntegral || 0) }}
         </template>
@@ -58,7 +59,7 @@
         <template #default="scope"> 
           {{pointsToPoint(scope.row.payConsumptionPoints || 0) }}
         </template>
-      </el-table-column>
+      </el-table-column> -->
       <!-- <el-table-column label="确收佣金" align="center" prop="receivedIntegral" >
         <template #default="scope"> 
           {{pointsToPoint(scope.row.receivedIntegral) }}
@@ -90,7 +91,7 @@
 </template>
 <script setup lang="ts">
 // import { DailyBillApi, DailyBillVO } from '@/api/system/distri/dailybill'
-import { fenToYuan,pointsToPoint,formatTime } from '@/utils'
+import { fenToYuan,pointsToPoint,formatTime,pointsToYuan } from '@/utils'
 import OrderIndex from "@/views/mall/trade/order/components/OrderIndex.vue"
 import * as TradeOrderApi from '@/api/mall/trade/order'
 import { useAppStore } from '@/store/modules/app'

+ 7 - 7
src/views/system/distri/dailybill/index.vue

@@ -58,7 +58,7 @@
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"
       @row-click="openForm($event)" row-class-name="row">
       <el-table-column label="账单编号" align="center" prop="id" />
-      <el-table-column label="金额" align="center" prop="price">
+      <!-- <el-table-column label="金额" align="center" prop="price">
         <template #default="scope">
           ¥{{ fenToYuan(scope.row.price) }}
         </template>
@@ -72,24 +72,24 @@
         <template #default="scope">
           ¥{{ fenToYuan(scope.row.refundPrice) }}
         </template>
-      </el-table-column>
+      </el-table-column> -->
 
-      <el-table-column label="佣金" align="center" prop="integral">
+      <el-table-column label="积分" align="center" prop="integral">
         <template #default="scope">
           {{ pointsToPoint(scope.row.integral) }}
         </template>
       </el-table-column>
-      <el-table-column label="确收佣金" align="center" prop="receivedIntegral">
+      <el-table-column label="确收积分" align="center" prop="receivedIntegral">
         <template #default="scope">
           {{ pointsToPoint(scope.row.receivedIntegral) }}
         </template>
       </el-table-column>
-      <el-table-column label="退款佣金" align="center" prop="refundIntegral">
+      <el-table-column label="退款积分" align="center" prop="refundIntegral">
         <template #default="scope">
           {{ pointsToPoint(scope.row.refundIntegral) }}
         </template>
       </el-table-column>
-      <el-table-column label="消费分" align="center" prop="consumptionPoints">
+      <!-- <el-table-column label="消费分" align="center" prop="consumptionPoints">
         <template #default="scope">
           {{ pointsToPoint(scope.row.consumptionPoints) }}
         </template>
@@ -103,7 +103,7 @@
         <template #default="scope">
           {{ pointsToPoint(scope.row.refundConsumptionPoints) }}
         </template>
-      </el-table-column>
+      </el-table-column> -->
       <el-table-column label="订单数" align="center" prop="orderCount" />
       <el-table-column label="商户名" align="center" prop="merchantName" v-if="!merchantId"/>
       <el-table-column label="店铺名" align="center" prop="shopName" />

+ 20 - 9
src/views/system/distri/duser/index.vue

@@ -23,7 +23,7 @@
           class="!w-240px"
         />
       </el-form-item> -->
-      <el-form-item label="用户昵称" prop="nickName">
+      <!-- <el-form-item label="用户昵称" prop="nickName">
         <el-input
           v-model="queryParams.nickName"
           placeholder="请输入用户昵称"
@@ -31,7 +31,7 @@
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="用户手机号" prop="mobile">
         <el-input v-model="queryParams.mobile" placeholder="请输入用户手机号" clearable @keyup.enter="handleQuery"
           class="!w-240px" />
@@ -90,23 +90,34 @@
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
       <el-table-column label="用户编号" align="center" prop="id" />
       <!-- <el-table-column label="团队人员ID" align="center" prop="userId" /> -->
-      <el-table-column label="用户昵称" align="center" prop="nickName" />
+      <!-- <el-table-column label="用户昵称" align="center" prop="nickName" /> -->
       <el-table-column label="用户名" align="center" prop="username" />
       <el-table-column label="用户手机号" align="center" prop="mobile" />
       <!-- <el-table-column label="团队人员来源" align="center" prop="source" /> -->
-      <el-table-column label="用户佣金" align="center" prop="integral">
+      <el-table-column label="红积分" align="center" prop="redCurrentQuota">
         <template #default="scope">
-          {{ pointsToPoint(scope.row.integral) }}
+          {{ pointsToPoint(scope.row.redCurrentQuota) }}
         </template>
       </el-table-column>
-      <el-table-column label="冻结佣金" align="center" prop="freezeIntegral">
+      <el-table-column label="黄积分" align="center" prop="yellowCurrentQuota">
         <template #default="scope">
-          {{ pointsToPoint(scope.row.freezeIntegral) }}
+          {{ pointsToPoint(scope.row.yellowCurrentQuota) }}
+        </template>
+      </el-table-column>
+      <el-table-column label="绿积分" align="center" prop="greenCurrentQuota">
+        <template #default="scope">
+          {{ pointsToPoint(scope.row.greenCurrentQuota) }}
         </template>
       </el-table-column>
-      <el-table-column label="身价等级" align="center" prop="socialStatusLevel" />
+      
+      <!-- <el-table-column label="冻结佣金" align="center" prop="freezeIntegral">
+        <template #default="scope">
+          {{ pointsToPoint(scope.row.freezeIntegral) }}
+        </template>
+      </el-table-column> -->
+      <!-- <el-table-column label="身价等级" align="center" prop="socialStatusLevel" />
       <el-table-column label="身价值" align="center" prop="socialStatusPoint" />
-      <el-table-column label="距下一级点数" align="center" prop="socialUpNeed" />
+      <el-table-column label="距下一级点数" align="center" prop="socialUpNeed" /> -->
       <el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="180px" />
       <!-- <el-table-column label="操作" align="center">
         <template #default="scope">

+ 7 - 53
src/views/system/distri/ordercalc/index.vue

@@ -29,62 +29,16 @@
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="用户昵称" prop="name">
+      <el-form-item label="用户名" prop="userName">
         <el-input
-          v-model="queryParams.name"
+          v-model="queryParams.userName"
           placeholder="请输入用户昵称"
           clearable
           @keyup.enter="handleQuery"
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="售价" prop="price">
-        <el-input
-          v-model="queryParams.price"
-          placeholder="请输入售价"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item label="成本" prop="cost">
-        <el-input
-          v-model="queryParams.cost"
-          placeholder="请输入成本"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-
-      <el-form-item label="用户自得" prop="grossProfitUserQuota">
-        <el-input
-          v-model="queryParams.grossProfitUserQuota"
-          placeholder="请输入用户自得"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item label="直推奖" prop="grossProfitAncestorQuota">
-        <el-input
-          v-model="queryParams.grossProfitAncestorQuota"
-          placeholder="直推奖"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-
-      <el-form-item label="平台服务费" prop="grossProfitPlatformQuota">
-        <el-input
-          v-model="queryParams.grossProfitPlatformQuota"
-          placeholder="请输入平台服务费"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
+      
       <el-form-item label="创建时间" prop="createTime">
         <el-date-picker
           v-model="queryParams.createTime"
@@ -124,7 +78,7 @@
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
       <el-table-column label="编号" align="center" prop="id" />
       <el-table-column label="订单编号" align="center" prop="orderNo" width="200" />
-      <el-table-column label="用户昵称" align="center" prop="nickName" />
+      <!-- <el-table-column label="用户昵称" align="center" prop="nickName" /> -->
       <el-table-column label="销售价" align="center" prop="price" >
         <template #default="scope"> 
           ¥{{ fenToYuan(scope.row.price)}}
@@ -142,11 +96,11 @@
       </el-table-column>
       <el-table-column label="商品数量" align="center" prop="productCount" />
 
-      <el-table-column label="用户自得" align="center" prop="grossProfitUserQuota">
+      <!-- <el-table-column label="用户自得" align="center" prop="grossProfitUserQuota">
         <template #default="scope"> 
           {{pointsToPoint(scope.row.grossProfitUserQuota )}}
         </template>
-      </el-table-column>
+      </el-table-column> -->
       <el-table-column label="直推奖" align="center" prop="grossProfitAncestorQuota">
         <template #default="scope"> 
           {{pointsToPoint(scope.row.grossProfitAncestorQuota )}}
@@ -231,7 +185,7 @@ const queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   orderNo: undefined,
-  name: undefined,
+  userName: undefined,
   price: undefined,
   cost: undefined,
   grossProfitUserQuota: undefined,

+ 104 - 114
src/views/system/distri/orderpercentage/OrderPercentageForm.vue

@@ -1,6 +1,6 @@
 <template>
   <Dialog :title="dialogTitle" v-model="dialogVisible">
-    <el-form ref="formRef" :model="formData" :rules="formRules" label-width="200px" v-loading="formLoading">
+    <el-form ref="formRef" :model="formData" :rules="formRules" label-width="200px" v-loading="formLoading" class="p-10px">
       <template v-if="formType == 'update1'">
         <el-form-item label="毛利百分比" prop="grossProfitPerc">
           <template #label>
@@ -10,108 +10,106 @@
             <template #append>%</template>
           </el-input>
         </el-form-item>
-        <el-form-item label="用户自得" prop="grossProfitUserQuotaPerc">
-          <template #label>
-            <Tooltip message="例(35),用户自得+直推奖+合赢奖+平台服务费,总和不能超过100" title="用户自得" />
-          </template>
-          <el-input v-model="formData.grossProfitUserQuotaPerc" placeholder="请输入用户自得">
-            <template #append>%</template>
-          </el-input>
-        </el-form-item>
         <el-form-item label="直推奖" prop="grossProfitAncestorQuotaPerc">
           <template #label>
-            <Tooltip message="例(35),用户自得+直推奖+合赢奖+平台服务费,总和不能超过100" title="直推奖" />
+            <Tooltip message="例(35)" title="直推奖" />
           </template>
           <el-input v-model="formData.grossProfitAncestorQuotaPerc" placeholder="请输入直推奖">
             <template #append>%</template>
           </el-input>
         </el-form-item>
-        <el-form-item label="合赢奖" prop="grossProfitBonusQuotaPerc">
+        <el-form-item label="团队奖" prop="grossProfitBonusQuotaPerc">
           <template #label>
-            <Tooltip message="例(22),用户自得+直推奖+合赢奖+平台服务费,总和不能超过100" title="合赢奖" />
+            <Tooltip message="例(22)" title="团队奖" />
           </template>
-          <el-input v-model="formData.grossProfitBonusQuotaPerc" placeholder="请输入合赢奖">
+          <el-input v-model="formData.grossProfitBonusQuotaPerc" placeholder="请输入团队奖">
             <template #append>%</template>
           </el-input>
         </el-form-item>
-        <el-form-item label="平台服务费" prop="grossProfitPlatformQuotaPerc">
+        <el-form-item label="幸运奖" prop="grossProfitLuckyQuotaPerc">
           <template #label>
-            <Tooltip message="例(35),用户自得+直推奖+合赢奖+平台服务费,总和不能超过100" title="平台服务费" />
+            <Tooltip message="例(22)" title="幸运奖" />
           </template>
-          <el-input v-model="formData.grossProfitPlatformQuotaPerc" placeholder="请输入平台服务费">
+          <el-input v-model="formData.grossProfitLuckyQuotaPerc" placeholder="请输入幸运奖">
             <template #append>%</template>
           </el-input>
         </el-form-item>
-        <el-form-item label="分成" prop="divideIntoPerc">
-          <el-input v-model="formData.divideIntoPerc" placeholder="请输入分成">
+        <el-form-item label="黄积分所占百分比" prop="bonusYellowIntegral">
+          <template #label>
+            <Tooltip message="例(80,黄积分所占+绿积分所占=100)" title="黄积分所占百分比" />
+          </template>
+          <el-input v-model="formData.bonusYellowIntegral" placeholder="请输入黄积分所占百分比">
             <template #append>%</template>
           </el-input>
         </el-form-item>
-      </template>
-      <template v-else-if="formType == 'withdraw'">
-        <el-form-item label="提现比例" prop="withdrawCommission">
+        <el-form-item label="绿积分所占百分比" prop="bonusGreenIntegral">
           <template #label>
-            <Tooltip message="例80%,提现比例+消费分比例必须等于100%" title="提现比例" />
+            <Tooltip message="例(20,黄积分所占+绿积分所占=100)" title="绿积分所占百分比" />
           </template>
-          <el-input v-model="formData.withdrawCommission" placeholder="请输入提现比例">
+          <el-input v-model="formData.bonusGreenIntegral" placeholder="请输入绿积分所占百分比">
             <template #append>%</template>
           </el-input>
         </el-form-item>
-        <el-form-item label="消费分比例" prop="withdrawConsumption">
+        <el-form-item label="平台服务费" prop="grossProfitPlatformQuotaPerc">
           <template #label>
-            <Tooltip message="例20%,提现比例+消费分比例必须等于100%" title="消费分比例" />
+            <Tooltip message="例(35)" title="平台服务费" />
           </template>
-          <el-input v-model="formData.withdrawConsumption" placeholder="请输入消费分比例">
+          <el-input v-model="formData.grossProfitPlatformQuotaPerc" placeholder="请输入平台服务费">
             <template #append>%</template>
           </el-input>
         </el-form-item>
-        
       </template>
       <template v-else-if="formType == 'update2'">
-        <el-form-item label="购物自得" prop="orderUserSocialStatus">
-          <el-input v-model="formData.orderUserSocialStatus" placeholder="请输入购物自得" />
-        </el-form-item>
-        <el-form-item label="购物推荐人获得" prop="orderAncestorSocialStatus">
-          <el-input v-model="formData.orderAncestorSocialStatus" placeholder="请输入购物推荐人获得" />
-        </el-form-item>
-        <el-form-item label="注册默认身价" prop="registerSocialStatus">
-          <el-input v-model="formData.registerSocialStatus" placeholder="请输入注册默认身价" />
-        </el-form-item>
-        <el-form-item label="推荐注册身价" prop="registerAncestorSocialStatus">
-          <el-input v-model="formData.registerAncestorSocialStatus" placeholder="请输入推荐注册身价" />
+        <el-form-item label="会员转换比例(黄转红)" prop="memberYellowTransitionRed">
+          <template #label>
+            <Tooltip message="例(80)" title="会员黄积分转红积分比例" />
+          </template>
+          <el-input v-model="formData.memberYellowTransitionRed" placeholder="请输入会员转换比例(黄转红)">
+            <template #append>%</template>
+          </el-input>
         </el-form-item>
-        <el-form-item label="收藏获得" prop="collectSocialStatus">
-          <el-input v-model="formData.collectSocialStatus" placeholder="请输入收藏获得" />
+        <el-form-item label="会员转换比例(红转绿)" prop="memberRedTransitionGreen">
+          <template #label>
+            <Tooltip message="例(80)" title="会员红积分转绿积分比例" />
+          </template>
+          <el-input v-model="formData.memberRedTransitionGreen" placeholder="请输入会员转换比例(红转绿)">
+            <template #append>%</template>
+          </el-input>
         </el-form-item>
-        <el-form-item label="签到获得" prop="signInsocialstatus">
-          <el-input v-model="formData.signInSocialStatus" placeholder="请输入签到获得" />
+        <el-form-item label="代理商转换比例(黄转红)" prop="agentYellowTransitionRed">
+          <template #label>
+            <Tooltip message="例(80)" title="代理商黄积分转红积分比例" />
+          </template>
+          <el-input v-model="formData.agentYellowTransitionRed" placeholder="请输入代理商转换比例(黄转红)">
+            <template #append>%</template>
+          </el-input>
         </el-form-item>
-        <el-form-item label="签到可获得最大身价值" prop="signInsocialstatusMax">
-          <el-input v-model="formData.signInSocialStatusMax" placeholder="请输入签到获得" />
+        <el-form-item label="代理商转换比例(红转绿)" prop="agentRedTransitionGreen">
+          <template #label>
+            <Tooltip message="例(80)" title="代理商红积分转绿积分比例" />
+          </template>
+          <el-input v-model="formData.agentRedTransitionGreen" placeholder="请输入代理商转换比例(红转绿)">
+            <template #append>%</template>
+          </el-input>
         </el-form-item>
       </template>
-      <template v-else>
-        <el-form-item label="充值倍率" prop="consumptionMagnification">
-          <el-input v-model="formData.consumptionMagnification" placeholder="请输入充值倍率" >
+      <template v-else-if="formType == 'update3'">
+        <el-form-item label="充值倍率" prop="integralMagnification">
+          <template #label>
+            <Tooltip message="例(0.5)表示50%" title="充值倍率" />
+          </template>
+          <el-input v-model="formData.integralMagnification" placeholder="请输入充值倍率">
             <template #append>%</template>
-          </el-input> 
+          </el-input>
         </el-form-item>
         <el-form-item label="触发倍率的最低金额" prop="triggerMagnificationPoints">
+          <template #label>
+            <Tooltip message="触发充值倍率所需的最低金额" title="触发倍率的最低金额" />
+          </template>
           <el-input v-model="formData.triggerMagnificationPoints" placeholder="请输入触发倍率的最低金额" />
         </el-form-item>
-        <!-- <el-form-item label="首次最低充值金额" prop="firstTopUpConsumption">
-          <el-input v-model="formData.firstTopUpConsumption" placeholder="请输入首次最低充值金额" />
-        </el-form-item> -->
-        <!-- <el-form-item label="后续单次最低充值金额" prop="followUpConsumption">
-          <el-input v-model="formData.followUpConsumption" placeholder="请输入后续单次最低充值金额" />
-        </el-form-item>-->
-        <el-form-item label="用户单次最低充值金额" prop="userTopUpConsumptionPoints">
-          <el-input v-model="formData.userTopUpConsumptionPoints" placeholder="用户单次最低充值金额" />
-        </el-form-item> 
-        <el-form-item label="成为代理商所需额度" prop="userTopUpConsumptionPoints">
-          <el-input v-model="formData.agentQuota" placeholder="成为代理商所需额度" />
-        </el-form-item> 
       </template>
+      
     </el-form>
 
     <template #footer>
@@ -135,46 +133,26 @@ const formLoading = ref(false) // 表单的加载中:1)修改时的数据加
 const formType = ref('') // 表单的类型:create - 新增;update - 修改
 const formData = ref({
   id: undefined,
+  // update1 字段
   grossProfitPerc: undefined,
-  grossProfitUserQuotaPerc: undefined,
   grossProfitAncestorQuotaPerc: undefined,
   grossProfitBonusQuotaPerc: undefined,
+  grossProfitLuckyQuotaPerc: undefined,
+  bonusYellowIntegral: undefined,
+  bonusGreenIntegral: undefined,
   grossProfitPlatformQuotaPerc: undefined,
-  divideIntoPerc: undefined,
-  orderUserSocialStatus: undefined,
-  orderAncestorSocialStatus: undefined,
-  registerSocialStatus: undefined,
-  registerAncestorSocialStatus: undefined,
-  collectSocialStatus: undefined,
-  signInSocialStatus:undefined,
-  signInSocialStatusMax:undefined,
-  consumptionMagnification: undefined,
-  firstTopUpConsumption: undefined,
-  followUpConsumption: undefined,
-  withdrawCommission: undefined,
-  withdrawConsumption:undefined,
-  userTopUpConsumptionPoints:undefined,
-  triggerMagnificationPoints:undefined,
-  agentQuota:undefined
+  
+  // update2 字段
+  memberYellowTransitionRed: undefined,
+  memberRedTransitionGreen: undefined,
+  agentYellowTransitionRed: undefined,
+  agentRedTransitionGreen: undefined,
+  
+  // update3 字段
+  integralMagnification: undefined,
+  triggerMagnificationPoints: undefined
 }) // 表单数据
 
-const totalPercentage = computed(() => {
-  return Number(formData.value.grossProfitUserQuotaPerc) +
-    Number(formData.value.grossProfitAncestorQuotaPerc) +
-    Number(formData.value.grossProfitBonusQuotaPerc) +
-    Number(formData.value.grossProfitPlatformQuotaPerc);
-});
-const isSubmitDisabled = computed(() => {
-  return totalPercentage.value > 100;
-});
-
-const withdrawPercentage = computed(() => {
-  return Number(formData.value.withdrawCommission) +
-    Number(formData.value.withdrawConsumption) 
-});
-const withdrawIsSubmitDisabled = computed(() => {
-  return withdrawPercentage.value !== 100;
-});
 const formRules = reactive({
 })
 const formRef = ref() // 表单 Ref
@@ -195,39 +173,44 @@ const open = async (type: string, id?: number) => {
     }
     percKeys.forEach(key => {
       if (formData.value.hasOwnProperty(key)) {
-        formData.value[key] = (formData.value[key] * 100);
+        formData.value[key] = (formData.value[key] * 100).toFixed(0);
       }
     });
   }
 }
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 const percKeys = [
+  // update1 相关的百分比字段
   "grossProfitPerc",
-  "grossProfitUserQuotaPerc",
   "grossProfitAncestorQuotaPerc",
   "grossProfitBonusQuotaPerc",
+  "grossProfitLuckyQuotaPerc",
+  "bonusYellowIntegral",
+  "bonusGreenIntegral",
   "grossProfitPlatformQuotaPerc",
-  "divideIntoPerc",
-  "consumptionMagnification",
-  "withdrawCommission",
-  "withdrawConsumption",
+  
+  // update2 相关的百分比字段
+  "memberYellowTransitionRed",
+  "memberRedTransitionGreen",
+  "agentYellowTransitionRed",
+  "agentRedTransitionGreen",
+  
+  // update3 相关的百分比字段
+  "integralMagnification"
 ];
 /** 提交表单 */
 const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
 const submitForm = async () => {
-
- 
-  // 如果用户自得+直推奖+合赢奖+平台服务费> 100那就不给保存
-  if (isSubmitDisabled.value) {
-    message.error('用户自得+直推奖+合赢奖+平台服务费,总和不能超过100%');
-    return;
-  }
-  // 如果提现佣金+提现消费金额 != 100那就不给保存
-  if (withdrawIsSubmitDisabled.value) {
-    message.error('提现佣金+提现消费金额,总和必须为100%');
-    return;
+  if (formData.value.bonusYellowIntegral && formData.value.bonusGreenIntegral) {
+    const yellowIntegral = Number(formData.value.bonusYellowIntegral)
+    const greenIntegral = Number(formData.value.bonusGreenIntegral)
+    const total = yellowIntegral + greenIntegral
+    
+    if (total !== 100) {
+      message.error('黄积分所占百分比与绿积分所占百分比之和必须等于100%')
+      return
+    }
   }
-  
    // 转换百分比为小数并转为字符串
    percKeys.forEach(key => {
     if (formData.value.hasOwnProperty(key)) {
@@ -261,11 +244,18 @@ const resetForm = () => {
   formData.value = {
     id: undefined,
     grossProfitPerc: undefined,
-    grossProfitUserQuotaPerc: undefined,
     grossProfitAncestorQuotaPerc: undefined,
     grossProfitBonusQuotaPerc: undefined,
+    grossProfitLuckyQuotaPerc: undefined,
+    bonusYellowIntegral: undefined,
+    bonusGreenIntegral: undefined,
     grossProfitPlatformQuotaPerc: undefined,
-    divideIntoPerc: undefined
+    memberYellowTransitionRed: undefined,
+    memberRedTransitionGreen: undefined,
+    agentYellowTransitionRed: undefined,
+    agentRedTransitionGreen: undefined,
+    integralMagnification: undefined,
+    triggerMagnificationPoints: undefined
   }
   formRef.value?.resetFields()
 }

+ 25 - 195
src/views/system/distri/orderpercentage/index.vue

@@ -1,228 +1,79 @@
 <template>
-  <!-- <ContentWrap>
-
-    <el-form
-      class="-mb-15px"
-      :model="queryParams"
-      ref="queryFormRef"
-      :inline="true"
-      label-width="68px"
-    >
-      <el-form-item label="毛利 = 成本 * 0.38... (推广费用)" prop="grossProfitPerc">
-        <el-input
-          v-model="queryParams.grossProfitPerc"
-          placeholder="请输入毛利 = 成本 * 0.38... (推广费用)"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item label="推广-用户额度 百分比" prop="grossProfitUserQuotaPerc">
-        <el-input
-          v-model="queryParams.grossProfitUserQuotaPerc"
-          placeholder="请输入推广-用户额度 百分比"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item label="推广-推荐人额度 百分比" prop="grossProfitAncestorQuotaPerc">
-        <el-input
-          v-model="queryParams.grossProfitAncestorQuotaPerc"
-          placeholder="请输入推广-推荐人额度 百分比"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item label="推广-合赢奖额度(浮动) 百分比" prop="grossProfitBonusQuotaPerc">
-        <el-input
-          v-model="queryParams.grossProfitBonusQuotaPerc"
-          placeholder="请输入推广-合赢奖额度(浮动) 百分比"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item label="推广-平台分成额度(浮动) 百分比" prop="grossProfitPlatformQuotaPerc">
-        <el-input
-          v-model="queryParams.grossProfitPlatformQuotaPerc"
-          placeholder="请输入推广-平台分成额度(浮动) 百分比"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item label="分成百分比" prop="divideIntoPerc">
-        <el-input
-          v-model="queryParams.divideIntoPerc"
-          placeholder="请输入分成百分比"
-          clearable
-          @keyup.enter="handleQuery"
-          class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item label="创建时间" prop="createTime">
-        <el-date-picker
-          v-model="queryParams.createTime"
-          value-format="YYYY-MM-DD HH:mm:ss"
-          type="daterange"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
-          class="!w-240px"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
-        <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
-        <el-button
-          type="primary"
-          plain
-          @click="openForm('create')"
-          v-hasPermi="['distri:order-percentage:create']"
-        >
-          <Icon icon="ep:plus" class="mr-5px" /> 新增
-        </el-button>
-        <el-button
-          type="success"
-          plain
-          @click="handleExport"
-          :loading="exportLoading"
-          v-hasPermi="['distri:order-percentage:export']"
-        >
-          <Icon icon="ep:download" class="mr-5px" /> 导出
-        </el-button>
-      </el-form-item>
-    </el-form>
-  </ContentWrap> -->
-
-  <!-- 列表 -->
-  <h3 class="m-y-1">佣金</h3>
+  <h3 class="m-y-1">奖金</h3>
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-
       <el-table-column label="毛利" align="center" prop="grossProfitPerc" >
         <template #default="scope">
           <span>{{ scope.row.grossProfitPerc*100 }}%</span>
         </template>
       </el-table-column>
-      <el-table-column label="用户自得" align="center" prop="grossProfitUserQuotaPerc" >
-        <template #default="scope">
-          <span>{{ scope.row.grossProfitUserQuotaPerc*100  }}%</span>
-        </template>
-      </el-table-column>
       <el-table-column label="直推奖" align="center" prop="grossProfitAncestorQuotaPerc" >
         <template #default="scope">
           <span>{{ scope.row.grossProfitAncestorQuotaPerc*100}}%</span>
         </template>
       </el-table-column>
-      <el-table-column label="合赢奖" align="center" prop="grossProfitBonusQuotaPerc" >
+      <el-table-column label="团队奖" align="center" prop="grossProfitBonusQuotaPerc" >
         <template #default="scope">
           <span>{{ scope.row.grossProfitBonusQuotaPerc*100 }}%</span>
         </template>
       </el-table-column>
-      <el-table-column label="平台服务费" align="center" prop="grossProfitPlatformQuotaPerc" >
+      <el-table-column label="幸运奖" align="center" prop="grossProfitLuckyQuotaPerc">
         <template #default="scope">
-          <span>{{ scope.row.grossProfitPlatformQuotaPerc*100 }}%</span>
+          <span>{{ scope.row.grossProfitLuckyQuotaPerc*100 }}%</span>
         </template>
       </el-table-column>
-      <el-table-column label="分成百分比" align="center" prop="divideIntoPerc">
+      <el-table-column label="黄积分所占百分比" align="center" prop="bonusYellowIntegral">
         <template #default="scope">
-          <span>{{ scope.row.divideIntoPerc*100 }}%</span>
+          <span>{{ scope.row.bonusYellowIntegral*100 }}%</span>
         </template>
       </el-table-column>
-
-      <el-table-column label="操作" align="center">
+      <el-table-column label="绿积分所占百分比" align="center" prop="bonusGreenIntegral">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openForm('update1', scope.row.id)"
-            v-hasPermi="['distri:order-percentage:update']"
-          >
-            编辑
-          </el-button>
-          <!-- <el-button
-            link
-            type="danger"
-            @click="handleDelete(scope.row.id)"
-            v-hasPermi="['distri:order-percentage:delete']"
-          >
-            删除
-          </el-button> -->
+          <span>{{ scope.row.bonusGreenIntegral*100 }}%</span>
         </template>
       </el-table-column>
-    </el-table>
-  </ContentWrap>
-  <h3 class="m-y-1">公众提现</h3>
-  <ContentWrap>
-    <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-
-      <el-table-column label="提现比例" align="center" prop="withdrawCommission" >
-        <template #default="scope">
-          <span>{{ scope.row.withdrawCommission*100 }}%</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="消费分比例" align="center" prop="withdrawConsumption" >
+      <el-table-column label="平台服务费" align="center" prop="grossProfitPlatformQuotaPerc" >
         <template #default="scope">
-          <span>{{ scope.row.withdrawConsumption*100  }}%</span>
+          <span>{{ scope.row.grossProfitPlatformQuotaPerc*100 }}%</span>
         </template>
       </el-table-column>
-      
-
       <el-table-column label="操作" align="center">
         <template #default="scope">
           <el-button
             link
             type="primary"
-            @click="openForm('withdraw', scope.row.id)"
+            @click="openForm('update1', scope.row.id)"
             v-hasPermi="['distri:order-percentage:update']"
           >
             编辑
           </el-button>
-          <!-- <el-button
-            link
-            type="danger"
-            @click="handleDelete(scope.row.id)"
-            v-hasPermi="['distri:order-percentage:delete']"
-          >
-            删除
-          </el-button> -->
         </template>
       </el-table-column>
     </el-table>
   </ContentWrap>
-  <h3 class="m-y-1">身价</h3>
+  <h3 class="m-y-1">积分转换</h3>
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="购物自得" align="center" prop="orderUserSocialStatus" >
-        <template #default="scope">
-          <span>{{ scope.row.orderUserSocialStatus }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="购物推荐人获得" align="center" prop="orderAncestorSocialStatus" >
+      <el-table-column label="会员转换比例(黄转红)" align="center" prop="memberYellowTransitionRed" >
         <template #default="scope">
-          <span>{{ scope.row.orderAncestorSocialStatus  }}</span>
+          <span>{{ scope.row.memberYellowTransitionRed*100 }}%</span>
         </template>
       </el-table-column>
-      <el-table-column label="注册默认身价" align="center" prop="registerSocialStatus" >
+      <el-table-column label="会员转换比例(红转绿)" align="center" prop="memberRedTransitionGreen" >
         <template #default="scope">
-          <span>{{ scope.row.registerSocialStatus}}</span>
+          <span>{{ scope.row.memberRedTransitionGreen*100 }}%</span>
         </template>
       </el-table-column>
-      <el-table-column label="推荐注册身价" align="center" prop="registerAncestorSocialStatus" >
+      <el-table-column label="代理商转换比例(黄转红)" align="center" prop="agentYellowTransitionRed" >
         <template #default="scope">
-          <span>{{ scope.row.registerAncestorSocialStatus}}</span>
+          <span>{{ (scope.row.agentYellowTransitionRed * 100).toFixed(0) }}%</span>
         </template>
       </el-table-column>
-      <el-table-column label="收藏获得" align="center" prop="collectSocialStatus" >
+      <el-table-column label="代理商转换比例(红转绿)" align="center" prop="agentRedTransitionGreen" >
         <template #default="scope">
-          <span>{{ scope.row.collectSocialStatus }}</span>
+            <span>{{ scope.row.agentRedTransitionGreen*100 }}%</span>
         </template>
       </el-table-column>
-      <el-table-column label="签到获得" align="center" prop="signInSocialStatus" />
-      <el-table-column label="签到可获得的最大身价值" align="center" prop="signInSocialStatusMax" />
       <el-table-column label="操作" align="center">
         <template #default="scope">
           <el-button
@@ -237,47 +88,26 @@
       </el-table-column>
     </el-table>
   </ContentWrap>
-  <h3 class="m-y-1">消费分</h3>
+
+  <h3 class="m-y-1">充值</h3>
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="充值倍率" align="center" prop="consumptionMagnification" >
+      <el-table-column label="充值倍率" align="center" prop="integralMagnification" >
         <template #default="scope">
-          <span>{{ scope.row.consumptionMagnification*100 }}%</span>
+          <span>{{ scope.row.integralMagnification*100 }}%</span>
         </template>
-
       </el-table-column>
       <el-table-column label="触发倍率的最低金额" align="center" prop="triggerMagnificationPoints" >
         <template #default="scope">
           <span>{{ scope.row.triggerMagnificationPoints }}</span>
         </template>
-
-      </el-table-column>
-      <!-- <el-table-column label="首次最低充值金额" align="center" prop="firstTopUpConsumption" >
-        <template #default="scope">
-          <span>{{ scope.row.firstTopUpConsumption  }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="后续单次最低充值金额" align="center" prop="followUpConsumption" >
-        <template #default="scope">
-          <span>{{ scope.row.followUpConsumption}}</span>
-        </template>
-      </el-table-column> -->
-      <el-table-column label="用户单次最低充值金额" align="center" prop="userTopUpConsumptionPoints" >
-        <template #default="scope">
-          <span>{{ scope.row.userTopUpConsumptionPoints}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="成为代理商所需额度" align="center" prop="agentQuota" >
-        <template #default="scope">
-          <span>{{ scope.row.agentQuota}}</span>
-        </template>
       </el-table-column>
       <el-table-column label="操作" align="center">
         <template #default="scope">
           <el-button
             link
             type="primary"
-            @click="openForm('consumption', scope.row.id)"
+            @click="openForm('update3', scope.row.id)"
             v-hasPermi="['distri:order-percentage:update']"
           >
             编辑

+ 2 - 1
src/views/system/distri/partitioncrash/PartitionCrashForm.vue

@@ -1,5 +1,6 @@
 <template>
   <Dialog :title="dialogTitle" v-model="dialogVisible" width="85%">
+    
     <!-- 搜索 -->
   <div class="search-one">
     <div style="text-align: right;" class="search-input">
@@ -60,7 +61,7 @@
     <ContentWrap style="margin-top: 10px;max-height: 550px;min-height: 550px;padding: 10px;">
       <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
         <!-- <el-table-column label="编号" align="center" prop="id" /> -->
-        <el-table-column label="用户昵称" align="center" prop="nickName" />
+        <!-- <el-table-column label="用户昵称" align="center" prop="nickName" /> -->
         <!-- <el-table-column label="分区编号" align="center" prop="partNo" /> -->
         <el-table-column label="兄弟分区计算后额度" align="center" prop="brotherPrice" >
         <template #default="scope">

+ 7 - 7
src/views/system/distri/ptdailybill/index.vue

@@ -51,7 +51,7 @@
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" @row-click="openForm($event)" row-class-name="row">
       <el-table-column label="账单编号" align="center" prop="id" />
       
-      <el-table-column label="金额" align="center" prop="price">
+      <!-- <el-table-column label="金额" align="center" prop="price">
         <template #default="scope">
           ¥{{ fenToYuan(scope.row.price) }}
         </template>
@@ -65,25 +65,25 @@
         <template #default="scope">
           ¥{{ fenToYuan(scope.row.refundPrice) }}
         </template>
-      </el-table-column>
+      </el-table-column> -->
 
-      <el-table-column label="佣金" align="center" prop="integral">
+      <el-table-column label="积分" align="center" prop="integral">
         <template #default="scope">
           {{ pointsToPoint(scope.row.integral) }}
         </template>
       </el-table-column>
-      <el-table-column label="确收佣金" align="center" prop="receivedIntegral">
+      <el-table-column label="确收积分" align="center" prop="receivedIntegral">
         <template #default="scope">
           {{ pointsToPoint(scope.row.receivedIntegral) }}
         </template>
       </el-table-column>
-      <el-table-column label="退款佣金" align="center" prop="refundIntegral">
+      <el-table-column label="退款积分" align="center" prop="refundIntegral">
         <template #default="scope">
           {{ pointsToPoint(scope.row.refundIntegral) }}
         </template>
       </el-table-column>
 
-      <el-table-column label="消费分" align="center" prop="consumptionPoints">
+      <!-- <el-table-column label="消费分" align="center" prop="consumptionPoints">
         <template #default="scope">
           {{ pointsToPoint(scope.row.consumptionPoints) }}
         </template>
@@ -97,7 +97,7 @@
         <template #default="scope">
           {{ pointsToPoint(scope.row.refundConsumptionPoints) }}
         </template>
-      </el-table-column>
+      </el-table-column> -->
 
       <el-table-column label="订单数" align="center" prop="orderCount" />
       <!-- <el-table-column label="订单所属日期" align="center" prop="orderCalcTime" /> -->

+ 7 - 61
src/views/system/distri/ptprofit/PtProfitForm.vue

@@ -1,6 +1,6 @@
 <template>
-  <Dialog title="游客收益" v-model="dialogVisible" width="900px" style="height: 580px;">
-    <Points  openSource="PtProfit" />
+  <Dialog :title="dialogTitle" v-model="dialogVisible" width="900px" style="height: 580px;">
+    <Points  openSource="PtProfit" :Infotype="Infotype"  />
 
   </Dialog>
 </template>
@@ -14,69 +14,15 @@ const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 
 const dialogVisible = ref(false) // 弹窗的是否展示
-const dialogTitle = ref('') // 弹窗的标题
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
-const formType = ref('') // 表单的类型:create - 新增;update - 修改
-const formData = ref({
-  id: undefined,
-  ptAdd: undefined,
-  ptGrossAdd: undefined,
-  ptTotalAdd: undefined
-})
-const formRules = reactive({
-})
-const formRef = ref() // 表单 Ref
-
+const Infotype = ref(0) // 表单的类型:1)修改;2)查看
+const dialogTitle = ref('') // 表单的标题
 /** 打开弹窗 */
-const open = async (type: string, id?: number) => {
+const open = async (row: PtProfitVO, type: number,title:string) => {
   dialogVisible.value = true
-  dialogTitle.value = t('action.' + type)
-  formType.value = type
-  resetForm()
-  // 修改时,设置数据
-  if (id) {
-    formLoading.value = true
-    try {
-      formData.value = await PtProfitApi.getPtProfit(id)
-    } finally {
-      formLoading.value = false
-    }
-  }
+  Infotype.value = type
+  dialogTitle.value = title
 }
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 
-/** 提交表单 */
-const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
-const submitForm = async () => {
-  // 校验表单
-  await formRef.value.validate()
-  // 提交请求
-  formLoading.value = true
-  try {
-    const data = formData.value as unknown as PtProfitApi.PtProfitVO
-    if (formType.value === 'create') {
-      await PtProfitApi.createPtProfit(data)
-      message.success(t('common.createSuccess'))
-    } else {
-      await PtProfitApi.updatePtProfit(data)
-      message.success(t('common.updateSuccess'))
-    }
-    dialogVisible.value = false
-    // 发送操作成功的事件
-    emit('success')
-  } finally {
-    formLoading.value = false
-  }
-}
-
-/** 重置表单 */
-const resetForm = () => {
-  formData.value = {
-    id: undefined,
-    ptAdd: undefined,
-    ptGrossAdd: undefined,
-    ptTotalAdd: undefined
-  }
-  formRef.value?.resetFields()
-}
 </script>

+ 42 - 29
src/views/system/distri/ptprofit/index.vue

@@ -15,20 +15,24 @@
   <div class="searchMore" v-show="searchMoreShow" :style="{ width: (mobile ? '88.7%' : '96%') }">
     <el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="100px">
       <el-form-item label="平台服务费" prop="ptAdd">
-        <el-input v-model="queryParams.ptAdd" placeholder="请输入平台服务费" clearable @keyup.enter="handleQuery"
+        <el-input
+v-model="queryParams.ptAdd" placeholder="请输入平台服务费" clearable @keyup.enter="handleQuery"
           class="!w-240px" />
       </el-form-item>
       <el-form-item label="平台收益" prop="ptGrossAdd">
-        <el-input v-model="queryParams.ptGrossAdd" placeholder="请输入平台收益" clearable
+        <el-input
+v-model="queryParams.ptGrossAdd" placeholder="请输入平台收益" clearable
           @keyup.enter="handleQuery" class="!w-240px" />
       </el-form-item>
       
       <el-form-item label="平台总收益" prop="ptTotalAdd">
-        <el-input v-model="queryParams.ptTotalAdd" placeholder="请输入平台总收益" clearable @keyup.enter="handleQuery"
+        <el-input
+v-model="queryParams.ptTotalAdd" placeholder="请输入平台总收益" clearable @keyup.enter="handleQuery"
           class="!w-240px" />
       </el-form-item>
       <el-form-item label="创建时间" prop="createTime">
-        <el-date-picker v-model="queryParams.createTime" value-format="YYYY-MM-DD HH:mm:ss" type="daterange"
+        <el-date-picker
+v-model="queryParams.createTime" value-format="YYYY-MM-DD HH:mm:ss" type="daterange"
           start-placeholder="开始日期" end-placeholder="结束日期"
           :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" class="!w-240px" />
       </el-form-item>
@@ -61,48 +65,47 @@
 
   <!-- 列表 -->
   <ContentWrap style="margin-top:10px;padding: 10px;">
-    <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" @row-click="openForm($event)" row-class-name="row">
-      <el-table-column label="编号" align="center" prop="id" />
-      <el-table-column label="平台服务费" align="center" prop="ptAdd" >
+    <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
+      <el-table-column label="平台收益" align="center" prop="ptGrossAdd">
         <template #default="scope">
-          {{pointsToPoint(scope.row.ptAdd )}}
+          <div class="cell-content" @click="openForm(scope.row,1,'平台收益')">
+            {{pointsToPoint(scope.row.ptGrossAdd)}}
+          </div>
         </template>
       </el-table-column>
-      <el-table-column label="平台收益" align="center" prop="ptGrossAdd" >
+      <el-table-column label="利润(硒泽源)" align="center" prop="profit">
         <template #default="scope">
-          {{pointsToPoint(scope.row.ptGrossAdd  )}}
+          <div class="cell-content" @click="openForm(scope.row,3,'利润')">
+            {{pointsToPoint(scope.row.profit)}}
+          </div>
         </template>
       </el-table-column>
-      <el-table-column label="利润(硒泽源)" align="center" prop="profit">
+      <el-table-column label="未结算金额" align="center" prop="settlementPrice">
         <template #default="scope">
-          {{pointsToPoint(scope.row.profit)}}
+          <div class="cell-content" @click="openForm(scope.row,4,'未结算金额')">
+            {{pointsToPoint(scope.row.settlementPrice)}}
+          </div>
         </template>
       </el-table-column>
-      <el-table-column label="游客收益" align="center" prop="visitorEarnings">
+      <el-table-column label="平台服务费" align="center" prop="ptAdd">
         <template #default="scope">
-          {{pointsToPoint(scope.row.visitorEarnings)}}
+          <div class="cell-content" @click="openForm(scope.row,2,'服务费')">
+            {{pointsToPoint(scope.row.ptAdd)}}
+          </div>
         </template>
       </el-table-column>
       <el-table-column label="平台总收益" align="center" prop="ptTotalAdd">
         <template #default="scope">
-          {{pointsToPoint(scope.row.ptTotalAdd )}}
+          
+            {{pointsToPoint(scope.row.ptTotalAdd)}}
+          
         </template>
       </el-table-column>
       <el-table-column label="创建时间" align="center" prop="createTime" :formatter="dateFormatter" width="180px" />
-      <!-- <el-table-column label="操作" align="center">
-        <template #default="scope">
-          <el-button link type="primary" @click="openForm('update', scope.row.id)"
-            v-hasPermi="['distri:pt-profit:update']">
-            编辑
-          </el-button>
-          <el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['distri:pt-profit:delete']">
-            删除
-          </el-button>
-        </template>
-      </el-table-column> -->
     </el-table>
     <!-- 分页 -->
-    <Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
+    <Pagination
+:total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
       @pagination="getList" />
   </ContentWrap>
 
@@ -176,8 +179,8 @@ const resetQuery = () => {
 
 /** 添加/修改操作 */
 const formRef = ref()
-const openForm = (type: string, id?: number) => {
-  formRef.value.open(type, id)
+const openForm = (row: any, type: number,title:string) => {
+  formRef.value.open(row, type,title)
 }
 
 /** 删除按钮操作 */
@@ -218,4 +221,14 @@ onMounted(() => {
   .row{
     cursor: pointer;
   }
+  .cell-content {
+    cursor: pointer;
+    padding: 5px;
+    width: 100%;
+    height: 100%;
+  }
+
+  .cell-content:hover {
+    color: var(--el-color-primary);
+  }
 </style>

+ 41 - 16
src/views/system/distri/sharepath/Descendants.vue

@@ -1,20 +1,19 @@
 <template>
   <Dialog :title="dialogTitle" v-model="dialogVisible">
-    <div style="overflow: hidden">
+    <div style="overflow: hidden;padding:10px">
 
-    
       <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" style="overflow: auto;max-height:550px;min-height: 550px;">
         <el-table-column label="头像" align="center" prop="ancName">
           <template #default="scope">
             <span><img :src="scope.row.avatar"  style="width: 50px;height: 50px;border-radius: 50%;border: 1px solid rgb(220, 223, 231);" /></span>
           </template>
         </el-table-column>
-        <el-table-column label="顺序" align="center" prop="sort" v-if="openType == 1" />
-        <el-table-column label="用户昵称" align="center" prop="descNickName" />
-        <el-table-column label="用户手机号" align="center" prop="descPhone" />
+        <!-- <el-table-column label="顺序" align="center" prop="sort" v-if="openType == 1" /> -->
+        <el-table-column label="用户名" align="center" prop="userName" />
+        <el-table-column label="用户手机号" align="center" prop="phone" />
       </el-table>
       <Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
-        @pagination="getList" />
+        @pagination="getPageChange" />
     </div>
   </Dialog>
 </template>
@@ -36,8 +35,9 @@ const total = ref(0)
 const queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
-  ancestor: 0,
+  userId: 0,
   depth: undefined,
+  areaId:undefined
 })
 const getList = async () => {
   loading.value = true
@@ -49,24 +49,49 @@ const getList = async () => {
     loading.value = false
   }
 }
-const open = async (type: number, id: number,childrenCount:number) => {
+const getAreaChildren = async () => {
+  loading.value = true
+  try {
+    const data = await SharePathApi.getAreaChildren(queryParams)
+    list.value = data.list
+    total.value = data.total
+  } finally {
+    loading.value = false
+  }
+}
+const getPageChange = async () => {
+  if(queryParams.areaId){
+    getAreaChildren()
+  }else{
+    getList()
+  }
+}
+const open = async (type: number, id: number,childrenCount:number,childId?:number) => {
   dialogVisible.value = true
   openType.value = type
   if (type == 1) {
     dialogTitle.value = '直推人列表'
     queryParams.depth = 1
   } else if (type == 2) {
-    dialogTitle.value = '后代列表'
+    dialogTitle.value = '左区'
+    queryParams.depth = undefined
+    queryParams.userId = id
+  }else if (type == 3) {
+    dialogTitle.value = '右区'
     queryParams.depth = undefined
+    queryParams.userId = id
   }
-  queryParams.ancestor = id
-  // 后代数量不为0 才查询
-  if(childrenCount){
-    getList()
+  
+  queryParams.userId = id
+  if(childId){
+    queryParams.areaId = childId 
+    getAreaChildren()
   }else{
-    list.value = []
-    total.value = 0}
+    getList()
+  }
+
+  }
   
-}
+
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 </script>

+ 25 - 12
src/views/system/distri/sharepath/index.vue

@@ -28,11 +28,11 @@
   <div class="searchMore" v-show="searchMoreShow" :style="{ width: (mobile ? '88.7%' : '96%') }">
     <el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="108px" @submit.prevent="handleFormSubmit">
       <template v-if="showType == 1">
-        <el-form-item label="用户昵称" prop="name">
+        <!-- <el-form-item label="用户昵称" prop="name">
           <el-input
 v-model="queryParams.nickName" placeholder="请输入用户昵称"  clearable @keyup.enter="handleQuery"
             class="!w-240px" />
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="用户名" prop="username">
           <el-input
 v-model="queryParams.username" placeholder="请输入用户名"  clearable @keyup.enter="handleQuery"
@@ -40,11 +40,11 @@ v-model="queryParams.username" placeholder="请输入用户名"  clearable @keyu
         </el-form-item>
       </template>
       <template v-else>
-        <el-form-item label="用户昵称" prop="mobile">
+        <!-- <el-form-item label="用户昵称" prop="mobile">
             <el-input
 v-model="treeParams.nickName" placeholder="请输入用户昵称" clearable @keyup.enter="treeHandleQuery"
               class="!w-240px" />
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="用户名" prop="name">
           <el-input
 v-model="queryParams.username" placeholder="请输入用户名"  clearable @keyup.enter="handleQuery"
@@ -90,10 +90,10 @@ v-model="queryParams.username" placeholder="请输入用户名"  clearable @keyu
             <span><img :src="scope.row.avatar"  style="width: 50px;height: 50px;border-radius: 50%;border: 1px solid rgb(220, 223, 231);" /></span>
           </template>
         </el-table-column>
-      <el-table-column label="用户昵称" align="center" prop="nickName" />
+      <!-- <el-table-column label="用户昵称" align="center" prop="nickName" /> -->
       <el-table-column label="用户名" align="center" prop="username" />
       <el-table-column label="用户手机号" align="center" prop="mobile" />
-      <el-table-column label="推荐人姓名" align="center" prop="ancNickName" />
+      <!-- <el-table-column label="推荐人姓名" align="center" prop="ancNickName" /> -->
       <el-table-column label="推荐人用户名" align="center" prop="ancUsername" />
       <el-table-column label="直推人列表" align="center" prop="descendantCount">
         <template #default="scope">
@@ -101,12 +101,25 @@ v-model="queryParams.username" placeholder="请输入用户名"  clearable @keyu
             scope.row.descendantCount }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="后代列表" align="center" prop="childrenCount">
+      <el-table-column label="左区" align="center" prop="leftCount" >
+        <template #default="scope">
+        
+          <span @click="getUserAllSon(2, scope.row,scope.row.leftChildId)" style="cursor: pointer;display: inline-block;width: 100%;">{{
+            scope.row.leftCount }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="右区" align="center" prop="rightCount" >
+        <template #default="scope">
+          <span @click="getUserAllSon(3, scope.row,scope.row.rightChildId)" style="cursor: pointer;display: inline-block;width: 100%;">{{
+            scope.row.rightCount  }}</span>
+        </template>
+      </el-table-column>
+      <!-- <el-table-column label="后代列表" align="center" prop="childrenCount">
         <template #default="scope">
           <span @click="getUserAllSon(2, scope.row)" style="cursor: pointer;display: inline-block;width: 100%;">{{
             scope.row.childrenCount }}</span>
         </template>
-      </el-table-column>
+      </el-table-column> -->
     </el-table>
     <!-- 分页 -->
     <Pagination
@@ -223,8 +236,8 @@ const getList = async (Params) => {
 }
 /** 查看后代 */
 const formRef = ref()
-const getUserAllSon = async (type,row) => {
-  formRef.value.open(type,row.userId,row.childrenCount)
+const getUserAllSon = async (type,row,childId?:any) => {
+  formRef.value.open(type,row.userId,row.childrenCount,childId)
 }
 function handleFormSubmit(event) {
     event.preventDefault();
@@ -283,7 +296,7 @@ let treeOptions: EChartsOption = {
     triggerOn: 'mousemove',
     formatter: function (params) {
         // 使用 nickname 而不是 name
-        return `${params.data.nickname}`;
+        return `${params.data.userName}`;
     }
   },
   dataZoom: {
@@ -309,7 +322,7 @@ let treeOptions: EChartsOption = {
         padding:10,
         formatter: function (params) {
             // 使用 nickname 而不是 name
-            return `${params.data.nickname}`;
+            return `${params.data.userName}`;
         }
       },
       zoom: 1, //当前视角的缩放比例

+ 5 - 5
src/views/system/sale/merchant/Apply/MerchantApplyBaseInfo.vue

@@ -128,17 +128,17 @@
       </el-col>
     </el-row>
     <el-row>
-      <el-col :span="12">
+      <el-col :span="24">
         <el-form-item label="官网" prop="website">
           <el-input v-model="formData.website" placeholder="请输入官网" />
         </el-form-item>
       </el-col>
       
-      <el-col :span="12">
+      <!-- <el-col :span="12">
         <el-form-item label="开户银行" prop="bankName">
           <el-input v-model="formData.bankName" placeholder="请输入开户银行" />
         </el-form-item>
-      </el-col>
+      </el-col> -->
       <!-- 只有查看的时候才显示这个 -->
       <!-- <el-col :span="12">
         <el-form-item label="创建时间" prop="customerServiceHotline">
@@ -146,7 +146,7 @@
         </el-form-item>
       </el-col> -->
     </el-row>
-    <el-row  >
+    <!-- <el-row  >
       <el-col :span="12">
         <el-form-item label="账户名称" prop="accountName">
           <el-input v-model="formData.accountName" placeholder="请输入账户名称"  maxlength="11" />
@@ -157,7 +157,7 @@
           <el-input v-model="formData.accountNumber" placeholder="请输入账户号码"  onkeyup="value=value.replace(/[^\d]/g,'')"/>
         </el-form-item>
       </el-col>
-    </el-row>
+    </el-row> -->
     <!-- {{ mobile }} -->
     <div v-if="mobile">
       <el-row>

+ 2 - 2
src/views/system/sale/merchant/components/MerchantStoreTab.vue

@@ -7,12 +7,12 @@
         <!-- <SPuUploadImg v-model="avatar" :disabled="isDetail" /> -->
         <el-tabs v-model="activeName" tab-position="left"  class="child-tabs">
           <el-tab-pane label="基本信息" name="info" />
-          <el-tab-pane label="收款信息" name="Payment" v-if="openType != 'create'" />
+          <!-- <el-tab-pane label="收款信息" name="Payment" v-if="openType != 'create'" /> -->
         </el-tabs>
       </div>
       <div class="right">
         <MerchantStoreFrom :obj="obj" ref="MerchantStoreFromRef"  :isDetail="isDetail" :openType="openType" v-if="activeName == 'info'" />
-        <MerchantStorePaymentFrom :obj="obj" ref="MerchantStorePaymentFromRef" :isDetail="isDetail"  v-if="activeName == 'Payment'" />
+        <!-- <MerchantStorePaymentFrom :obj="obj" ref="MerchantStorePaymentFromRef" :isDetail="isDetail"  v-if="activeName == 'Payment'" /> -->
       </div>
 
       <div style="clear: both;"></div>

+ 3 - 3
src/views/system/sale/merchant/index.vue

@@ -162,13 +162,13 @@ const mobile = computed(() => appStore.getMobile)
 // 弹窗tabs数据
 const tabs = ref([
   { name: 'BaseInfo', label: '基本信息', component: 'views/system/sale/merchant/components/MerchantBaseInfo' },
-  { name: 'Store', label: '店铺', component: 'views/system/sale/merchant/components/MerchantStore' },
+{ name: 'Store', label: '店铺', component: 'views/system/sale/merchant/components/MerchantStore' },
   { name: 'Product', label: '商品', component: 'views/system/sale/merchant/components/MerchantProduct' },
   { name: 'Order', label: '订单', component: 'views/system/sale/merchant/components/MerchantOrder' },
   { name: 'Service', label: '客服', component: 'views/system/sale/merchant/components/MerchantService' },
-  { name: 'AfterSales', label: '售后', component: 'views/system/sale/merchant/components/MerchantAfterSales' },
+  // { name: 'AfterSales', label: '售后', component: 'views/system/sale/merchant/components/MerchantAfterSales' },
   { name: 'Campaign', label: '活动', component: 'views/system/sale/merchant/components/MerchantCampaign' },
-  { name: 'Points', label: '佣金', component: 'views/system/sale/merchant/components/MerchantPoints' },
+  // { name: 'Points', label: '佣金', component: 'views/system/sale/merchant/components/MerchantPoints' },
   { name: 'Advertisement', label: '广告', component: 'views/system/sale/merchant/components/MerchantAdvertisement' },
   { name: 'Highlights', label: '看点', component: 'views/system/sale/merchant/components/MerchantHighlights' },
   { name: 'Finance', label: '财务', component: 'views/system/sale/merchant/components/MerchantFinance' },