index.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <template>
  2. <div class="page">
  3. <div class="header">
  4. <el-text class="text-notice">注意事项</el-text>
  5. <el-text class="text-notice">1.充值用户 >=n 分钟连续未登录,如果点击新连接,会归属于新链接的优化师</el-text>
  6. <el-text class="text-notice">2.未充值用户 >=n 分钟连续未登录,如果点击新连接,会归属于新链接的优化师</el-text>
  7. </div>
  8. <div class="set-box" v-show="init_finish" >
  9. <view class="set-box-item">
  10. <el-text class="lab-txt"> <label style="color: red;margin-right: 10px;">*</label>非充值用户:</el-text>
  11. <el-input-number v-model="no_charge_user_duration" :min="0" @change="handleUnChargeUserChange" />
  12. <el-text style="margin-left: 10px;color: 555;">分</el-text>
  13. </view>
  14. <view class="set-box-item">
  15. <el-text class="lab-txt"> <label style="color: red;margin-right: 10px;">*</label>充值用户:</el-text>
  16. <el-input-number v-model="charge_user_duration" :min="0" @change="handleChargeUserChange" />
  17. <el-text style="margin-left: 10px;color: 555;">分</el-text>
  18. </view>
  19. <view class="set-box-item" v-action="'tuiguang.RanseConfig.setRanseDuration'" >
  20. <el-button :disabled="permission" style="margin-left: 140px;margin-top: 30px;" type="primary" @click="saveSetting">确认</el-button>
  21. </view>
  22. </div>
  23. </div>
  24. </template>
  25. <script lang="ts" setup>
  26. import {getRanseDuration,setRanseDuration} from "@/api/promotion/ranse";
  27. const rolesIdentify = inject('rolesIdentify');
  28. const setData = ref({charge_user_duration:0,no_charge_user_duration:0})
  29. const charge_user_duration = ref(0);
  30. const no_charge_user_duration = ref(0);
  31. const init_finish = ref(0);
  32. const permission = ref(true);
  33. const handleUnChargeUserChange = (value: number) => {
  34. no_charge_user_duration.value = value;
  35. }
  36. const handleChargeUserChange = (value: number) => {
  37. charge_user_duration.value = value;
  38. }
  39. const saveSetting = () => {
  40. if(charge_user_duration.value < 1){
  41. ElMessage.error( '请填写充值用户染色时间');
  42. return false;
  43. }
  44. if(no_charge_user_duration.value < 1){
  45. ElMessage.error( '请填写未充值用户染色时间');
  46. return false;
  47. }
  48. if(charge_user_duration.value <= no_charge_user_duration.value){
  49. ElMessage.error( '充值用户染色时间应大于非充值用户染色时间');
  50. return false;
  51. }
  52. if(setData.value.charge_user_duration == charge_user_duration.value && setData.value.no_charge_user_duration == no_charge_user_duration.value){
  53. ElMessage.success("操作成功")
  54. return true;
  55. }
  56. setRanseDuration({charge_user_duration:charge_user_duration.value,no_charge_user_duration:no_charge_user_duration.value}).then(res => {
  57. if(res.code ==10000){
  58. ElMessage.success(res.message);
  59. getSetData();
  60. }
  61. })
  62. }
  63. const getSetData = async () =>{
  64. if(rolesIdentify.value.includes('optimizer')){
  65. await getRanseDuration().then(res => {
  66. if(res.code ==10000){
  67. setData.value.charge_user_duration = res.data.charge_user_duration;
  68. setData.value.no_charge_user_duration = res.data.no_charge_user_duration;
  69. charge_user_duration.value = res.data.charge_user_duration;
  70. no_charge_user_duration.value = res.data.no_charge_user_duration;
  71. init_finish.value = 1;
  72. }
  73. permission.value = false;
  74. });
  75. }
  76. init_finish.value = 1;
  77. }
  78. onMounted(async () =>{
  79. await getSetData();
  80. });
  81. </script>
  82. <style lang="scss" scoped>
  83. .lab-txt{
  84. display: inline-table;
  85. width: 120px;
  86. color: #555;
  87. text-align: right;
  88. }
  89. .page{
  90. background-color: #fff;
  91. padding:40px 60px;
  92. }
  93. .header{
  94. display: flex;
  95. flex-direction: column;
  96. background-color:#fcd3d3 ;
  97. padding: 20px 30px;
  98. }
  99. .text-notice{
  100. width: 100%;
  101. color:#f56c6c;
  102. }
  103. .set-box{
  104. margin-top: 20px;
  105. display: flex;
  106. flex-direction: column;
  107. }
  108. .set-box-item{
  109. width: 100%;
  110. margin-top: 20px;
  111. }
  112. </style>