jufubao-base 1.0.117 → 1.0.119-beta2

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 (89) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseCard/Attr.js +380 -287
  3. package/src/components/JfbBaseCard/JfbBaseCard.vue +51 -2
  4. package/src/components/JfbBaseCardDetailEntry/JfbBaseCardDetailEntry.vue +95 -18
  5. package/src/components/JfbBaseCardEntry/JfbBaseCardEntry.vue +1 -1
  6. package/src/components/JfbBaseCardInfo/Attr.js +21 -0
  7. package/src/components/JfbBaseCardInfo/JfbBaseCardInfo.vue +40 -4
  8. package/src/components/JfbBaseCardInfoEntry/Attr.js +11 -0
  9. package/src/components/JfbBaseCardInfoEntry/JfbBaseCardInfoEntry.vue +33 -4
  10. package/src/components/JfbBaseCardMerge/JfbBaseCardMerge.vue +10 -9
  11. package/src/components/JfbBaseCardMergeEntry/JfbBaseCardMergeEntry.vue +10 -10
  12. package/src/components/JfbBaseConDialog/JfbBaseConDialog.vue +6 -1
  13. package/src/components/JfbBaseConFlashHome/Api.js +60 -0
  14. package/src/components/JfbBaseConFlashHome/Attr.js +129 -0
  15. package/src/components/JfbBaseConFlashHome/JfbBaseConFlashHome.vue +388 -0
  16. package/src/components/JfbBaseConFlashHome/JfbBaseConFlashHomeLess.less +80 -0
  17. package/src/components/JfbBaseConFlashHome/JfbBaseConFlashHomeMixin.js +30 -0
  18. package/src/components/JfbBaseConFlashHome/Mock.js +5 -0
  19. package/src/components/JfbBaseConFlashList/Api.js +60 -0
  20. package/src/components/JfbBaseConFlashList/Attr.js +117 -0
  21. package/src/components/JfbBaseConFlashList/JfbBaseConFlashList.vue +656 -0
  22. package/src/components/JfbBaseConFlashList/JfbBaseConFlashListLess.less +80 -0
  23. package/src/components/JfbBaseConFlashList/JfbBaseConFlashListMixin.js +30 -0
  24. package/src/components/JfbBaseConFlashList/Mock.js +5 -0
  25. package/src/components/JfbBaseConList/JfbBaseConList.vue +4 -2
  26. package/src/components/JfbBaseConPhone/Api.js +70 -0
  27. package/src/components/JfbBaseConPhone/Attr.js +10 -0
  28. package/src/components/JfbBaseConPhone/JfbBaseConPhone.vue +486 -0
  29. package/src/components/JfbBaseConPhone/JfbBaseConPhoneLess.less +80 -0
  30. package/src/components/JfbBaseConPhone/JfbBaseConPhoneMixin.js +30 -0
  31. package/src/components/JfbBaseConPhone/Mock.js +26 -0
  32. package/src/components/JfbBaseMySetting/Api.js +43 -0
  33. package/src/components/JfbBaseMySetting/Attr.js +23 -0
  34. package/src/components/JfbBaseMySetting/JfbBaseMySetting.vue +236 -0
  35. package/src/components/JfbBaseMySetting/JfbBaseMySettingLess.less +80 -0
  36. package/src/components/JfbBaseMySetting/JfbBaseMySettingMixin.js +30 -0
  37. package/src/components/JfbBaseMySetting/Mock.js +5 -0
  38. package/src/components/JfbBaseMySetting/XdListItem.vue +135 -0
  39. package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +33 -8
  40. package/src/components/JfbBasePhoneCollect/JfbBasePhoneCollect.vue +1 -1
  41. package/src/components/JfbBaseSaasBlessDetail/Api.js +59 -0
  42. package/src/components/JfbBaseSaasBlessDetail/Attr.js +24 -0
  43. package/src/components/JfbBaseSaasBlessDetail/JfbBaseSaasBlessDetail.vue +315 -0
  44. package/src/components/JfbBaseSaasBlessDetail/JfbBaseSaasBlessDetailLess.less +80 -0
  45. package/src/components/JfbBaseSaasBlessDetail/JfbBaseSaasBlessDetailMixin.js +30 -0
  46. package/src/components/JfbBaseSaasBlessDetail/Mock.js +5 -0
  47. package/src/components/JfbBaseSaasBlessDialog/Api.js +25 -0
  48. package/src/components/JfbBaseSaasBlessDialog/Attr.js +50 -0
  49. package/src/components/JfbBaseSaasBlessDialog/JfbBaseSaasBlessDialog.vue +274 -0
  50. package/src/components/JfbBaseSaasBlessDialog/JfbBaseSaasBlessDialogLess.less +80 -0
  51. package/src/components/JfbBaseSaasBlessDialog/JfbBaseSaasBlessDialogMixin.js +30 -0
  52. package/src/components/JfbBaseSaasBlessDialog/Mock.js +5 -0
  53. package/src/components/JfbBaseSaasBlessReceive/Api.js +25 -0
  54. package/src/components/JfbBaseSaasBlessReceive/Attr.js +24 -0
  55. package/src/components/JfbBaseSaasBlessReceive/JfbBaseSaasBlessReceive.vue +183 -0
  56. package/src/components/JfbBaseSaasBlessReceive/JfbBaseSaasBlessReceiveLess.less +80 -0
  57. package/src/components/JfbBaseSaasBlessReceive/JfbBaseSaasBlessReceiveMixin.js +30 -0
  58. package/src/components/JfbBaseSaasBlessReceive/Mock.js +5 -0
  59. package/src/components/JfbBaseSaasHome/Api.js +48 -0
  60. package/src/components/JfbBaseSaasHome/Attr.js +35 -0
  61. package/src/components/JfbBaseSaasHome/JfbBaseSaasHome.vue +356 -0
  62. package/src/components/JfbBaseSaasHome/JfbBaseSaasHomeLess.less +80 -0
  63. package/src/components/JfbBaseSaasHome/JfbBaseSaasHomeMixin.js +30 -0
  64. package/src/components/JfbBaseSaasHome/Mock.js +5 -0
  65. package/src/components/JfbBaseSaasLogin/Api.js +39 -0
  66. package/src/components/JfbBaseSaasLogin/Attr.js +37 -0
  67. package/src/components/JfbBaseSaasLogin/JfbBaseSaasLogin.vue +410 -0
  68. package/src/components/JfbBaseSaasLogin/JfbBaseSaasLoginLess.less +80 -0
  69. package/src/components/JfbBaseSaasLogin/JfbBaseSaasLoginMixin.js +30 -0
  70. package/src/components/JfbBaseSaasLogin/Mock.js +5 -0
  71. package/src/components/JfbBaseSaasNewsDetail/Api.js +27 -0
  72. package/src/components/JfbBaseSaasNewsDetail/Attr.js +14 -0
  73. package/src/components/JfbBaseSaasNewsDetail/JfbBaseSaasNewsDetail.vue +144 -0
  74. package/src/components/JfbBaseSaasNewsDetail/JfbBaseSaasNewsDetailLess.less +80 -0
  75. package/src/components/JfbBaseSaasNewsDetail/JfbBaseSaasNewsDetailMixin.js +30 -0
  76. package/src/components/JfbBaseSaasNewsDetail/Mock.js +5 -0
  77. package/src/components/JfbBaseSaasNewsList/Api.js +26 -0
  78. package/src/components/JfbBaseSaasNewsList/Attr.js +24 -0
  79. package/src/components/JfbBaseSaasNewsList/JfbBaseSaasNewsList.vue +181 -0
  80. package/src/components/JfbBaseSaasNewsList/JfbBaseSaasNewsListLess.less +80 -0
  81. package/src/components/JfbBaseSaasNewsList/JfbBaseSaasNewsListMixin.js +30 -0
  82. package/src/components/JfbBaseSaasNewsList/Mock.js +5 -0
  83. package/src/components/JfbBaseSassPhoneCollect/Api.js +39 -0
  84. package/src/components/JfbBaseSassPhoneCollect/Attr.js +438 -0
  85. package/src/components/JfbBaseSassPhoneCollect/JfbBaseSassPhoneCollect.vue +266 -0
  86. package/src/components/JfbBaseSassPhoneCollect/JfbBaseSassPhoneCollectLess.less +80 -0
  87. package/src/components/JfbBaseSassPhoneCollect/JfbBaseSassPhoneCollectMixin.js +30 -0
  88. package/src/components/JfbBaseSassPhoneCollect/Mock.js +5 -0
  89. package/src/components/JfbBaseSuccess/JfbBaseSuccess.vue +34 -8
