jufubao-admin-library 1.1.152 → 1.1.154

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -267,6 +267,28 @@ export default {
267
267
  let flag = true,
268
268
  index = null,
269
269
  message = "";
270
+ let arr = value.map(item=>{
271
+ return JSON.stringify([Number(item.start_number),Number(item.end_number)])
272
+ });
273
+ let cloArr = [];
274
+ value.map(item=>{
275
+ if(Number(item.start_number)===Number(item.end_number)){
276
+ cloArr.push(Number(item.start_number))
277
+ }else{
278
+ cloArr.push(Number(item.start_number));
279
+ cloArr.push(Number(item.end_number))
280
+ }
281
+ })
282
+ let arrSet = new Set(arr);
283
+ if (arr.length !== arrSet.size) {
284
+ callback("卡号组不能重复");
285
+ return;
286
+ }
287
+ let cloArrSet = new Set(cloArr);
288
+ if (cloArr.length !== cloArrSet.size) {
289
+ callback("卡号组不能重复");
290
+ return;
291
+ }
270
292
  value.map((item, idx) => {
271
293
  if (index === null) {
272
294
  //检查卡号填写为空
@@ -280,23 +302,16 @@ export default {
280
302
 
281
303
  //检查开始卡号不能大于等于结束卡号
282
304
  if (index === null) {
283
- if (item["start_number"] >= item["end_number"]) {
305
+ if (item["start_number"] > item["end_number"]) {
284
306
  index = idx;
285
307
  flag = false;
286
- message = "输入开始卡号不能大于等于结束卡号";
308
+ message = "输入开始卡号不能大于结束卡号";
287
309
  }
288
310
  }
289
311
  }
290
312
  });
291
-
292
313
  if (flag) callback();
293
314
  else callback(`第【${index + 1}】条数据有误,错误:${message}`);
294
-
295
- // let temp = false;
296
- // if (!value['week_day'] || value['week_day'].length === 0) temp = true;
297
- // if (!value['week_start'] || !value['week_end']) temp = true;
298
- // if (temp) callback('请设置规则')
299
- // else callback();
300
315
  },
301
316
  trigger: ["blur", "change"],
302
317
  },
@@ -125,5 +125,28 @@ module.exports = {
125
125
  disabled: true,
126
126
  "role": "FINANCE-PARTNER.WALLET_GET_CHANNEL_AMOUNT"
127
127
  },
128
+ {
129
+ title: "余额通知频次获取详情",
130
+ mapFn: "notifyConfigGet",
131
+ path: '/finance-partner/v1/wallet/notify-config/get',
132
+ isRule: false,
133
+ params: {
134
+
135
+ },
136
+ disabled: true,
137
+ "role": ""
138
+ },
139
+ {
140
+ title: "余额通知频次设置",
141
+ mapFn: "notifyConfigSet",
142
+ path: '/finance-partner/v1/wallet/notify-config/set',
143
+ isRule: false,
144
+ data: {
145
+ config_result:["config_result", "object", "必填"],
146
+ },
147
+ disabled: true,
148
+ "role": "FINANCE-PARTNER.WALLET_GET_TIME_SET"
149
+ },
150
+
128
151
  ]
129
152
  }
@@ -12,6 +12,12 @@
12
12
  </xd-search>
13
13
  </el-card> -->
14
14
  <el-card class="app-container__list">
15
+ <div class="app-container__list-pagination">
16
+ <div></div>
17
+ <div class="app-container__list-custom">
18
+ <el-button type="primary" size="small" @click="handleSet" v-if="isSet">余额通知频次设置</el-button>
19
+ </div>
20
+ </div>
15
21
  <div class="app-container__list-table">
16
22
  <xd-table
17
23
  :headers="headers"
@@ -30,6 +36,65 @@
30
36
  ></xd-pagination>
31
37
  </div>
32
38
  </el-card>
