Quellcode durchsuchen

积分策略 优惠卷添加字段 积分 明细 签到 分享查看

changhaoning vor 1 Jahr
Ursprung
Commit
d6e0945ac4

+ 21 - 0
src/api/pages/mst/integral.js

@@ -0,0 +1,21 @@
+/**
+ * @desc   : 积分服务
+ * @author : 常皓宁
+ * @date   : 2024/4/29 13:38
+ */
+export default {
+  integralService:{
+    prefix: '/mdm-server/mst/integral/',
+  }
+}
+
+/**
+ * @desc   : 积分服务
+ * @author : 常皓宁
+ * @date   : 2024/4/29 13:38
+ */
+export const routeUrl = {
+  integral:{
+
+  }
+}

+ 21 - 0
src/api/pages/mst/integralItem.js

@@ -0,0 +1,21 @@
+/**
+ * @desc   : 积分明细服务
+ * @author : 常皓宁
+ * @date   : 2024/4/29 13:38
+ */
+export default {
+  integralItemService:{
+    prefix: '/mdm-server/mst/integralItem/',
+  }
+}
+
+/**
+ * @desc   : 积分明细路由
+ * @author : 常皓宁
+ * @date   : 2024/4/29 13:38
+ */
+export const routeUrl = {
+  integralItem:{
+
+  }
+}

+ 21 - 0
src/api/pages/mst/integralShare.js

@@ -0,0 +1,21 @@
+/**
+ * @desc   : 分享积分服务
+ * @author : 常皓宁
+ * @date   : 2024/4/29 13:38
+ */
+export default {
+  integralShareService:{
+    prefix: '/mdm-server/mst/integralShare/',
+  }
+}
+
+/**
+ * @desc   : 分享积分路由
+ * @author : 常皓宁
+ * @date   : 2024/4/29 13:38
+ */
+export const routeUrl = {
+  integralShare:{
+
+  }
+}

+ 21 - 0
src/api/pages/mst/signRecord.js

@@ -0,0 +1,21 @@
+/**
+ * @desc   : 签到积分服务
+ * @author : 常皓宁
+ * @date   : 2024/4/29 13:38
+ */
+export default {
+  signRecordService:{
+    prefix: '/mdm-server/mst/signRecord/',
+  }
+}
+
+/**
+ * @desc   : 签到积分路由
+ * @author : 常皓宁
+ * @date   : 2024/4/29 13:38
+ */
+export const routeUrl = {
+  signRecord:{
+
+  }
+}

+ 5 - 0
src/locale/lang/zh-CN.js