@@ -0,0 +1,410 @@
1
+ <template>
2
+ <view
3
+ class="jfb-base-saas-login"
4
+ @click="handleEditxSelect"
5
+ :class="{ editx : isEditx && active }"
6
+ >
7
+ <!--#ifdef H5-->
8
+ <view
9
+ class="jfb-base-saas-login__edit"
10
+ :class="{ editx : isEditx && active }"
11
+ v-if="isEditx && active"
12
+ >
13
+ <view class="jfb-base-saas-login__edit-icon" @click="delEdit">删除</view>
14
+ </view>
15
+ <!-- #endif -->
16
+ <view class="jfb-base-saas-login__body" :style="{
17
+ minHeight: layoutInfo.bodyMinHeightPx + 'px'
18
+ }">
19
+ <view class="login_form_wrap">
20
+ <xd-form
21
+ label-width="130"
22
+ label-align="right"
23
+ content-align="left"
24
+ :border="true"
25
+ paddingBetween="40"
26
+ >
27
+ <xd-form-item class="form-item"
28
+ label="手机号"
29
+ content-align="left"
30
+ >
31
+ <xd-form-input
32
+ v-model="accountForm.phone_number"
33
+ placeholder="请输入11位手机号"
34
+ />
35
+ </xd-form-item>
36
+ <xd-form-item
37
+ label="验证码"
38
+ content-align="left"
39
+ >
40
+ <view class="flex align-center">
41
+ <xd-form-input
42
+ v-model="accountForm.verification_code"
43
+ placeholder="请输入验证码"
44
+ />
45
+ <view
46
+ class="get_code"
47
+ @click="reGetCode"
48
+ :style="{ color: mainColor }"
49
+ >{{ time ? time + "秒后获取" : "获取验证码" }}
50
+ </view>
51
+ </view>
52
+ </xd-form-item>
53
+ <!-- <xd-form-item
54
+ label="密码"
55
+ content-align="left"
56
+ >
57
+ <xd-form-input
58
+ type="password"
59
+ v-model="accountForm.password"
60
+ placeholder="请输入密码"
61
+ />
62
+ </xd-form-item> -->
63
+ </xd-form>
64
+
65
+ <view class="form-group" style="padding-bottom:0">
66
+ <xd-form-checkbox
67
+ class="xd-form-checkbox"
68
+ v-model="panel_2_checked"
69
+ mode="default"
70
+ multiple
71
+ :localdata="[{ value: 1, text: '登录即同意《隐私政策》《用户服务协议》' },]"
72
+ >
73
+ <template slot="a1">
74
+ <view>
75
+ <text>请阅读并同意</text>
76
+ <text @click.stop="handlePrivacy('privacy_privacy')" :style="{color: mainColor}">《隐私政策》</text>
77
+ <text @click.stop="handlePrivacy('privacy_service')" :style="{color: mainColor}">《用户服务协议》</text>
78
+ </view>
79
+ </template>
80
+ </xd-form-checkbox>
81
+ </view>
82
+ <view class="form-group">
83
+ <xd-button
84
+ style="flex: 1"
85
+ type="primary"
86
+ radius="10rpx"
87
+ :disabled="!panelTwoIsChecked"
88
+ @click="doLoginForm"
89
+ >登录</xd-button>
90
+ </view>
91
+ <!-- <view
92
+ class="forget_password"
93
+ @click="toValidPhone"
94
+ >忘记密码</view> -->
95
+ </view>
96
+ <view class="not_login">暂不登录,去逛逛</view>
97
+ <xd-dailog :show.sync="dialogShow" title="">
98
+ <view class="dia_title">您在多个企业任职<br/>请选择本次要访问的企业</view>
99
+ <view class="company_list">
100
+ <view class="company_item" v-for="(item, i) in companyList" :key="i" @click="toHome(item)">
101
+ <view class="_name">{{ item.company_name }}</view>
102
+ <xd-font-icon icon="iconxiangyou_xian" :size="30"></xd-font-icon>
103
+ </view>
104
+ </view>
105
+ <view slot="btn"></view>
106
+ </xd-dailog>
107
+ </view>
108
+ </view>
109
+ </template>
110
+
111
+ <script>
112
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
113
+ import XdButton from "@/components/XdButton/XdButton";
114
+ import XdFormCheckbox from "@/components/XdFormCheckbox/XdFormCheckbox";
115
+ import XdFormInput from "@/components/XdFormInput/XdFormInput";
116
+ import XdForm from "@/components/XdForm/XdForm";
117
+ import XdFormItem from "@/components/XdFormItem/XdFormItem";
118
+ import XdDailog from "@/components/XdDailog/XdDailog"
119
+ import { jfbRootExec } from "@/utils/xd.event";
120
+ import JfbBaseSaasLoginMixin from "./JfbBaseSaasLoginMixin";
121
+ import { getContainerPropsValue } from "@/utils/xd.base";
122
+ import componentsMixins from "@/mixins/componentsMixins";
123
+ import extsMixins from "@/mixins/extsMixins";
124
+ export default {
125
+ name: "JfbBaseSaasLogin",
126
+ components: {
127
+ XdFontIcon,
128
+ XdButton,
129
+ XdFormCheckbox,
130
+ XdFormInput,
131
+ XdForm,
132
+ XdFormItem,
133
+ XdDailog
134
+ },
135
+ mixins: [
136
+ componentsMixins, extsMixins, JfbBaseSaasLoginMixin
137
+ ],
138
+ computed: {
139
+ panelTwoIsChecked() {
140
+ return this.panel_2_checked.includes(1);
141
+ },
142
+ },
143
+ data() {
144
+ return {
145
+ accountForm: {
146
+ phone_number: "",
147
+ password: "",
148
+ verification_code: ""
149
+ },
150
+ time: 0,
151
+ panel_2_checked: "",
152
+ redirect_url: "", //401回跳地址
153
+ dialogShow: false,
154
+ companyList: [],
155
+
156
+ //面板
157
+ callback_url: "", //面板配置登录完跳转地址
158
+ forget_pwd_url: "", //忘记密码跳转地址
159
+ }
160
+ },
161
+ watch: {
162
+ container(value) {
163
+ this.init(value)
164
+ }
165
+ },
166
+ created() {
167
+ this.init(this.container);
168
+ },
169
+ methods: {
170
+ onJfbLoad(options) {
171
+ this.redirect_url = options.redirect_url ? Base64.decode(options.redirect_url): '';
172
+ },
173
+ /**
174
+ * @description 监听事件变化
175
+ * @param container {object} 业务组件对象自己
176
+ */
177
+ init(container) {
178
+ this.callback_url = getContainerPropsValue(container, "content.callback_url", {value: ''}).value;
179
+ this.forget_pwd_url = getContainerPropsValue(container, "content.forget_pwd_url", {value: ''}).value;
180
+ },
181
+ doLoginForm() {
182
+ const { phone_number, password, verification_code } = this.accountForm;
183
+ let err_tip = "";
184
+ if (!phone_number) err_tip = "手机号不能为空";
185
+ else if (!verification_code) err_tip = "验证码不能为空";
186
+ if (err_tip) {
187
+ return uni.showToast({
188
+ title: err_tip,
189
+ icon: "none",
190
+ });
191
+ }
192
+
193
+ this.$xdShowLoading({})
194
+ jfbRootExec("sassLogin", {
195
+ vm: this,
196
+ data: {
197
+ biz_name: "login",
198
+ phone_number: phone_number,
199
+ valid_code: verification_code,
200
+ },
201
+ })
202
+ .then((res) => {
203
+ this.$xdHideLoading()
204
+ // this.jfbAuthorize.setAllToken(res);
205
+ // this.toHomeAfterLogin();
206
+ if(res.list.length === 0){
207
+ uni.showToast({
208
+ title: '该用户没有所属企业',
209
+ duration: 2000
210
+ });
211
+ }
212
+ else if(res.list.length > 1){
213
+ this.companyList = res.list;
214
+ this.dialogShow = true;
215
+ }else{
216
+ this.toHome(res.list[0])
217
+ }
218
+ })
219
+ .catch(error => {
220
+ this.$xdHideLoading()
221
+ this.$xdLog.catch(error)
222
+ });
223
+ },
224
+ toHome(item){
225
+ this.$xdUniHelper.redirectTo({
226
+ url: `/apply/main/saas/home?company_id=${item.company_id}`
227
+ });
228
+ // this.toHomeAfterLogin();
229
+ },
230
+ toHomeAfterLogin() {
231
+ let { redirect_url, callback_url } = this;
232
+ if (redirect_url) redirect_url = redirect_url;
233
+ this.$xdUniHelper.redirectTo({
234
+ url: redirect_url || callback_url || this.settings.index,
235
+ });
236
+ },
237
+ //跳转忘记密码
238
+ toValidPhone() {
239
+ this.$xdUniHelper.navigateTo({
240
+ url: this.forget_pwd_url,
241
+ });
242
+ },
243
+ handlePrivacy(code){
244
+ let params = `page_id=${this.pageAttr["page_id"]}`;
245
+ params = `${params}&container_id=${this.containerId}${code}`;
246
+ this.$xdUniHelper.navigateTo({
247
+ url: `/pages/content/content?${params}`
248
+ })
249
+ },
250
+ reGetCode() {
251
+ if (this.time > 0) return;
252
+ const { phone_number } = this.accountForm;
253
+ if (!/^1[3-9]\d{9}$/.test(phone_number)) {
254
+ uni.showToast({
255
+ title: "请填写正确的手机号",
256
+ icon: "none",
257
+ });
258
+ return false;
259
+ }
260
+ this.$xdShowLoading({});
261
+ jfbRootExec("sendMsg", {
262
+ vm: this,
263
+ data: {
264
+ phone_number,
265
+ biz_name: "login",
266
+ },
267
+ }).then((res) => {
268
+ this.$xdHideLoading();
269
+ this.time = 120;
270
+ this.interval = setInterval(() => {
271
+ this.time--;
272
+ if (this.time === 0) {
273
+ clearTimeout(this.interval);
274
+ }
275
+ }, 1000);
276
+ }).catch((error) => {
277
+ this.$xdHideLoading();
278
+ console.error(error);
279
+ this.$xdLog.catch(error)
280
+ });
281
+ },
282
+ onJfbScroll(options) {
283
+
284
+ },
285
+ onJfbReachBottom(options) {
286
+ console.log('event.onJfbReachBottom', options)
287
+ },
288
+ onJfbShow(options) {
289
+ console.log('event.onJfbShow', options)
290
+ },
291
+ onJfbHide(options) {
292
+ console.log('event.onJfbHide', options)
293
+ },
294
+ onJfbBack(options) {
295
+ console.log('event.onJfbBack', options)
296
+ this.$xdUniHelper.navigateBack();
297
+ },
298
+ onJfbUpdate(...data) {
299
+ console.log('event.onJfbUpdate', data)
300
+ },
301
+ onJfbCustomEvent(options) {
302
+ console.log('event.onJfbReachBottom', options)
303
+ },
304
+ }
305
+ }
306
+
307
+ </script>
308
+
309
+ <style scoped lang="less">
310
+ @import "./JfbBaseSaasLoginLess.less";
311
+
312
+ .jfb-base-saas-login {
313
+ border: 1px dashed rgba(0, 0, 0, 0);
314
+ box-sizing: border-box;
315
+ &__body{
316
+ position: relative;
317
+ .dia_title{
318
+ color: #333333;
319
+ font-size: 32rpx;
320
+ font-weight: 500;
321
+ margin: 60rpx 0;
322
+ }
323
+ .company_list{
324
+ .company_item{
325
+ display: flex;
326
+ justify-content: space-between;
327
+ background: #FE7A63;
328
+ border-radius: 60rpx;
329
+ padding: 20rpx 48rpx;
330
+ color: #FFFFFF;
331
+ margin: 20rpx 0;
332
+ ._name{
333
+ flex: 1;
334
+ width: 100rpx;
335
+ overflow: hidden;
336
+ white-space: nowrap;
337
+ text-overflow: ellipsis;
338
+ }
339
+ }
340
+ }
341
+ .not_login{
342
+ position: absolute;
343
+ bottom: 200rpx;
344
+ text-align: center;
345
+ width: 100%;
346
+ color: #FE7A63;
347
+ font-size: 24rpx;
348
+ }
349
+ .xd-form-checkbox {
350
+ /deep/ .checklist-content .checklist-text {
351
+ font-size: 26rpx !important;
352
+ }
353
+ }
354
+ .xd-form-checkbox {
355
+ /deep/ .checklist-box {
356
+ margin: 0;
357
+ }
358
+ }
359
+ .xd-form-checkbox {
360
+ /deep/ .checklist-group {
361
+ justify-content: center;
362
+ }
363
+ }
364
+ .xd-form-checkbox {
365
+ /deep/ .checklist-text {
366
+ margin-left: unit(20,rpx) !important;
367
+ }
368
+ }
369
+
370
+ .form-group {
371
+ padding: 40rpx 70rpx;
372
+ }
373
+ .get_code {
374
+ color: @xd-base-color;
375
+ font-size: 24rpx;
376
+ margin-right: unit(20,rpx);
377
+ }
378
+ .form-item {
379
+ /deep/ .uni-forms-item {
380
+ padding-left: unit(30rpx) !important;
381
+ }
382
+ }
383
+ /deep/ .uni-forms-item__label {
384
+ .label-text {
385
+ font-size: 26rpx;
386
+ color: #a6a6a6;
387
+ }
388
+ }
389
+ /deep/ .uni-easyinput__placeholder-class {
390
+ font-size: 26rpx;
391
+ color: #d4d4d4;
392
+ }
393
+ .forget_password {
394
+ font-size: 24rpx;
395
+ color: #a6a6a6;
396
+ text-align: right;
397
+ margin: 20rpx 70rpx 0 0;
398
+ }
399
+ }
400
+ }
401
+ .flex {
402
+ display: flex;
403
+ }
404
+ .flex-sub {
405
+ flex: 1;
406
+ }
407
+ .align-center {
408
+ align-items: center;
409
+ }
410
+ </style>
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @desc 获取绝对路径完整地址
3
+ * @param @path
4
+ **/
5
+ //例如:https://image.jufubao.cn/20220501010108/image/bg/default_gonghui_bg.png
6
+ @basePath: 'business/';
7
+ @doMain: '//sandbox-img.jufubao.cn/';
8
+
9
+ .getBusinessImageUrl(@path, @size: 'size8') {
10
+ @url: "@{doMain}@{basePath}@{path}?x-oss-process=style/@{size}";
11
+ background-image: url(@url);
12
+ }
13
+
14
+ //start
15
+ .jfb-base-saas-login {
16
+ border: 1px dashed rgba(0, 0, 0, 0);
17
+ box-sizing: border-box;
18
+ min-height: unit(50, rpx);
19
+
20
+ &__body{
21
+ position: relative;
22
+ overflow: hidden;
23
+ z-index: 2
24
+ }
25
+
26
+ &.editx {
27
+ position: relative;
28
+ border: 1px dashed blue;
29
+ box-sizing: border-box;
30
+ z-index: 3
31
+
32
+ }
33
+
34
+ &:hover {
35
+ border: 1px dashed blue;
36
+ }
37
+
38
+ &.noBorder {
39
+ border-color: rgba(0,0,0,0);
40
+ border-width: 0;
41
+ }
42
+
43
+
44
+ &__edit {
45
+ cursor: pointer;
46
+ position: absolute;
47
+ right: unit(0, rpx);
48
+ top: unit(-52, rpx);
49
+ height: unit(50, rpx);
50
+ line-height: unit(50, rpx);
51
+ display: flex;
52
+ justify-content: center;
53
+ align-items: center;
54
+ background: rgba(0, 0, 0, .6);
55
+ border-radius: unit(10, rpx);
56
+ box-shadow: 0 0 10px rbga(0, 0, 0, 0.3);
57
+ color: #fff;
58
+ font-size: unit(22, rpx);
59
+
60
+ &-icon{
61
+ padding: 0 unit(20, rpx);
62
+ }
63
+
64
+ &.editx {
65
+ box-sizing: border-box;
66
+
67
+ }
68
+ }
69
+ }
70
+ //end
71
+
72
+
73
+ /**notPreview**/
74
+ .jfb-base-saas-login {
75
+ &:before {
76
+ content: " ";
77
+ display: table;
78
+ }
79
+ }
80
+ /**endNotPreview**/
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+
4
+ //@AttrImport
5
+ import Attr from "./Attr";
6
+ //@EndAttrImport
7
+
8
+
9
+ export default {
10
+ data() {
11
+ return {
12
+ //#ifdef H5
13
+
14
+ //@AttrData
15
+ Attr:{}, //对外开发编辑属性
16
+ //@EndAttrData
17
+
18
+ // #endif
19
+ cssRoot: 'jfb-base-saas-login'
20
+ }
21
+ },
22
+ created() {
23
+
24
+ //@AttrDataCreated
25
+ this.Attr = this.$xdUniHelper.customClone(Attr);
26
+ //@EndAttrDataCreated
27
+
28
+
29
+ },
30
+ }
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ aaaa: {}
5
+ }
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * @description API模型
5
+ * 建议:Ffff=>模块 Xxxx=>自定义名字
6
+ * 获取单记录(getByIdFfffXxxx)
7
+ * 获取列表记录(getByListFfffXxxx)
8
+ * 添加列表记录(addFfffXxxxx)
9
+ * 删除列表记录(removeFfffXxxxx|deleteFfffXxxx)
10
+ * 更新列表记录(updateFfffXxxxx)
11
+ * @type {*[]}
12
+ */
13
+ module.exports = [
14
+ {
15
+ mapFnName: 'getNewsDetail',
16
+ title: '获取新闻详情',
17
+ path: '/saas/v1/content_ad_news/item',
18
+ isRule: false,
19
+ params: {
20
+ id: ['id', 'String', true],
21
+ position_id: ['位置ID', 'String', '必选'],
22
+ scene: ['场景ad,news', 'String', '必选']
23
+ },
24
+ isConsole: true,
25
+ disabled: true,
26
+ },
27
+ ];
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * @description 当表单组件中有联动操作时候,使用方法进行返回
5
+ */
6
+ export default {
7
+ style: [],
8
+ content: (data) => {
9
+ return [
10
+
11
+ ].filter(i=>i)
12
+ },
13
+ advanced: [],
14
+ };
@@ -0,0 +1,144 @@
1
+ <template>
2
+ <view
3
+ class="jfb-base-saas-news-detail"
4
+ @click="handleEditxSelect"
5
+ :class="{ editx : isEditx && active }"
6
+ >
7
+ <!--#ifdef H5-->
8
+ <view
9
+ class="jfb-base-saas-news-detail__edit"
10
+ :class="{ editx : isEditx && active }"
11
+ v-if="isEditx && active"
12
+ >
13
+ <view class="jfb-base-saas-news-detail__edit-icon" @click="delEdit">删除</view>
14
+ </view>
15
+ <!-- #endif -->
16
+ <view class="jfb-base-saas-news-detail__body">
17
+ <view class="news_detail">
18
+ <view class="news_title">{{ info.title }}</view>
19
+ <view class="news_date">发布时间:{{ info.created_time }}</view>
20
+ <view class="news_cont" v-html="info.content"></view>
21
+ </view>
22
+ </view>
23
+ </view>
24
+ </template>
25
+
26
+ <script>
27
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
28
+ import { jfbRootExec } from "@/utils/xd.event";
29
+ import JfbBaseSaasNewsDetailMixin from "./JfbBaseSaasNewsDetailMixin";
30
+ import { getContainerPropsValue } from "@/utils/xd.base";
31
+ import componentsMixins from "@/mixins/componentsMixins";
32
+ import extsMixins from "@/mixins/extsMixins";
33
+ export default {
34
+ name: "JfbBaseSaasNewsDetail",
35
+ components: {
36
+ XdFontIcon
37
+ },
38
+ mixins: [
39
+ componentsMixins, extsMixins, JfbBaseSaasNewsDetailMixin
40
+ ],
41
+ data() {
42
+ return {
43
+ id: "",
44
+ info: {},
45
+ //todo
46
+ }
47
+ },
48
+ watch: {
49
+ container(value) {
50
+ this.init(value)
51
+ }
52
+ },
53
+ created() {
54
+ this.init(this.container);
55
+
56
+ //todo
57
+ },
58
+ methods: {
59
+ onJfbLoad(options) {
60
+ this.id = options.id;
61
+ this.p_getNewsDetail();
62
+ },
63
+ /**
64
+ * @description 监听事件变化
65
+ * @param container {object} 业务组件对象自己
66
+ */
67
+ init(container) {
68
+
69
+ //this.bgcolor = getContainerPropsValue(container, 'content.bgcolor', '#fff');
70
+ },
71
+ onJfbScroll(options) {
72
+
73
+ },
74
+ p_getNewsDetail(){
75
+ jfbRootExec("getNewsDetail", {
76
+ vm: this,
77
+ data: {
78
+ id: this.id,
79
+ position_id: "news",
80
+ scene: "news"
81
+ }
82
+ }).then(res => {
83
+ this.info = {
84
+ created_time: this.$xdUniHelper.getDate(
85
+ res["created_time"] * 1000
86
+ ).fullTime,
87
+ ...res
88
+ };
89
+ })
90
+ },
91
+ onJfbReachBottom(options) {
92
+ console.log('event.onJfbReachBottom', options)
93
+ },
94
+ onJfbShow(options) {
95
+ console.log('event.onJfbShow', options)
96
+ },
97
+ onJfbHide(options) {
98
+ console.log('event.onJfbHide', options)
99
+ },
100
+ onJfbBack(options) {
101
+ console.log('event.onJfbBack', options)
102
+ this.$xdUniHelper.navigateBack();
103
+ },
104
+ onJfbUpdate(...data) {
105
+ console.log('event.onJfbUpdate', data)
106
+ },
107
+ onJfbCustomEvent(options) {
108
+ console.log('event.onJfbReachBottom', options)
109
+ },
110
+ }
111
+ }
112
+
113
+ </script>
114
+
115
+ <style scoped lang="less">
116
+ @import "./JfbBaseSaasNewsDetailLess.less";
117
+
118
+ .jfb-base-saas-news-detail {
119
+ &__body{
120
+ background-color: #FFFFFF;
121
+ padding: 48rpx;
122
+ .news_detail{
123
+
124
+ .news_title{
125
+ color: #000000;
126
+ font-weight: 500;
127
+ font-size: 36rpx;
128
+ }
129
+ .news_date{
130
+ color: #A6A6A6;
131
+ font-size: 20rpx;
132
+ font-weight: 400;
133
+ margin-top: 32rpx;
134
+ }
135
+ .news_cont{
136
+ color: #000000;
137
+ font-size: 24rpx;
138
+ font-weight: 400;
139
+ margin-top: 56rpx;
140
+ }
141
+ }
142
+ }
143
+ }
144
+ </style>