Pārlūkot izejas kodu

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

ruhuxu 4 nedēļas atpakaļ
vecāks
revīzija
c7cbb77c16

+ 1 - 1
.env

@@ -2,7 +2,7 @@
 VITE_APP_TITLE=常来此购
 
 # 项目本地运行端口号
-VITE_PORT=9001
+VITE_PORT=9004
 
 # 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:8001'
+VITE_BASE_URL='http://192.168.252.107:8011'
 
 # 上传路径
-VITE_UPLOAD_URL='http://192.168.3.41:8001/admin-api/infra/file/upload'
+VITE_UPLOAD_URL='http://192.168.252.107:8011/admin-api/infra/file/upload'
 
 # 接口前缀
 VITE_API_BASEPATH=/dev-api

+ 2 - 0
src/api/mall/product/spu.ts

@@ -70,6 +70,8 @@ export interface Spu {
   highPrecisionSettlementPrice?:number //高精度结算价
   highPrecision?:boolean //高精度标识
   checkStatus?:number //审核状态
+
+  areaId?:number //商品分区
 }
 // 获得商品评价
 export const getSpuComment = (params) => {

+ 1 - 1
src/components/ImageCard/ImageCard.vue

@@ -78,7 +78,7 @@ const computedRadius = computed(() => {
   return typeof props.radius === 'number' ? `${props.radius}px` : props.radius;
 });
 
-
+const minWidth = ref(0);
 // 计算最小图片宽度
 const calculateMinWidth = () => {
   nextTick(() => {

+ 1 - 0
src/distri/dailybill/index.vue

@@ -99,6 +99,7 @@
 
   <!-- 列表 -->
   <ContentWrap>
+    
     <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="amount" />

+ 4 - 1
src/utils/dict.ts

@@ -203,5 +203,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', // 积分类型
 }

+ 3 - 16
src/views/Profile/components/BasicInfo.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="请输入昵称" class="w-80!" />
+        <el-form-item label="所在地" 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-row>
@@ -29,19 +30,6 @@
       </el-col>
     </el-row>
 
-    <el-row>
-      <el-col :span="12">
-        <el-form-item label="所在地" 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="邮箱" prop="email">
-          <el-input v-model="formData.email" placeholder="请输入邮箱" class="w-80!" />
-        </el-form-item>
-      </el-col>
-    </el-row>
     <div v-if="!isDetail">
       <el-row>
         <el-col :span="12">
@@ -51,7 +39,6 @@
               <el-option label="在用" :value="1" >在用</el-option>
             </el-select>
           </el-form-item>
-
         </el-col>
         <el-col :span="12">
           <el-form-item label="创建时间" prop="createTime">

+ 35 - 90
src/views/mall/product/spu/components/MobileSkuList.vue

@@ -2,7 +2,7 @@
   <!-- 单规格 -->
   <template v-if="formData!.skus!.length == 1">
     <el-form
-ref="formRef" :model="item" v-for="item in  formData!.skus!" :key="item"
+ref="formRef" :model="item" v-for="item in formData!.skus!" :key="item"
       :class="{ 'view': isDetail, 'mobile-card': mobile }" label-width="80px" :disabled="isDetail"
       style="margin:0;padding: 0;width: 100%">
       <el-row>
@@ -34,13 +34,10 @@ v-for="(item2, index) in tableHeaders" :key="index" :label="item2.label" align="
       </el-row>
       <el-row>
         <el-col>
-          
+
           <el-form-item label="销售价">
             <el-input-number
-v-if="highPrecisionChange.value" v-model="item.highPrecisionPrice" :min="0" :precision="6"
-              :step="0.1" class="w-100%" controls-position="right" />
-            <el-input-number
-v-else v-model="item.price" :min="0" :precision="2" :step="0.1" class="w-100%"
+v-model="item.price" :min="0" :precision="2" :step="0.1" class="w-100%"
               controls-position="right" />
           </el-form-item>
         </el-col>
@@ -50,7 +47,7 @@ v-else v-model="item.price" :min="0" :precision="2" :step="0.1" class="w-100%"
           <el-form-item label="市场价">
             <el-input-number
 v-model="item.marketPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
-              controls-position="right" :disabled="highPrecisionChange.value" />
+              controls-position="right" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -59,19 +56,15 @@ v-model="item.marketPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
           <el-form-item label="成本价">
             <el-input-number
 v-model="item.costPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
-              controls-position="right" :disabled="highPrecisionChange.value" />
+              controls-position="right" :disabled="areaId.value == 2" />
           </el-form-item>
         </el-col>
       </el-row>
       <el-row>
         <el-col>
           <el-form-item label="结算价">
-           
-            <el-input-number
-v-if="highPrecisionChange.value" v-model="item.highPrecisionSettlementPrice" :min="0" :precision="6"
-              :step="0.1" class="w-100%" controls-position="right" />
             <el-input-number
-v-else v-model="item.settlementPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
+v-model="item.settlementPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
               controls-position="right" />
           </el-form-item>
         </el-col>
@@ -123,7 +116,7 @@ v-model="item.volume" :min="0" :precision="2" :step="0.1" class="w-100%"
   <!-- 移动端多规格 -->
   <template v-else>
     <el-form
-ref="formRef" :model="item" v-for="(item, index) in  formData!.skus!" :key="item"
+ref="formRef" :model="item" v-for="(item, index) in formData!.skus!" :key="item"
       :class="{ 'view': isDetail, 'mobile-card': mobile }" label-width="80px" :disabled="isDetail">
       <div class="mobile-card-title">
         <Icon icon="ep:list" /> 规格列表 {{ index + 1 }}
@@ -158,11 +151,9 @@ v-for="(item2, index) in tableHeaders" :key="index" :label="item2.label" align="
       <el-row>
         <el-col>
           <el-form-item label="销售价">
+
             <el-input-number
-v-if="highPrecisionChange.value" v-model="item.highPrecisionPrice" :min="0" :precision="6"
-              :step="0.1" class="w-100%" controls-position="right" />
-            <el-input-number
-v-else v-model="item.price" :min="0" :precision="2" :step="0.1" class="w-100%"
+v-model="item.price" :min="0" :precision="2" :step="0.1" class="w-100%"
               controls-position="right" />
           </el-form-item>
         </el-col>
@@ -172,7 +163,7 @@ v-else v-model="item.price" :min="0" :precision="2" :step="0.1" class="w-100%"
           <el-form-item label="市场价">
             <el-input-number
 v-model="item.marketPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
-              controls-position="right" :disabled="highPrecisionChange.value" />
+              controls-position="right" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -181,7 +172,7 @@ v-model="item.marketPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
           <el-form-item label="成本价">
             <el-input-number
 v-model="item.costPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
-              controls-position="right" :disabled="highPrecisionChange.value" />
+              controls-position="right" :disabled="areaId.value == 2" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -190,10 +181,7 @@ v-model="item.costPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
           <el-form-item label="结算价">
 
             <el-input-number
-v-if="highPrecisionChange.value" v-model="item.highPrecisionSettlementPrice" :min="0" :precision="6"
-              :step="0.1" class="w-100%" controls-position="right" />
-            <el-input-number
-v-else v-model="item.settlementPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
+v-model="item.settlementPrice" :min="0" :precision="2" :step="0.1" class="w-100%"
               controls-position="right" />
           </el-form-item>
         </el-col>
@@ -239,7 +227,7 @@ v-model="item.volume" :min="0" :precision="2" :step="0.1" class="w-100%"
           </el-form-item>
         </el-col>
       </el-row>
-      
+
     </el-form>
   </template>
 
@@ -259,8 +247,8 @@ const appStore = useAppStore()
 const mobile = computed(() => appStore.getMobile)
 import { inject } from 'vue';
 import { ElTable } from 'element-plus'
-const spuTypeChange = inject('spuTypeChange');
-const highPrecisionChange = inject('highPrecisionChange');
+
+const areaId = inject('areaId') as Ref<number>;
 defineOptions({ name: 'SkuList' })
 const message = useMessage() // 消息弹窗
 
@@ -300,30 +288,6 @@ const skuList = ref<Sku[]>([
   }
 ]) // 批量添加时的临时数据
 
-watchEffect(() => {
-  skuList.value.forEach(sku => {
-    // 直接计算推广费并更新
-    sku.promotionFee = sku.price - sku.costPrice;
-  });
-});
-// 监听如果开启高精度 销售价 市场价 成本价 推广费清0
-watch(() => highPrecisionChange.value, (newVal) => {
-  // console.log(newVal, formData.value!.skus!)
-  if (newVal) {
-    formData.value!.skus!.forEach(sku => {
-      sku.price = 0
-      sku.marketPrice = 0
-      sku.costPrice = 0
-      sku.promotionFee = 0
-    });
-  } else {
-    formData.value!.skus!.forEach(sku => {
-      sku.highPrecisionPrice = 0
-
-    });
-  }
-});
-
 /** 商品图预览 */
 const imagePreview = (imgUrl: string) => {
   createImageViewer({
@@ -356,7 +320,7 @@ const validateSku = () => {
   let validate = true // 默认通过
   for (const sku of formData.value!.skus!) {
     // 作为活动组件的校验
-    const ruleConfigg = highPrecisionChange.value ? [] :props?.ruleConfig
+    const ruleConfigg = areaId.value ? [] : props?.ruleConfig
     for (const rule of ruleConfigg) {
       const arg = getValue(sku, rule.name)
       // console.log(arg, rule.rule)
@@ -370,41 +334,21 @@ const validateSku = () => {
       message.warning("sku必须上传图片")
       throw new Error("sku必须上传图片")
     }
-    // 如果spu是虚拟产品0 那么销售价可以大于等于成本价
-    if (spuTypeChange.value == 0) {
-      if (parseFloat(sku.price) < parseFloat(sku.costPrice)) {
-        message.warning("商品销售价必须大于成本价")
-        throw new Error("商品销售价必须大于成本价")
-      }
-    } else {
-      if (parseFloat(sku.price) <= parseFloat(sku.costPrice)) {
-        message.warning("商品销售价必须大于成本价")
-        throw new Error("商品销售价必须大于成本价")
-      }
-    }
 
-    // 如果是开启高精度 结算价必须小于等于销售价
-    if(highPrecisionChange.value){
-      if(!parseFloat(sku.highPrecisionPrice)){
-        message.warning("商品销售价必须大于 0 元")
-        throw new Error("商品销售价必须大于 0 元")
-      }
-      if(!parseFloat(sku.highPrecisionSettlementPrice)){
-        message.warning("商品结算价必须大于 0 元")
-        throw new Error("商品结算价必须大于 0 元")
-      }
-      if(parseFloat(sku.highPrecisionPrice) < parseFloat(sku.highPrecisionSettlementPrice)){
-        message.warning("商品结算价必须小于等于销售价")
-        throw new Error("商品结算价必须小于等于销售价")
-      }
-    }else{
-      // 如果是正常商品 结算价必须小于等于成本价
-      if(parseFloat( sku.costPrice) < parseFloat(sku.settlementPrice) ){
-        message.warning("商品结算价必须小于等于成本价")
-        throw new Error("商品结算价必须小于等于成本价")
+
+    // 如果是选了绿区 那么销售价必须等于成本价
+    if (areaId.value === 2) {
+      if (sku.price != sku.costPrice) {
+        message.warning("商品销售价必须等于成本价")
+        throw new Error("商品销售价必须等于成本价")
       }
     }
 
+    // 结算价不能大于销售价
+    if (parseFloat(sku.settlementPrice) > parseFloat(sku.price)) {
+      message.warning("商品结算价不能大于销售价")
+      throw new Error("商品结算价不能大于销售价")
+    }
 
     // 只要有一个不通过则结束后续的校验
     if (!validate) {
@@ -445,16 +389,17 @@ const handleSelectionChange = (val: Sku[]) => {
 watch(
   () => props.propFormData,
   (data) => {
-    console.log(data)
-
     if (!data) return
     formData.value = data
 
-    watchEffect(() => {
-      formData.value.skus.forEach(sku => {
-        // 直接计算推广费并更新
-        sku.promotionFee = sku.price - sku.costPrice;
-      });
+    formData.value.skus.forEach(sku => {
+      // 直接计算推广费并更新
+      sku.promotionFee = sku.price - sku.costPrice;
+
+      // 如果绿区则成本价等于销售价
+      if(areaId.value === 2){
+        sku.costPrice = sku.price;
+      }
     });
   },
   {

+ 34 - 91
src/views/mall/product/spu/components/SkuList.vue

@@ -1,5 +1,6 @@
 <template>  
   <!-- 情况一:添加/修改 -->
+
   <el-table
     v-if="!isDetail && !isActivityComponent"
     :data="isBatch ? skuList : formData!.skus!"
@@ -37,17 +38,9 @@
     </el-table-column>
     <el-table-column align="center" label="销售价" min-width="168">
       <template #default="{ row }">
+        
         <el-input-number
-          v-if="highPrecisionChange.value"
-          v-model="row.highPrecisionPrice"
-          :min="0"
-          :precision="6"
-          :step="0.1"
-          class="w-100%"
-          controls-position="right"
-        />
-        <el-input-number
-          v-else
+          
           v-model="row.price"
           :min="0"
           :precision="2"
@@ -66,36 +59,29 @@
           :step="0.1"
           class="w-100%"
           controls-position="right"
-          :disabled="highPrecisionChange.value"
+          
         />
       </template>
     </el-table-column>
     <el-table-column align="center" label="成本价" min-width="168">
       <template #default="{ row }">
         <el-input-number
+          :disabled="areaId.value == 2"
           v-model="row.costPrice"
           :min="0"
           :precision="2"
           :step="0.1"
           class="w-100%"
           controls-position="right"
-          :disabled="highPrecisionChange.value"
+          
         />
       </template>
     </el-table-column>
     <el-table-column align="center" label="结算价" min-width="168">
       <template #default="{ row }">
+        
         <el-input-number
-          v-if="highPrecisionChange.value"
-          v-model="row.highPrecisionSettlementPrice"
-          :min="0"
-          :precision="6"
-          :step="0.1"
-          class="w-100%"
-          controls-position="right"
-        />
-        <el-input-number
-          v-else
+          
           v-model="row.settlementPrice"
           :min="0"
           :precision="2"
@@ -234,8 +220,8 @@
     </el-table-column>
     <el-table-column align="center" label="销售价(元)" min-width="80">
       <template #default="{ row }">
-        <span v-if="highPrecisionChange.value">{{ row.highPrecisionPrice / 100 }}</span>
-        <span v-else>{{ row.price }}</span>
+        
+        <span>{{ row.price }}</span>
       </template>
     </el-table-column>
     <el-table-column align="center" label="市场价(元)" min-width="80">
@@ -250,8 +236,8 @@
     </el-table-column>
     <el-table-column align="center" label="结算价(元)" min-width="80">
       <template #default="{ row }">
-        <span v-if="highPrecisionChange.value">{{ row.highPrecisionSettlementPrice / 100 }}</span>
-        <span v-else>{{ row.settlementPrice }}</span>
+        
+        <span >{{ row.settlementPrice }}</span>
       </template>
     </el-table-column>
     <el-table-column align="center" label="推广费(元)" min-width="80">
@@ -332,8 +318,8 @@
     </el-table-column>
     <el-table-column align="center" label="销售价(元)" min-width="80">
       <template #default="{ row }">
-        <span v-if="highPrecisionChange.value">{{row.highPrecisionPrice / 100}}</span>
-        <span v-else>{{ row.price }}</span>
+        
+        <span>{{ row.price }}</span>
       </template>
     </el-table-column>
     <el-table-column align="center" label="市场价(元)" min-width="80">
@@ -377,10 +363,8 @@ import { createImageViewer } from '@/components/ImageViewer'
 import { RuleConfig } from '@/views/mall/product/spu/components/index'
 import { PropertyAndValues } from './index'
 import { inject } from 'vue';
-// 使用 inject 函数来注入 spuTypeChange
-const highPrecisionChange = inject('highPrecisionChange');
 import { ElTable } from 'element-plus'
-const spuTypeChange = inject('spuTypeChange');
+const areaId = inject('areaId') as Ref<number>;
 defineOptions({ name: 'SkuList' })
 const message = useMessage() // 消息弹窗
 
@@ -421,30 +405,6 @@ const skuList = ref<Sku[]>([
   }
 ]) // 批量添加时的临时数据
 
-watchEffect(() => {
-  skuList.value.forEach(sku => {
-    // 直接计算推广费并更新
-    sku.promotionFee = sku.price - sku.costPrice;
-  });
-
-});
-// 监听如果开启高精度 销售价 市场价 成本价 推广费清0
-watch(()=> highPrecisionChange.value,(newVal)=>{
-  // console.log(newVal,formData.value!.skus!)
-  if(newVal){
-    formData.value!.skus!.forEach(sku => {
-      sku.price = 0
-      sku.marketPrice = 0
-      sku.costPrice = 0
-      sku.promotionFee = 0
-    });
-  }else{
-    formData.value!.skus!.forEach(sku => {
-      sku.highPrecisionPrice = 0
-
-    });
-  }
-});
 
 
 
@@ -481,7 +441,7 @@ const validateSku = () => {
   let validate = true // 默认通过
   for (const sku of formData.value!.skus!) {
     // 作为活动组件的校验
-    const ruleConfigg = highPrecisionChange.value ? [] :props?.ruleConfig
+    const ruleConfigg = props?.ruleConfig
     for (const rule of ruleConfigg) {
       const arg = getValue(sku, rule.name)
       // console.log(arg, rule.rule)
@@ -495,41 +455,19 @@ const validateSku = () => {
       message.warning("sku必须上传图片")
       throw new Error("sku必须上传图片")
     }
-    // 如果spu是虚拟产品0 那么销售价可以大于等于成本价
-    if ( spuTypeChange.value == 0){
-      if (parseFloat(sku.price) < parseFloat(sku.costPrice)) {
-        // console.log("卖价比成本低")
-        message.warning("商品销售价必须大于成本价")
-        throw new Error("商品销售价必须大于成本价")
-      }
-    }else{
-      if (parseFloat(sku.price) <= parseFloat(sku.costPrice)) {
-        // console.log("卖价比成本低")
-        message.warning("商品销售价必须大于成本价")
-        throw new Error("商品销售价必须大于成本价")
+   
+    // 如果是选了绿区 那么销售价必须等于成本价
+    if (areaId.value === 2) {
+      if (sku.price != sku.costPrice) {
+        message.warning("商品销售价必须等于成本价")
+        throw new Error("商品销售价必须等于成本价")
       }
     }
-    
-    // 如果是开启高精度 结算价必须小于等于销售价
-    if(highPrecisionChange.value){
-      if(!parseFloat(sku.highPrecisionPrice)){
-        message.warning("商品销售价必须大于 0 元")
-        throw new Error("商品销售价必须大于 0 元")
-      }
-      if(!parseFloat(sku.highPrecisionSettlementPrice)){
-        message.warning("商品结算价必须大于 0 元")
-        throw new Error("商品结算价必须大于 0 元")
-      }
-      if(parseFloat(sku.highPrecisionPrice) < parseFloat(sku.highPrecisionSettlementPrice)){
-        message.warning("商品结算价必须小于等于销售价")
-        throw new Error("商品结算价必须小于等于销售价")
-      }
-    }else{
-      // 如果是正常商品 结算价必须小于等于成本价
-      if(parseFloat( sku.costPrice) < parseFloat(sku.settlementPrice) ){
-        message.warning("商品结算价必须小于等于成本价")
-        throw new Error("商品结算价必须小于等于成本价")
-      }
+    console.log(sku.settlementPrice, sku.price)
+    // 结算价不能大于销售价
+    if (parseFloat(sku.settlementPrice) > parseFloat(sku.price)) {
+      message.warning("商品结算价不能大于销售价")
+      throw new Error("商品结算价不能大于销售价")
     }
 
     // 只要有一个不通过则结束后续的校验
@@ -574,12 +512,17 @@ watch(
     if (!data) return
     formData.value = data
 
-    watchEffect(() => {
+
     formData.value.skus.forEach(sku => {
       // 直接计算推广费并更新
       sku.promotionFee = sku.price - sku.costPrice;
+
+      // 如果绿区则成本价等于销售价
+      if(areaId.value === 2){
+        sku.costPrice = sku.price;
+      }
     });
-  });
+  
   },
   {
     deep: true,

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

@@ -12,16 +12,12 @@ v-model="formData.name" placeholder="请输入商品名称" maxlength="100" :sho
 				</el-form-item>
 			</el-col>
 
-			<el-col :span="12" v-if="isDetail">
-				<el-form-item label="状态" prop="categoryStatus">
-					<el-input v-model="status" class="w-80!" />
-				</el-form-item>
-			</el-col>
-			<el-col :span="12" v-if="!isDetail">
-				<el-form-item label="商品支付方式" prop="spuPayType">
-					<el-select v-model="formData.spuPayType" placeholder="请选择商品支付方式" class="w-80">
-						<el-option label="人民币+佣金" :value="1" />
-						<el-option label="纯佣金" :value="2" />
+			
+			<el-col :span="12">
+				<el-form-item label="商品分区" prop="areaId">
+					<el-select v-model="formData.areaId" placeholder="请选择商品分区" class="w-80">
+						<el-option label="红区" :value="1" />
+						<el-option label="绿区" :value="2" />
 						<!-- <el-option label="看点" :value="3" /> -->
 					</el-select>
 				</el-form-item>
@@ -72,28 +68,14 @@ v-model="formData.categoryId" :options="categoryList" :props="defaultProps" clas
 			</el-row>
 
 		</template>
+		
 		<el-row>
-			<el-col :span="isDetail ? 12 : 24">
-				<el-form-item label="价格高精度" prop="highPrecision">
-					<el-select v-model="formData.highPrecision" class="w-80" :disabled="formData.spuType">
-						<el-option label="否" :value="false" />
-						<el-option label="是" :value="true" />
-					</el-select>
-				</el-form-item>
-			</el-col>
 			<el-col :span="12" v-if="isDetail">
-				<el-form-item label="商品支付方式" prop="spuPayType">
-					<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-select>
+				<el-form-item label="状态" prop="categoryStatus">
+					<el-input v-model="status" class="w-80!" />
 				</el-form-item>
 			</el-col>
-		</el-row>
-		<el-row>
-			
-			<el-col :span="24">
+			<el-col :span="isDetail ? 12 : 24">
 				<el-form-item label="商品简介" prop="introduction">
 					<el-input
 v-model="formData.introduction" placeholder="请输入商品名称" type="textarea"
@@ -164,10 +146,10 @@ const formData = reactive<Spu>({
 	status: 0,
 	producerArea: '',
 	spuType: undefined,
-	spuPayType: undefined,
+	areaId: undefined,
 	deliveryTypes: [],
 	deliveryTemplateId: undefined,
-	highPrecision:false
+	highPrecision: false
 })
 const rules = reactive({
 	name: [required],
@@ -177,7 +159,7 @@ const rules = reactive({
 	sliderPicUrls: [required],
 	brandId: [required],
 	spuType: [required],
-	spuPayType: [required],
+	areaId: [required],
 	producerArea: [required]
 })
 const specType = computed(() => {
@@ -198,27 +180,21 @@ const status = computed(() => {
 
 
 // 使用 inject 函数来注入 spuTypeChange
-const spuTypeChange = inject('spuTypeChange');
-watch(() => formData.spuType, (val) => {
+const spuTypeChange = inject('spuTypeChange') as Ref<number>;
+watch(() => formData.spuType, (val:number) => {
 	spuTypeChange.value = val;
-	// console.log(val)
-	if(val){
-		formData.highPrecision = false
-	}else{
-		formData.highPrecision = true
-	}
+	
 },
-{
-	immediate: true
-})
-// 使用 inject 函数来注入 spuTypeChange
-const highPrecisionChange = inject('highPrecisionChange');
-watch(() => formData.highPrecision, (val) => {
-	highPrecisionChange.value = val
+	{
+		immediate: true
+	})
+const areaId = inject('areaId') as Ref<number>;
+watch(() => formData.areaId, (val: number) => {
+	areaId.value = val
 },
-{
-	immediate: true
-})
+	{
+		immediate: true
+	})
 /** 将传进来的值赋值给 formData */
 watch(
 	() => props.propFormData,

+ 7 - 7
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-tab title="其它设置" name="other" /> -->
@@ -66,14 +66,14 @@ import Apply from '../components/Apply.vue';
 
 // 创建一个响应式对象
 const spuTypeChange = reactive({
-	value: 0
+	value: 1
 });
-const highPrecisionChange = reactive({
-  value: false
-});
-provide('highPrecisionChange', highPrecisionChange);
-const emit = defineEmits(['success']) 
 provide('spuTypeChange', spuTypeChange);
+
+const areaId = reactive({
+  value: 0
+});
+provide('areaId', areaId);
 import Comment from '../components/Comment.vue'
 import { convertToInteger, floatToFixed2, formatToFraction } from '@/utils'
 defineOptions({ name: 'ProductSpuForm' })

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

@@ -28,7 +28,7 @@ v-model="dialogVisible" :title="dialogTitle" :close-on-click-modal="false" :full
 					<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"/>
 					
@@ -124,13 +124,14 @@ import { ProductSpuStatusEnum } from '@/utils/constants'
 defineOptions({ name: 'ProductSpuForm' })
 // 创建一个响应式对象
 const spuTypeChange = reactive({
-  value: 0
+	value: 1
 });
 provide('spuTypeChange', spuTypeChange);
-const highPrecisionChange = reactive({
-  value: false
+
+const areaId = reactive({
+  value: 0
 });
-provide('highPrecisionChange', highPrecisionChange);
+provide('areaId', areaId);
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 // const { push, currentRoute } = useRouter() // 路由
@@ -162,6 +163,7 @@ const formData = ref<ProductSpuApi.Spu>({
 	specType: false, // 商品规格
 	subCommissionType: false, // 分销类型
 	highPrecision:false, //高精度价是否开启
+	areaId:undefined, 
 	skus: [
 		{
 			price: 0, // 商品价
@@ -178,7 +180,8 @@ const formData = ref<ProductSpuApi.Spu>({
 			highPrecisionPrice:0, //高精度价
 			highPrecisionSettlementPrice:0, //高精度结算价
 			firstBrokeragePrice: 0, // 一级分销的佣金
-			secondBrokeragePrice: 0 // 二级分销的佣金
+			secondBrokeragePrice: 0, // 二级分销的佣金
+			
 		}
 	],
 	description: '', // 商品详情
@@ -201,6 +204,7 @@ const addFormData = ref<ProductSpuApi.Spu>({
 	brandId: undefined, // 商品品牌
 	specType: false, // 商品规格
 	subCommissionType: false, // 分销类型
+	areaId:undefined, // 区域id
 	skus: [
 		{
 			price: 0, // 商品价

+ 14 - 19
src/views/mall/trade/afterSale/components/AfterSaleBaseInfo.vue

@@ -3,12 +3,12 @@
     <el-row>
       <el-col :span="12">
         <el-form-item label="订单号">
-          <div class="el-input el-input--default is-disabled el-input--suffix ">{{ formData.orderNo }}</div>
+          <div class="el-input el-input--default is-disabled el-input--suffix">{{ formData.orderNo }}</div>
         </el-form-item>
       </el-col>
       <el-col :span="12">
         <el-form-item label="配送方式">
-          <div class="el-input el-input--default is-disabled el-input--suffix ">{{ formData.order.deliveryType?
+          <div class="el-input el-input--default is-disabled el-input--suffix">{{ formData.order.deliveryType?
             getDictLabel(DICT_TYPE.TRADE_DELIVERY_TYPE, formData.order.deliveryType) : '' }}</div>
         </el-form-item>
       </el-col>
@@ -16,27 +16,27 @@
     <el-row>
       <el-col :span="12">
         <el-form-item label="订单类型">
-          <div class="el-input el-input--default is-disabled el-input--suffix ">{{
+          <div class="el-input el-input--default is-disabled el-input--suffix">{{
             getDictLabel(DICT_TYPE.TRADE_ORDER_TYPE, formData.order.type) }}</div>
         </el-form-item>
       </el-col>
       <el-col :span="12">
         <el-form-item label="收货人">
-          <div class="el-input el-input--default is-disabled el-input--suffix ">{{ formData.order.receiverName }}</div>
+          <div class="el-input el-input--default is-disabled el-input--suffix">{{ formData.order.receiverName }}</div>
         </el-form-item>
       </el-col>
     </el-row>
     <el-row>
       <el-col :span="12">
         <el-form-item label="买家">
-            <div class="el-input el-input--default is-disabled el-input--suffix ">{{ formData?.user?.nickname }}
+            <div class="el-input el-input--default is-disabled el-input--suffix">{{ formData?.user?.username }}
             </div>
           </el-form-item>
         
       </el-col>
       <el-col :span="12">
         <el-form-item label="订单来源">
-          <div class="el-input el-input--default is-disabled el-input--suffix ">{{
+          <div class="el-input el-input--default is-disabled el-input--suffix">{{
             getDictLabel(DICT_TYPE.TERMINAL, formData.order.terminal) }}</div>
         </el-form-item>
       </el-col>
@@ -44,36 +44,31 @@
     <el-row>
       <el-col :span="12">
         <el-form-item label="联系电话">
-          <div class="el-input el-input--default is-disabled el-input--suffix ">{{ formData.order.receiverMobile }}</div>
+          <div class="el-input el-input--default is-disabled el-input--suffix">{{ formData.order.receiverMobile }}</div>
         </el-form-item>
       </el-col>
       
       <el-col :span="12">
         <el-form-item label="付款方式">
-            <div class="el-input el-input--default is-disabled el-input--suffix ">{{
-              getDictLabel(DICT_TYPE.PAY_CHANNEL_CODE, formData.order.payChannelCode) }}</div>
+            <div class="el-input el-input--default is-disabled el-input--suffix">
+              
+              {{ getDictLabel(DICT_TYPE.INTEGRAL_TYPE, formData.refundIntegralType) }}
+              </div>
           </el-form-item>
         
       </el-col>
     </el-row>
+
     <el-row>
-      <el-col :span="12">
-        <el-form-item label="支付单号">
-          <div class="el-input el-input--default is-disabled el-input--suffix ">{{ formData.order.payOrderId }}
-          </div>
-        </el-form-item>
-      </el-col>
       <el-col :span="12">
         <el-form-item label="买家留言">
-            <div class="el-input el-input--default is-disabled el-input--suffix "> {{ formData.order.userRemark }}</div>
+            <div class="el-input el-input--default is-disabled el-input--suffix"> {{ formData.order.userRemark }}</div>
           </el-form-item>
         
       </el-col>
-    </el-row>
-    <el-row>
       <el-col :span="12">
         <el-form-item label="商家备注">
-            <div class="el-input el-input--default is-disabled el-input--suffix ">{{ formData.order.remark }}</div>
+            <div class="el-input el-input--default is-disabled el-input--suffix">{{ formData.order.remark }}</div>
           </el-form-item>
       </el-col>
     </el-row>

+ 3 - 3
src/views/mall/trade/afterSale/index.vue

@@ -64,7 +64,7 @@ v-model="queryParams.createTime"
 					:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" class="!w-220px" end-placeholder="自定义时间"
 					start-placeholder="自定义时间" type="daterange" value-format="YYYY-MM-DD HH:mm:ss" />
 			</el-form-item>
-			<el-row class="pb-20px flex justify-end">
+			<el-row class="flex justify-end pb-20px">
 				
 						<el-button @click="hideSearchMore">
 							收起
@@ -102,9 +102,9 @@ style="width: 100%;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;
 				</div>
 				<ImageCard :url="o.picUrl" :width="216" :height="122">
             <template #label>
-              <p>¥{{ fenToYuan(o.refundPriceTotal) }}</p>
+              <p>¥{{ fenToYuan(o.refundIntegral) }}</p>
 							<p>{{ o.orderNo }}</p>
-							<p>{{ o.user.nickname }}</p>
+							<p>{{ o.user.username }}</p>
 							<p>{{ getDictLabel(DICT_TYPE.TRADE_AFTER_SALE_WAY, o.way) }}</p>
 							<p>{{ formatDate(o.createTime, 'YYYY-MM-DD HH:mm') }}</p>
             </template>

+ 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

@@ -26,9 +26,9 @@ v-model="dialogVisible" :title="dialogTitle" :fullscreen="isFullScreen" :show-cl
 					<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>

+ 5 - 17
src/views/mall/trade/order/components/OrderProduct.vue

@@ -14,26 +14,14 @@
         </el-form-item>
       </el-col>
     </el-row>
-    <el-row>
-      <el-col :span="12">
-        <el-form-item label="佣金抵扣" >
-          {{ pointsToYuan(formData.payIntegral!) }} 元
-        </el-form-item>
-      </el-col>
-      <el-col :span="12">
+    <!-- <el-row>
+      <el-col :span="24">
         <el-form-item label="运费金额">
           {{ fenToYuan(formData.deliveryPrice!) }} 元
         </el-form-item>
       </el-col>
-    </el-row>
-    <el-row>
-      <el-col :span="24">
-        <el-form-item label="消费分抵扣" >
-          {{ pointsToYuan(formData.payConsumptionPoints!) }} 元
-        </el-form-item>
-      </el-col>
 
-    </el-row>
+    </el-row> -->
     <!-- <el-row>
       <el-col :span="12">
         <el-form-item label="订单人工调价">
@@ -107,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">
@@ -155,7 +143,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

@@ -162,7 +162,7 @@ style="width: 95%;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;f
               <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) }}

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

@@ -33,23 +33,23 @@
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" @row-click="openDetail($event)" row-class-name="row">
       <el-table-column label="订单号" align="center" prop="no" />
       <!-- <el-table-column label="商品名" align="center" prop="no" /> -->
-      <el-table-column label="金额" align="center" prop="no" >
+      <el-table-column label="积分" align="center" prop="no" >
         <template #default="scope"> 
-          ¥{{fenToYuan(scope.row.payPrice) }}
+          ¥{{pointsToYuan(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) }}
+          ¥{{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 +58,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 +90,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

@@ -62,7 +62,7 @@
   <ContentWrap class="mt-15px">
     <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>
@@ -77,23 +77,23 @@
           ¥{{fenToYuan(scope.row.refundPrice) }}
         </template>
       </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>
@@ -107,7 +107,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" />
       <el-table-column label="操作" align="center" >

+ 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>