jufubao-forms 1.0.0-beta1

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.
Files changed (70) hide show
  1. package/README.md +27 -0
  2. package/commands.js +84 -0
  3. package/commands.update.change.js +176 -0
  4. package/file.config.js +16 -0
  5. package/get.package.path.js +22 -0
  6. package/get.package.path.js.tpl +22 -0
  7. package/package.json +119 -0
  8. package/src/CreateClientID.js +16 -0
  9. package/src/ICONS.js +1148 -0
  10. package/src/common/authorize.js +261 -0
  11. package/src/common/getBusinessImageUrl.js +39 -0
  12. package/src/common/getServiceUrl.js +38 -0
  13. package/src/common/paysdk/jweixin.js +98 -0
  14. package/src/components/CusCouponChose/CusCouponChose.vue +1024 -0
  15. package/src/components/CusCouponItem/CusCouponItem.vue +298 -0
  16. package/src/components/CusEnter/CusEnter.vue +333 -0
  17. package/src/components/CusPoster/CusPoster.vue +213 -0
  18. package/src/components/CusPoster/CusSwiperDot.vue +234 -0
  19. package/src/components/CusProduct/CusProduct.vue +362 -0
  20. package/src/components/CusSwiperDot/CusSwiperDot.vue +234 -0
  21. package/src/components/CusTab/CusTab.vue +411 -0
  22. package/src/components/CusVideo/CusVideo.vue +170 -0
  23. package/src/components/JfbFormsDynamicForm/Api.js +66 -0
  24. package/src/components/JfbFormsDynamicForm/Attr.js +35 -0
  25. package/src/components/JfbFormsDynamicForm/JfbFormsDynamicForm.vue +767 -0
  26. package/src/components/JfbFormsDynamicForm/JfbFormsDynamicFormLess.less +79 -0
  27. package/src/components/JfbFormsDynamicForm/JfbFormsDynamicFormMixin.js +30 -0
  28. package/src/components/JfbFormsDynamicForm/Mock.js +194 -0
  29. package/src/components/JfbFormsDynamicForm/XdFormDate.vue +71 -0
  30. package/src/components/JfbFormsDynamicForm/ld-select/ld-select.vue +329 -0
  31. package/src/components/JfbFormsDynamicForm/uni-datetime-picker/calendar-item.vue +177 -0
  32. package/src/components/JfbFormsDynamicForm/uni-datetime-picker/calendar.vue +930 -0
  33. package/src/components/JfbFormsDynamicForm/uni-datetime-picker/i18n/en.json +22 -0
  34. package/src/components/JfbFormsDynamicForm/uni-datetime-picker/i18n/index.js +8 -0
  35. package/src/components/JfbFormsDynamicForm/uni-datetime-picker/i18n/zh-Hans.json +22 -0
  36. package/src/components/JfbFormsDynamicForm/uni-datetime-picker/i18n/zh-Hant.json +22 -0
  37. package/src/components/JfbFormsDynamicForm/uni-datetime-picker/time-picker.vue +934 -0
  38. package/src/components/JfbFormsDynamicForm/uni-datetime-picker/uni-datetime-picker.vue +1042 -0
  39. package/src/components/JfbFormsDynamicForm/uni-datetime-picker/util.js +403 -0
  40. package/src/components/JfbFormsList/Api.js +20 -0
  41. package/src/components/JfbFormsList/Attr.js +70 -0
  42. package/src/components/JfbFormsList/JfbFormsList.vue +228 -0
  43. package/src/components/JfbFormsList/JfbFormsListLess.less +79 -0
  44. package/src/components/JfbFormsList/JfbFormsListMixin.js +30 -0
  45. package/src/components/JfbFormsList/Mock.js +38 -0
  46. package/src/components/JfbFormsQuestionAndAnswer/Api.js +43 -0
  47. package/src/components/JfbFormsQuestionAndAnswer/Attr.js +14 -0
  48. package/src/components/JfbFormsQuestionAndAnswer/JfbFormsQuestionAndAnswer.vue +506 -0
  49. package/src/components/JfbFormsQuestionAndAnswer/JfbFormsQuestionAndAnswerLess.less +79 -0
  50. package/src/components/JfbFormsQuestionAndAnswer/JfbFormsQuestionAndAnswerMixin.js +30 -0
  51. package/src/components/JfbFormsQuestionAndAnswer/Mock.js +144 -0
  52. package/src/components/SkeProduct/SkeProduct.vue +241 -0
  53. package/src/config.app.plus.js +6 -0
  54. package/src/config.h5.js +13 -0
  55. package/src/config.mp.weixin.js +13 -0
  56. package/src/config.project.js +15 -0
  57. package/src/mixins/cardListMixins.js +187 -0
  58. package/src/mixins/colorCardMixins.js +122 -0
  59. package/src/mixins/componentsMixins.js +900 -0
  60. package/src/mixins/extsMixins.js +3 -0
  61. package/src/mixins/locationMixins.js +119 -0
  62. package/src/mixins/newLocaltionMixins.js +754 -0
  63. package/src/mixins/openDebuggerMixins.js +74 -0
  64. package/src/mixins/pageEditx.js +347 -0
  65. package/src/mixins/pageEvent.js +311 -0
  66. package/src/mixins/pageMain.js +120 -0
  67. package/src/mixins/pageUitls.js +738 -0
  68. package/src/mixins/posterMixins.js +122 -0
  69. package/src/mixins/scrollListFixedHeigthMixins.js +174 -0
  70. package/src/mocks.js +4 -0