39
+ <xd-dialog
40
+ v-if="showDialog"
41
+ title=""
42
+ :show.sync="showDialog"
43
+ width="500px"
44
+ >
45
+ <xd-base-dynamic-field
46
+ :key="randomKey"
47
+ v-if="setFormList !== null"
48
+ ref="setForm"
49
+ v-model="setFormParams"
50
+ :list="setFormList"
51
+ size="medium"
52
+ @success="handleSuccess"
53
+ @onApiSuccessUrl="handleApiSuccessUrl"
54
+ @onGetParamsAndHeader="handlePrivateGetParamsAndHeader"
55
+ >
56
+ <template slot="set" slot-scope="scope">
57
+ <el-form
58
+ :label-width="scope.width"
59
+ :model="customForm"
60
+ :rules="customRules"
61
+ ref="customForm"
62
+ @submit.native.prevent
63
+ >
64
+ <el-form-item prop="frequency_type" label="通知频次:" required>
65
+ <el-select v-model="customForm.frequency_type" placeholder="请选择" style="margin-bottom: 5px;">
66
+ <el-option
67
+ v-for="item in optionsData['frequency_type_list']"
68
+ :key="item.value"
69
+ :label="item.label"
70
+ :value="item.value">
71
+ </el-option>
72
+ </el-select>
73
+ <el-select multiple v-if="customForm.frequency_type&&customForm.frequency_type==='week'" v-model="customForm.frequency_val" style="margin-bottom: 5px;" placeholder="请选择">
74
+ <el-option
75
+ v-for="item in weekData"
76
+ :key="item.value"
77
+ :label="item.label"
78
+ :value="item.value">
79
+ </el-option>
80
+ </el-select>
81
+ <el-select multiple v-model="customForm.frequency_time_val" style="margin-bottom: 5px;" placeholder="请选择">
82
+ <el-option
83
+ v-for="item in frequencyTimeData"
84
+ :key="item.value"
85
+ :label="item.label"
86
+ :value="item.value">
87
+ </el-option>
88
+ </el-select>
89
+ </el-form-item>
90
+ </el-form>
91
+ </template>
92
+ </xd-base-dynamic-field>
93
+ <div slot="btn">
94
+ <el-button type="default" @click="showDialog=false">取消</el-button>
95
+ <el-button type="primary" @click="handleConfirm">确定</el-button>
96
+ </div>
97
+ </xd-dialog>
33
98
  </div>
34
99
  </template>
35
100
 
@@ -42,14 +107,19 @@ import { mapActions } from "vuex"
42
107
  import { getOptions } from "@/utils/options"
43
108
  import { baseJsDateToTime } from "@/utils/xd.base.js"
44
109
  import checkPermission from "@/utils/permission"
110
+ import permissions from "@/constant/permissions"
45
111
  import roleTRecord from "@/constant/modules/tradeRecord.js"
112
+ import XdDialog from "@/components/XdDialog";
113
+ import XdBaseDynamicField from "@/components/XdBaseDynamicField"
46
114
 