@@ -604,11 +604,16 @@ export const columns = {
   shareIntegral:'分享积分',
   shareIntegral:'分享积分',
   shareRegIntegral:'分享注册积分',
   shareRegIntegral:'分享注册积分',
   signDayNum:'每日签到次数',
   signDayNum:'每日签到次数',
+  shareDayNum:'每日分享次数',
   couponName:'优惠券名称',
   couponName:'优惠券名称',
   couponDesc:'优惠券描述',
   couponDesc:'优惠券描述',
   discount:'折扣',
   discount:'折扣',
   useValidDays:'使用有效期(天)',
   useValidDays:'使用有效期(天)',
+  linkValidTimes:'链接有效期(小时)',
   userNum:'所需人数',
   userNum:'所需人数',
+  integralItem:'积分明细',
+  signRecord:'签到积分',
+  share:'分享积分',
 }
 }
 
 
 /**
 /**

+ 8 - 1
src/view/mst/coupon/index.vue

@@ -38,6 +38,7 @@
         <DkTableColumn field="couponDesc"></DkTableColumn>
         <DkTableColumn field="couponDesc"></DkTableColumn>
         <DkTableColumn field="discount"/>
         <DkTableColumn field="discount"/>
         <DkTableColumn field="useValidDays"/>
         <DkTableColumn field="useValidDays"/>
+        <DkTableColumn field="linkValidTimes"/>
         <DkTableColumn field="userNum"></DkTableColumn>
         <DkTableColumn field="userNum"></DkTableColumn>
         <DkTableColumn field="gradeName"/>
         <DkTableColumn field="gradeName"/>
         <DkTableColumn field="flgValid" type="switch" ></DkTableColumn>
         <DkTableColumn field="flgValid" type="switch" ></DkTableColumn>
@@ -54,7 +55,7 @@
       :saveFlag="true"
       :saveFlag="true"
       :title="modalTitle"
       :title="modalTitle"
     >
     >
-      <DkForm ref="formInline" v-model="formData" :col-count="1" :labelMaxWords="6">
+      <DkForm ref="formInline" v-model="formData" :col-count="1" :labelMaxWords="7">
         <!--系统版本-->
         <!--系统版本-->
         <DkFormItem prop="gradeCode">
         <DkFormItem prop="gradeCode">
           <SelectPop v-model="formData.gradeCode" ref="gradeCode"
           <SelectPop v-model="formData.gradeCode" ref="gradeCode"
@@ -79,6 +80,10 @@
         <DkFormItem prop="useValidDays"  :required="true" data-type="number">
         <DkFormItem prop="useValidDays"  :required="true" data-type="number">
           <InputNumberPop v-model="formData.useValidDays" :unit="'天'"/>
           <InputNumberPop v-model="formData.useValidDays" :unit="'天'"/>
         </DkFormItem>
         </DkFormItem>
+        <!--链接有效期-->
+        <DkFormItem prop="linkValidTimes"  :required="true" data-type="number">
+          <InputNumberPop v-model="formData.linkValidTimes" :unit="'小时'"/>
+        </DkFormItem>
         <!--所需人数-->
         <!--所需人数-->
         <DkFormItem prop="userNum"  :required="true" data-type="number">
         <DkFormItem prop="userNum"  :required="true" data-type="number">
           <InputNumberPop v-model="formData.userNum"/>
           <InputNumberPop v-model="formData.userNum"/>
@@ -104,6 +109,7 @@ export default {
         couponDesc:null,
         couponDesc:null,
         discount:null,
         discount:null,
         useValidDays:null,
         useValidDays:null,
+        linkValidTimes:null,
         userNum:null,
         userNum:null,
         gradeCode:null,
         gradeCode:null,
       },
       },
@@ -153,6 +159,7 @@ export default {
         couponDesc:null,
         couponDesc:null,
         discount:null,
         discount:null,
         useValidDays:null,
         useValidDays:null,
+        linkValidTimes:null,
         userNum:null,
         userNum:null,
         gradeCode:null,
         gradeCode:null,
       }
       }

+ 8 - 1
src/view/mst/integral-tactic/index.vue

@@ -36,6 +36,7 @@
         <DkTableColumn field="shareIntegral"/>
         <DkTableColumn field="shareIntegral"/>
         <DkTableColumn field="shareRegIntegral"></DkTableColumn>
         <DkTableColumn field="shareRegIntegral"></DkTableColumn>
         <DkTableColumn field="signDayNum"/>
         <DkTableColumn field="signDayNum"/>
+        <DkTableColumn field="shareDayNum"/>
       </DkTable>
       </DkTable>
     </div>
     </div>
 
 
@@ -71,9 +72,13 @@
           <InputNumberPop v-model="formData.shareRegIntegral"/>
           <InputNumberPop v-model="formData.shareRegIntegral"/>
         </DkFormItem>
         </DkFormItem>
         <!--每日签到次数-->
         <!--每日签到次数-->
-        <DkFormItem prop="signDayNum"  :required="true" data-type="number">
+        <DkFormItem prop="signDayNum" data-type="number">
           <InputNumberPop v-model="formData.signDayNum"/>
           <InputNumberPop v-model="formData.signDayNum"/>
         </DkFormItem>
         </DkFormItem>
+        <!--每日签到次数-->
+        <DkFormItem prop="shareDayNum" data-type="number">
+          <InputNumberPop v-model="formData.shareDayNum"/>
+        </DkFormItem>
       </DkForm>
       </DkForm>
     </DkModal>
     </DkModal>
   </div>
   </div>
@@ -96,6 +101,7 @@ export default {
         shareIntegral:null,
         shareIntegral:null,
         shareRegIntegral:null,
         shareRegIntegral:null,
         signDayNum:null,
         signDayNum:null,
+        shareDayNum:null,
       },
       },
       searchContent: [
       searchContent: [
 
 
@@ -142,6 +148,7 @@ export default {
         shareIntegral:null,
         shareIntegral:null,
         shareRegIntegral:null,
         shareRegIntegral:null,
         signDayNum:null,
         signDayNum:null,
+        shareDayNum:null,
       }
       }
     },
     },
 
 

+ 213 - 0
src/view/mst/integral/index.vue

@@ -0,0 +1,213 @@
+<!-- @desc:积分查询  @auth:常皓宁  @time:2024/7/25 9:47 -->
+<template>
+  <div class="main-div" ref="mainDiv">
+    <DkForm ref="formInline" v-model="formData" :col-count="4" :width="50">
+      <!--企业-->
+      <DkFormItem prop="cpId" :label="this.$t('cpName')" :required="true" :span="6"
+                  :data-type="$config.dataType.number">
+        <SelectMagnifier v-model="formData.cpId" :display-text="formData.cpName"
+                         :type="this.$config.MagnifierType.company"
+                         :multiple="false"
+                         @ok="clickOk"/>
+      </DkFormItem>
+    </DkForm>
+    <BaseIndexButtonGroup ref="BaseIndexButtonGroup" id="BaseIndexButtonGroup">
+      <template #left>
+        <!--    查询    -->
+        <BaseIndexButton ref="search" name="search" @click="getData"></BaseIndexButton>
+      </template>
+    </BaseIndexButtonGroup>
+
+    <!--  表格部分  -->
+    <DkSplit mode="vertical" v-model="split" :height="tableHeight">
+      <div slot="top" style="margin-left: 5px;">
+        <DkTable ref="table-select" name="table" :data="tableData" primaryKey="cpId"
+                 @pageChange="pageSizeChange"
+                 :page-total="pageInfo.total"
+                 :page-size="pageInfo.pageSize"
+                 :page-size-opts="pageSizeOpts"
+                 :current-page="pageInfo.currentPage"
+                 :choose-flag="false"
+                 @current-change="currentChange($event)"
+                 :height="this.tableHeight * split - 35" showFooter>
+          <DkTableColumn field="cpCode"></DkTableColumn>
+          <DkTableColumn field="cpName"></DkTableColumn>
+          <DkTableColumn field="integral"></DkTableColumn>
+        </DkTable>
+      </div>
+      <div slot="bottom">
+        <DkTabs v-model="detailModel" :options="detailOptions" @on-click="detailTabsClick"></DkTabs>
+        <!--  明细  -->
+        <div v-show="itemFlag">
+          <DkTable :id="'table-'+$options.name" ref="detail-select" :data="integralItemData"
+                   :choose-flag="false"
+                   :height="this.tableHeight * (1-split)" primaryKey="itemId" name="table">
+            <DkTableColumn field="integralType"></DkTableColumn>
+            <DkTableColumn field="integral"></DkTableColumn>
+            <DkTableColumn field="accDate" :data-type="$config.dataType.date"></DkTableColumn>
+          </DkTable>
+        </div>
+        <!--  签到  -->
+        <div v-show="signRecordFlag">
+          <DkTable :id="'table-'+$options.name" ref="detail-select" :data="signRecordData"
+                   :choose-flag="false"
+                   :height="this.tableHeight * (1-split)" primaryKey="itemId" name="table">
+            <DkTableColumn field="userId"></DkTableColumn>
+            <DkTableColumn field="signDays"></DkTableColumn>
+            <DkTableColumn field="lastDate" :data-type="$config.dataType.date"></DkTableColumn>
+          </DkTable>
+        </div>
+        <!--  分享  -->
+        <div v-show="shareFlag">
+          <DkTable :id="'table-'+$options.name" ref="detail-select" :data="shareData"
+                   :choose-flag="false"
+                   :height="this.tableHeight * (1-split)" primaryKey="itemId" name="table">
+            <DkTableColumn field="tacticId"></DkTableColumn>
+            <DkTableColumn field="shareDate" :data-type="$config.dataType.date"></DkTableColumn>
+            <DkTableColumn field="endDate" :data-type="$config.dataType.date"></DkTableColumn>
+          </DkTable>
+        </div>
+      </div>
+    </DkSplit>
+  </div>
+</template>
+
+<script>
+import {indexMixin} from "@/mixins";
+
+export default {
+  name: "integral",
+  mixins: [indexMixin],
+  data() {
+    let self = this
+    return {
+      itemFlag:true,
+      signRecordFlag:false,
+      shareFlag:false,
+      detailModel: 'integralItem',
+      detailOptions: [{label: self.$t('integralItem'), name: 'integralItem'}, //积分明细
+        {label: self.$t('signRecord'), name: 'signRecord'},//签到
+        {label: self.$t('share'), name: 'share'}, //分享
+      ],
+      integralItemData: [],//积分明细
+      signRecordData:[],//签到积分
+      shareData:[],//分享积分
+      formData: {
+        cpId: null,
+      },
+    }
+  },
+  methods: {
+    /**
+     * @desc   : 选择后事件
+     * @author : 常皓宁
+     * @date   : 2024/6/5 9:18
+     */
+    clickOk(val) {
+      this.formData.cpId = val[0]['cpId']
+    },
+
+    /**
+    * @desc   : 点击Tab进行切换
+    * @author : 常皓宁
+    * @date   : 2024/7/25 11:01
+    */
+    detailTabsClick(val) {
+      if (val === 'integralItem') {
+        this.itemFlag = true
+        this.signRecordFlag = false
+        this.shareFlag = false
+      } else if (val === 'signRecord') {
+        this.itemFlag = false
+        this.signRecordFlag = true
+        this.shareFlag = false
+      } else if (val === 'share') {
+        this.itemFlag = false
+        this.signRecordFlag = false
+        this.shareFlag = true
+      }
+    },
+
+    /**
+     * @desc   : 行改变事件
+     * @author : 常皓宁
+     * @date   : 2024/4/15 13:34
+     */
+    currentChange({row}) {
+      this.loading = true
+      this.integralItemData = null;
+      let params = {
+        cpId: row.cpId,
+      }
+      this.excute(this.$service.integralItemService, this.$service.integralItemService.selectByCond, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.integralItemData = res.data.list;
+        }
+        this.loading = false
+      })
+    },
+
+    /**
+     * @desc   : 查询数据
+     * @author : 常皓宁
+     * @date   : 2024/4/15 13:34
+     */
+    getData(params) {
+      this.$refs['formInline'].validate().then(valid => {
+        if (!valid) {
+          return
+        } else {
+          params = {...this.formData}
+          this.excute(this.$service.integralService, this.$service.integralService.selectByCond, params).then(res => {
+            if (res.code === this.$config.SUCCESS_CODE) {
+              this.tableData = res.data.list;
+              this.getSignRecordData(params);
+              this.getShareData(params);
+            }else {
+              this.$Message.warning(res.message)
+            }
+          })
+        }
+      })
+    },
+
+    /**
+    * @desc   : 查询签到积分
+    * @author : 常皓宁
+    * @date   : 2024/7/25 13:31
+    */
+    getSignRecordData(params){
+      this.excute(this.$service.signRecordService, this.$service.signRecordService.selectByCond, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.signRecordData = res.data.list;
+        }else {
+          this.$Message.warning(res.message)
+        }
+      })
+    },
+
+    /**
+     * @desc   : 查询分享积分
+     * @author : 常皓宁
+     * @date   : 2024/7/25 13:31
+     */
+    getShareData(params){
+      this.excute(this.$service.integralShareService, this.$service.integralShareService.selectByCond, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.shareData = res.data.list;
+        }else {
+          this.$Message.warning(res.message)
+        }
+      })
+    },
+  },
+  created() {
+    this.primaryKey = 'cpId'  // 设置主键Id
+    this.routeObjName = 'integral'  // 设置路由名称
+  }
+}
+</script>
+
+<style scoped>
+
+</style>