@@ -0,0 +1,411 @@
1
+ <template>
2
+ <view
3
+ class="xd-tab"
4
+ :class="{noBorder: noBorder}"
5
+ :style="{background:bgColor}"
6
+ >
7
+ <scroll-view
8
+ class="tab-scroll"
9
+ scroll-x
10
+ :scroll-with-animation="scrollWithAnimation"
11
+ :scroll-into-view="toView"
12
+ :style="{
13
+ width: 'calc(100% - '+ getSettingWidth + 'px)',
14
+ height: height + 'rpx'
15
+ }"
16
+
17
+ >
18
+ <view class="tab-scroll__box">
19
+ <view
20
+ :id="`tab-scroll__index-${index}`"
21
+ v-for="(item, index) in list"
22
+ :key="index"
23
+ :style="{color: activeIndex === index? (actColor||styleMainColor): color, height: height + 'rpx'}"
24
+ class="tab-scroll__item"
25
+ :class="{active:activeIndex === index}"
26
+ @click="clickTab(item, index)"
27
+ >
28
+ <view
29
+ :style="[{
30
+ fontWeight: activeIndex === index? actFontWeight: fontWeight,
31
+ fontSize: (activeIndex === index ? actFontSize : fontSize) + 'rpx',
32
+ height:(xAbsolute === 'none' && item.subName)?(height/2 + 'rpx'):(height + 'rpx'),
33
+ lineHeight:(xAbsolute === 'none' && item.subName)?(height/2 + 'rpx'):(height + 'rpx')
34
+ }]">{{item.name}}</view>
35
+ <view
36
+ class="xAbsolute"
37
+ v-if="xAbsolute === 'absolute'"
38
+ :style="[
39
+ footerStyleComp,
40
+ {backgroundColor: activeIndex === index? (actColor||styleMainColor): ''},
41
+ ]"
42
+ >
43
+ <view
44
+ v-if="activeIndex === index && styleSolid === 'N'"
45
+ :style="[footerStyleSolidComp]"
46
+ class="styleSolid"
47
+ ></view>
48
+ </view>
49
+ <view
50
+ v-if="xAbsolute === 'none' && item.subName"
51
+ class="none"
52
+ :style="[activeIndex === index?subActNameComp:subNameComp]"
53
+ >{{item.subName}}</view>
54
+ </view>
55
+ </view>
56
+ </scroll-view>
57
+ <view
58
+ class="tab-icons"
59
+ @click="handleClickSetting"
60
+ :style="{width: settingWidth + 'rpx'}"
61
+ v-if="showSetting"
62
+ >
63
+ <xd-font-icon
64
+ icon="iconshezhi1"
65
+ color="#666"
66
+ size="40"
67
+ width="50"
68
+ height="50"
69
+ ></xd-font-icon>
70
+ </view>
71
+ </view>
72
+ </template>
73
+
74
+ <script>
75
+
76
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
77
+ import {
78
+ getParentsStyle, //获取页面风格单个键值值
79
+ } from '@/utils/xd.base';
80
+
81
+ export default {
82
+ name: 'CusTab',
83
+ components: {
84
+ XdFontIcon
85
+ },
86
+ props: {
87
+ subNameStyle:{
88
+ type: Object,
89
+ default(){
90
+ return {}
91
+ },
92
+ },
93
+ settingWidth: {
94
+ type: Number,
95
+ default: 70
96
+ },
97
+ showSetting: {
98
+ type: Boolean,
99
+ default: false,
100
+ },
101
+ list: {
102
+ type: Array,
103
+ default() {
104
+ return []
105
+ }
106
+ },
107
+ tabIndex: {
108
+ type: Number,
109
+ default: 0
110
+ },
111
+ footerStyle:{
112
+ type: String,
113
+ default: 'line-4-8-s'
114
+ },
115
+ showFooterLine: {
116
+ type: Boolean,
117
+ default: false
118
+ },
119
+ scrollWithAnimation:{
120
+ type: Boolean,
121
+ default: true
122
+ },
123
+ noBorder: {
124
+ type: Boolean,
125
+ default: true
126
+ },
127
+ color: {
128
+ type: String,
129
+ default: '#333'
130
+ },
131
+ bgColor: {
132
+ type: String,
133
+ default: '#fff'
134
+ },
135
+ fontSize: {
136
+ type: Number | String, //rpx
137
+ default: 30
138
+ },
139
+ actFontSize:{
140
+ type: Number | String, //rpx
141
+ default: 38
142
+ },
143
+ fontWeight: {
144
+ type: Number | String, //rpx
145
+ default: 100
146
+ },
147
+ actFontWeight: {
148
+ type: Number | String, //rpx
149
+ default: 500
150
+ },
151
+ height: {
152
+ type: Number | String, //rpx
153
+ default: 90
154
+ },
155
+ lineBottom: {
156
+ type: Number | String, //rpx
157
+ default: 10
158
+ },
159
+ actColor: {
160
+ type: String,
161
+ default: ''
162
+ }
163
+ },
164
+ data() {
165
+ return {
166
+ activeIndex: 0,
167
+ toView: null,
168
+ styleMainColor: '', //插件主题风格样式
169
+ styleType: 'line',
170
+ styleHeight: 0,
171
+ styleWidth: 0,
172
+ styleRadius:'0',
173
+ styleLong: '0',//长短
174
+
175
+ xAbsolute: 'absolute',//绝对定位|无
176
+ styleSolid: 'Y',
177
+ };
178
+ },
179
+
180
+ computed: {
181
+ getSettingWidth() {
182
+ if (this.showSetting) {
183
+ return 100 * this.$rpxNum;
184
+ }
185
+ return 0;
186
+ },
187
+ footerStyleComp(){
188
+ //circle/line/none/trigon/desc
189
+ let temp = {};
190
+ temp['bottom'] = this.lineBottom + 'rpx';
191
+ if(this.styleType === 'line') {
192
+ temp['height'] = this.styleHeight + 'rpx';
193
+ temp['left'] = this.styleLong;
194
+ temp['right'] = this.styleLong;
195
+ temp['borderRadius'] = this.styleRadius;
196
+ }
197
+ if(this.styleType === 'circle'){
198
+ temp['height'] = this.styleHeight + 'rpx';
199
+ temp['width'] = this.styleHeight + 'rpx';
200
+ temp['left'] = '50%';
201
+ temp['marginLeft'] = -this.styleHeight/2 + 'rpx'
202
+ temp['borderRadius'] = this.styleRadius;
203
+ }
204
+
205
+ return temp
206
+ },
207
+ footerStyleSolidComp(){
208
+ let temp = {};
209
+ temp['height'] = (this.styleHeight - 4) + 'rpx';
210
+ temp['width'] = (this.styleHeight - 4) + 'rpx';
211
+ temp['backgroundColor'] = '#fff';
212
+ if(this.styleType === 'circle'){
213
+ temp['borderRadius'] = '50%';
214
+
215
+ }
216
+ return temp
217
+ },
218
+ subNameComp(){
219
+ let temp = {
220
+ fontSize: '22rpx',
221
+ color:'#333',
222
+ };
223
+ if(this.subNameStyle['bgColor']) temp['backgroundColor'] = this.subNameStyle['bgColor'];
224
+ if(this.subNameStyle['color']) temp['color'] = this.subNameStyle['color'];
225
+ if(this.subNameStyle['fontSize']) temp['fontSize'] = this.subNameStyle['fontSize'];
226
+ if(this.subNameStyle['fontWeight']) temp['fontWeight'] = this.subNameStyle['fontWeight'];
227
+ return temp
228
+ },
229
+ subActNameComp(){
230
+ let temp = {
231
+ backgroundColor: this.actColor,
232
+ fontSize: '22rpx',
233
+ color:'#fff',
234
+ };
235
+ if(this.subNameStyle['actBgColor']) temp['backgroundColor'] = this.subNameStyle['actBgColor'];
236
+ if(this.subNameStyle['actColor']) temp['color'] = this.subNameStyle['actColor'];
237
+ if(this.subNameStyle['actFontSize']) temp['fontSize'] = this.subNameStyle['actFontSize'];
238
+ if(this.subNameStyle['actFontWeight']) temp['fontWeight'] = this.subNameStyle['actFontWeight'];
239
+ return temp
240
+ }
241
+ },
242
+ watch: {
243
+ tabIndex(newVal, oldVal) {
244
+ if(newVal !== oldVal) {
245
+ this.activeIndex = newVal;
246
+ this.toView = `tab-scroll__index-${newVal}`;
247
+ }
248
+ },
249
+ footerStyle(){
250
+ this.initStyle();
251
+ },
252
+ },
253
+ async created() {
254
+ this.initStyle();
255
+ this.styleMainColor = await getParentsStyle(this.$parent, '$mainColor');
256
+ },
257
+
258
+ mounted(){
259
+ this.$nextTick(()=>{
260
+ this.toView = 'tab-scroll__index-0'
261
+ if(this.scrollWithAnimation) {
262
+ setTimeout(() => {
263
+ this.activeIndex = this.tabIndex;
264
+ this.toView = `tab-scroll__index-${this.tabIndex}`;
265
+ this.$emit('onInit', this.list[this.activeIndex], this.activeIndex);
266
+ }, 50);
267
+ }
268
+ else{
269
+ this.activeIndex = this.tabIndex;
270
+ this.toView = `tab-scroll__index-${this.tabIndex}`;
271
+ this.$emit('onInit', this.list[this.activeIndex], this.activeIndex);
272
+ }
273
+ });
274
+ },
275
+
276
+ methods: {
277
+ initStyle(){
278
+ let arr = this.footerStyle.split('-');
279
+ this.styleType = arr[0];
280
+ this.xAbsolute = 'absolute';
281
+ if(this.styleType === 'desc') {
282
+ this.xAbsolute = 'none';
283
+ }
284
+
285
+ //圆与三角
286
+ if(arr.length === 3) {
287
+ this.styleHeight = this.styleWidth = Number(arr[1])
288
+ this.styleSolid = arr[2] === 'k'?'N':'Y'
289
+ if(this.styleType === 'circle') {
290
+ this.styleRadius = '50%'
291
+ }
292
+ }
293
+
294
+ //线
295
+ if(arr.length === 4) {
296
+ this.styleHeight = arr[2];
297
+ this.styleRadius = arr[1] + 'rpx';
298
+ if(arr[3] === 'l') this.styleLong = '20rpx'
299
+ else this.styleLong = '35%'
300
+ }
301
+
302
+ },
303
+
304
+ clickTab(item, index) {
305
+ this.activeIndex = index;
306
+ this.toView = `tab-scroll__index-${this.activeIndex}`;
307
+ this.$emit('onTab', item, index);
308
+ },
309
+ handleClickSetting(){
310
+ this.$emit('onSetting');
311
+ },
312
+ }
313
+ }
314
+ </script>
315
+
316
+ <style lang="less">
317
+ .xd-tab {
318
+ display: flex;
319
+ flex-direction: row;
320
+ justify-content: space-between;
321
+ align-items: center;
322
+ flex-wrap: wrap;
323
+ overflow: hidden;
324
+ padding: 0;
325
+ height: unit(100, rpx);
326
+ &.noBorder {
327
+ border-bottom: 1px #f5f5f5 solid;
328
+ }
329
+
330
+ .tab-scroll {
331
+ .tab-scroll__box {
332
+ display: flex;
333
+ align-items: center;
334
+ flex-wrap: nowrap;
335
+ box-sizing: border-box;
336
+
337
+ .tab-scroll__item {
338
+ flex-shrink: 0;
339
+ padding: 0 unit(20, rpx);
340
+ color: #333;
341
+ font-size: unit(30, rpx);
342
+ height: unit(100, rpx);
343
+ position: relative;
344
+ display: flex;
345
+ align-items: center;
346
+ align-content: center;
347
+ flex-flow: column;
348
+
349
+
350
+ &.active {
351
+ color: @xd-base-color;
352
+ }
353
+
354
+
355
+ & > view.xAbsolute {
356
+ position: absolute;
357
+ bottom: unit(10,rpx);
358
+ display: flex;
359
+ justify-content: center;
360
+ align-items: center;
361
+ }
362
+
363
+ & > view.none {
364
+ padding: 0 10rpx;
365
+ color:#000;
366
+ border-radius:20rpx;
367
+ font-size: 20rpx;
368
+ line-height: 1.2rem;
369
+ margin-top: 4rpx;
370
+ }
371
+ }
372
+ }
373
+ }
374
+
375
+ .tab-icons {
376
+ position: relative;
377
+ justify-content: flex-end;
378
+ display: flex;
379
+ align-items: center;
380
+ height: unit(100, rpx);
381
+
382
+ /deep/ span {
383
+ font-size: unit(40, rpx) !important;
384
+ }
385
+
386
+ .tab-icons-box {
387
+ width: unit(60, rpx);
388
+ height: unit(60, rpx);
389
+ line-height: unit(60, rpx);
390
+ text-align: center;
391
+ vertical-align: middle;
392
+ display: block;
393
+ }
394
+
395
+ &::after {
396
+ content: '';
397
+ position: absolute;
398
+ top: unit(30, rpx);
399
+ bottom: unit(30, rpx);
400
+ left: 0;
401
+ width: 1px;
402
+ background-color: #ddd;
403
+ }
404
+ }
405
+ .styleSolid {
406
+ flex-shrink: 0;
407
+ }
408
+ }
409
+
410
+
411
+ </style>
@@ -0,0 +1,170 @@
1
+ <template>
2
+ <view class="video-box">
3
+ <view class="thumb" :class="{noImageUrl: !imageUrl}" v-if="!playStatus">
4
+ <image :src="imageUrl" v-if="imageUrl" />
5
+ <view v-if="videoUrl" @click="handlePlay()">
6
+ <xd-font-icon
7
+ :icon="iconFont"
8
+ size="100"
9
+ color="#fff"
10
+ ></xd-font-icon>
11
+ </view>
12
+ </view>
13
+ <view
14
+ class="video"
15
+ :style="{borderRadius: radius + 'rpx'}"
16
+ v-else
17
+ >
18
+ <video
19
+ v-if="videoUrl"
20
+ :src="videoUrl"
21
+ :autoplay="autoplay === 'Y'"
22
+ @ended="handleEnd()"
23
+ @error="handleError"
24
+ ></video>
25
+ </view>
26
+ </view>
27
+ </template>
28
+
29
+ <script>
30
+ import getServiceUrl from '@/common/getServiceUrl'
31
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
32
+
33
+ export default {
34
+ name:'CusVideo',
35
+ components:{
36
+ XdFontIcon
37
+ },
38
+ props:{
39
+ margin:{
40
+ type: Object,
41
+ default(){
42
+ return {}
43
+ }
44
+ },
45
+ poster:{
46
+ type:Object,
47
+ required: true
48
+ },
49
+ radius:{
50
+ type: String|Number,
51
+ default: 0
52
+ },
53
+ video:{
54
+ type:Object,
55
+ required: true
56
+ },
57
+ },
58
+ data(){
59
+ return {
60
+ isPreview: false,
61
+
62
+ //play
63
+ imageUrl: '',
64
+ videoUrl: '',
65
+ playStatus: false,
66
+ autoplay: 'N',
67
+ }
68
+ },
69
+ computed: {
70
+ iconFont(){
71
+ if(this.autoplay === 'N') return 'iconplayright'
72
+ if(this.autoplay === 'E') return 'iconshibai';
73
+ if(this.autoplay === 'R') return 'iconplayreplay';
74
+ },
75
+ },
76
+ watch:{
77
+ poster(){
78
+ this.init();
79
+ }
80
+ },
81
+ created() {
82
+ this.isPreview = this.$configProject.isPreview;
83
+ this.init();
84
+ },
85
+ methods:{
86
+ init(){
87
+ if(this.poster.size) {
88
+ this.width = Number(this.poster.size.width);
89
+ this.height = Number(this.poster.size.height);
90
+ }
91
+
92
+ let {image_url, thumb} = this.video;
93
+ if(image_url) this.videoUrl = getServiceUrl(image_url);
94
+ if(thumb) this.imageUrl = getServiceUrl(thumb);
95
+ },
96
+ handlePlay(){
97
+ if(this.autoplay === 'E') return;
98
+ this.playStatus = !this.playStatus;
99
+ this.autoplay = "Y";
100
+ },
101
+
102
+ handleEnd(){
103
+ setTimeout(()=>{
104
+ this.playStatus = !this.playStatus;
105
+ this.autoplay = "R";
106
+ }, 1000)
107
+ },
108
+
109
+ handleError(){
110
+ this.$xdConfirm({
111
+ title: '温馨提示',
112
+ content:'当前视频资源无法播放',
113
+ cancel: false,
114
+ confirmText:'我知道了',
115
+ zIndex:10000,
116
+ success:()=>{
117
+ this.playStatus = !this.playStatus;
118
+ this.autoplay = "R";
119
+ }
120
+ })
121
+
122
+ }
123
+ }
124
+ }
125
+ </script>
126
+
127
+
128
+
129
+ <style scoped lang="less">
130
+ .video-box {
131
+ width: 100%;
132
+ height: 100%;
133
+ box-sizing: border-box;
134
+ view.noImageUrl {
135
+ background: rgba(0,0,0,.6);
136
+ }
137
+ view.thumb {
138
+ height: 100%;
139
+ width: 100%;
140
+ position: relative;
141
+ overflow: hidden;
142
+
143
+ & > view {
144
+ width: 120rpx;
145
+ height: 120rpx;
146
+ position: absolute;
147
+ top: 50%;
148
+ left: 50%;
149
+ margin-top: -60rpx;
150
+ margin-left:-60rpx;
151
+ }
152
+
153
+ & > image {
154
+ height: 100%;
155
+ width: 100%;
156
+ }
157
+ }
158
+
159
+ view.video {
160
+ overflow: hidden;
161
+ height: 100%;
162
+ width: 100%;
163
+
164
+ & video {
165
+ height: 100%;
166
+ width: 100%;
167
+ }
168
+ }
169
+ }
170
+ </style>
@@ -0,0 +1,66 @@
1
+ 'use strict';
2
+ /**
3
+ * @description 接口配置,
4
+ * 在设置方法名字当时候,别忘记加上【模块名字】:Dynamic
5
+ * @type {*[]}
6
+ */
7
+ module.exports = [
8
+ {
9
+ mapFnName: "getDynamicForm",
10
+ title: '动态表单内容 - 获取',
11
+ path: '/forms/v1/sms-form-field/field-by-form-id',
12
+ isRule: false,
13
+ params: {
14
+ form_id: ['表单ID', 'Number', '必选'],
15
+ },
16
+ isConsole: true,
17
+ disabled: true,
18
+ },
19
+ {
20
+ mapFnName: 'submitDynamicForm',
21
+ title: '动态表单内容 - 提交',
22
+ path: '/forms/v1/sms-form-content',
23
+ isRule: false,
24
+ data: {
25
+ form_id: ['表单ID', 'Number', '必选'],
26
+ contents: ['内容', 'array[object(FrontSmsFormContent)]', '必选'],
27
+ },
28
+ isConsole: true,
29
+ disabled: true,
30
+ },
31
+ {
32
+ mapFnName: "checkValidCode",
33
+ title: "图片验证码 - 校验",
34
+ path: "/common/v1/valid_code/image/check",
35
+ isRule: false,
36
+ data: {
37
+ token: ['随机请求码,前端生成', 'String', '必选'],
38
+ valid_code: ['验证码', 'String', '必选'],
39
+ },
40
+ isConsole: true,
41
+ disabled: true,
42
+ },
43
+ {
44
+ mapFnName: "getSaasDynamicForm",
45
+ title: 'saas动态表单内容 - 获取',
46
+ path: '/saas-app/v1/sms-form-field/field-by-form-id',
47
+ isRule: false,
48
+ params: {
49
+ form_id: ['表单ID', 'Number', '必选'],
50
+ },
51
+ isConsole: true,
52
+ disabled: true,
53
+ },
54
+ {
55
+ mapFnName: 'submitSaasDynamicForm',
56
+ title: 'saas动态表单内容 - 提交',
57
+ path: '/saas-app/v1/sms-form-content',
58
+ isRule: false,
59
+ data: {
60
+ form_id: ['表单ID', 'Number', '必选'],
61
+ contents: ['内容', 'array[object(FrontSmsFormContent)]', '必选'],
62
+ },
63
+ isConsole: true,
64
+ disabled: true,
65
+ },
66
+ ];
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * @description 当表单组件中有联动操作时候,使用方法进行返回
5
+ */
6
+ export default {
7
+ style: [],
8
+ content: (data) => {
9
+ return [
10
+ {
11
+ label: "表单所属业务",
12
+ ele: "xd-radio",
13
+ valueKey: "formBe",
14
+ value: data['formBe'] || '1',
15
+ groupKey:'content',
16
+ list: [
17
+ { label: "加盟商营销", value: "1"},
18
+ { label: 'saas系统', value: '2'}
19
+ ]
20
+ },
21
+ {
22
+ label: '表单提交成功跳转路径:',
23
+ groupKey:'advanced',
24
+ className: 'input100',
25
+ ele: 'xd-select-pages-path',
26
+ valueKey: 'submitPagePath',
27
+ value: data['submitPagePath'] || null,
28
+ setting: {
29
+ router: XdBus.getParentApi('getPagesTree')
30
+ },
31
+ },
32
+ ].filter(i=>i)
33
+ },
34
+ advanced: [],
35
+ };