47
115
  export default {
48
116
  name: "PageFinanceIndex",
49
117
  components: {
50
118
  XdPagination, //翻译插件
51
119
  XdSearch, //搜查插件
52
- XdTable
120
+ XdTable,
121
+ XdDialog,
122
+ XdBaseDynamicField,
53
123
  },
54
124
  data() {
55
125
  return {
@@ -65,9 +135,69 @@ export default {
65
135
 
66
136
  //列表对象
67
137
  tables: [],
138
+ //设置参数
139
+ showDialog:false,
140
+ randomKey:'randomKey',
141
+ setFormList:[],
142
+ setFormParams:null,
143
+
144
+ optionsData:[],
145
+ frequencyTimeData:[
146
+ {label:'00:00',value:'00:00'},{label:'01:00',value:'01:00'},{label:'02:00',value:'02:00'},{label:'03:00',value:'03:00'},{label:'04:00',value:'04:00'},{label:'05:00',value:'05:00'},{label:'06:00',value:'06:00'},{label:'07:00',value:'07:00'},{label:'08:00',value:'08:00'},
147
+ {label:'09:00',value:'09:00'},{label:'10:00',value:'10:00'},{label:'11:00',value:'11:00'},{label:'12:00',value:'12:00'},{label:'13:00',value:'13:00'},{label:'14:00',value:'14:00'},{label:'15:00',value:'15:00'},{label:'16:00',value:'16:00'},
148
+ {label:'17:00',value:'17:00'},{label:'18:00',value:'18:00'},{label:'19:00',value:'19:00'},{label:'20:00',value:'20:00'},{label:'21:00',value:'21:00'},{label:'22:00',value:'22:00'},{label:'23:00',value:'23:00'}
149
+ ],
150
+ customForm:{
151
+ frequency_type:'',
152
+ frequency_val:[],
153
+ frequency_time_val:[],
154
+ },
155
+ customRules:{},
156
+ weekData:[],
68
157
  }
69
158
  },
159
+ watch:{
160
+ showDialog:{
161
+ handler(n,o){
162
+ if(!n){
163
+ this.customForm = {
164
+ frequency_type:'',
165
+ frequency_val:[],
166
+ frequency_time_val:[],
167
+ }
168
+ this.setFormParams = null;
169
+ }
170
+ }
171
+ },
172
+ 'setFormParams.notify_mode':{
173
+ handler(n,o){
174
+ console.log(n,o,'pppp')
175
+ if(n&&n!==o){
176
+ this.initFormList(this.setFormParams);
177
+ }
178
+ },
179
+ deep:true,
180
+ immediate:true,
181
+ },
182
+ 'customForm.frequency_val':{
183
+ handler(n,o){
184
+ if(n&&JSON.stringify(n)!==JSON.stringify(o)){
185
+ this.customForm.frequency_val.sort()
186
+ }
187
+ }
188
+ },
189
+ 'customForm.frequency_time_val':{
190
+ handler(n,o){
191
+ if(n&&JSON.stringify(n)!==JSON.stringify(o)){
192
+ this.customForm.frequency_time_val.sort()
193
+ }
194
+ }
195
+ },
196
+ },
70
197
  computed: {
198
+ isSet(){
199
+ return checkPermission([permissions.wallet.notifyConfigSet])
200
+ },
71
201
  headers(){
72
202
  return [
73
203
  { "type": "normal", "prop": "partner_id", "align": "center", "label": "ID" },
@@ -85,10 +215,18 @@ export default {
85
215
  },
86
216
  created() {
87
217
  // this.initSearchForm();
218
+ getOptions({
219
+ server: 'finance-partner',
220
+ fn: 'wallet/notify-config',
221
+ path: 'p1',
222
+ }).then(res => {
223
+ this.optionsData = res.data;
224
+ this.weekData = res.data['frequency_val_week_list'];
225
+ })
88
226
  this.getList();
89
227
  },
90
228
  methods: {
91
- ...mapActions("wallet", ["listHomeWallet"]),
229
+ ...mapActions("wallet", ["listHomeWallet","notifyConfigGet","notifyConfigSet"]),
92
230
  //相除
93
231
  divide(price) {
94
232
  return this.$xdHelper.divisionFloatNumber(price, 100);
@@ -181,6 +319,111 @@ export default {
181
319
  this.page_token = page;
182
320
  this.getList();
183
321
  }, //todo
322
+ initFormList(params){
323
+ console.log("params", params);
324
+ let formList = [
325
+ {
326
+ label: '通知设置:', //label
327
+ ele: 'xd-radio', //package 名称
328
+ valueKey: 'notify_mode', //form[valueKey]
329
+ value: params.notify_mode || 'default', //v-model
330
+ list: this.optionsData['notify_mode_list'],
331
+ rules: [
332
+ { required: true, message: `请选择通知设置`, trigger: 'change' },
333
+ ]
334
+ },
335
+ params.notify_mode==='default'&&{
336
+ label: '通知频次:',
337
+ ele:'el-html',
338
+ value:this.optionsData['default_time_tip']
339
+ },
340
+ params.notify_mode==='custom'&&{
341
+ label: '通知频次:',
342
+ ele:'slot',
343
+ slot:'set'
344
+ },
345
+ ].filter(i=>i)
346
+ this.setFormList = formList;
347
+ this.randomKey = Date.now();
348
+ },
349
+ handleSet(){
350
+ this.notifyConfigGet({})
351
+ .then(res=>{
352
+ if(res.data.config_result.frequency_val){
353
+ res.data.config_result.frequency_val = JSON.parse(res.data.config_result.frequency_val);
354
+ }
355
+ if(res.data.config_result.frequency_time_val){
356
+ res.data.config_result.frequency_time_val = JSON.parse(res.data.config_result.frequency_time_val);
357
+ }
358
+ this.customForm = {
359
+ frequency_type:res.data.config_result['frequency_type']||'',
360
+ frequency_val:res.data.config_result['frequency_val']||[],
361
+ frequency_time_val:res.data.config_result['frequency_time_val']||[],
362
+ };
363
+ let params = {
364
+ ...res.data.config_result,
365
+ }
366
+ this.initFormList(params);
367
+ this.showDialog = true;
368
+ })
369
+
370
+ },
371
+ handleConfirm(){
372
+ this.$refs.setForm.submit().then(() => {
373
+ console.log(this.setFormParams,'ppp');
374
+ if(this.setFormParams.notify_mode==='custom'){
375
+ if(!this.customForm.frequency_type){
376
+ this.$message({
377
+ type: 'error',
378
+ message: '通知频次不能为空',
379
+ });
380
+ return;
381
+ }
382
+ if(this.customForm.frequency_type==='day'){
383
+ if(!this.customForm.frequency_type||this.customForm.frequency_time_val.length===0){
384
+ this.$message({
385
+ type: 'error',
386
+ message: '请填写完整通知频次信息'
387
+ });
388
+ return;
389
+ }
390
+ }else if(this.customForm.frequency_type==='week'){
391
+ if(!this.customForm.frequency_type||this.customForm.frequency_val.length===0||this.customForm.frequency_time_val.length===0){
392
+ this.$message({
393
+ type: 'error',
394
+ message: '请填写完整通知频次信息'
395
+ });
396
+ return;
397
+ }
398
+ }
399
+ }
400
+ let copySetFormParams = this.$xdHelper.cloneDeep(this.setFormParams);
401
+ let copyCustomForm = this.$xdHelper.cloneDeep(this.customForm);
402
+ if(copySetFormParams.notify_mode==='default'){
403
+ delete copyCustomForm['frequency_type'];
404
+ delete copyCustomForm['frequency_val'];
405
+ delete copyCustomForm['frequency_time_val'];
406
+ }
407
+ if(copyCustomForm.frequency_type==='day'){
408
+ copyCustomForm.frequency_val = []
409
+ }
410
+ if(copyCustomForm.frequency_time_val){
411
+ copyCustomForm.frequency_time_val = JSON.stringify(this.customForm.frequency_time_val);
412
+ }
413
+ if(copyCustomForm.frequency_val){
414
+ copyCustomForm.frequency_val = JSON.stringify(this.customForm.frequency_val);
415
+ }
416
+ console.log('copySetFormParams',this.customForm, copySetFormParams)
417
+ this.notifyConfigSet({config_result:{...copySetFormParams,...copyCustomForm}}).then(res => {
418
+ this.$message({
419
+ type: 'success',
420
+ message: '设置成功'
421
+ });
422
+ this.showDialog = false;
423
+ }).catch(res => {});
424
+ }).catch(err => {});
425
+
426
+ },
184
427
  }
185
428
  }
186
429
  </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-admin-library",
3
- "version": "1.1.152",
3
+ "version": "1.1.154",
4
4
  "description": "聚福宝福利后台管理系统公共模块",
5
5
  "author": "goashiyong <gaoshiyong1272@vip.163.com>",
6
6
  "scripts": {