jufubao-base 1.0.118 → 1.0.119-beta3

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 (75) hide show
  1. package/package.json +4 -3
  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 +0 -4
  5. package/src/components/JfbBaseConDialog/JfbBaseConDialog.vue +6 -1
  6. package/src/components/JfbBaseConFlashHome/Api.js +60 -0
  7. package/src/components/JfbBaseConFlashHome/Attr.js +129 -0
  8. package/src/components/JfbBaseConFlashHome/JfbBaseConFlashHome.vue +388 -0
  9. package/src/components/JfbBaseConFlashHome/JfbBaseConFlashHomeLess.less +80 -0
  10. package/src/components/JfbBaseConFlashHome/JfbBaseConFlashHomeMixin.js +30 -0
  11. package/src/components/JfbBaseConFlashHome/Mock.js +5 -0
  12. package/src/components/JfbBaseConFlashList/Api.js +60 -0
  13. package/src/components/JfbBaseConFlashList/Attr.js +117 -0
  14. package/src/components/JfbBaseConFlashList/JfbBaseConFlashList.vue +656 -0
  15. package/src/components/JfbBaseConFlashList/JfbBaseConFlashListLess.less +80 -0
  16. package/src/components/JfbBaseConFlashList/JfbBaseConFlashListMixin.js +30 -0
  17. package/src/components/JfbBaseConFlashList/Mock.js +5 -0
  18. package/src/components/JfbBaseConList/JfbBaseConList.vue +4 -2
  19. package/src/components/JfbBaseConPhone/Api.js +70 -0
  20. package/src/components/JfbBaseConPhone/Attr.js +10 -0
  21. package/src/components/JfbBaseConPhone/JfbBaseConPhone.vue +486 -0
  22. package/src/components/JfbBaseConPhone/JfbBaseConPhoneLess.less +80 -0
  23. package/src/components/JfbBaseConPhone/JfbBaseConPhoneMixin.js +30 -0
  24. package/src/components/JfbBaseConPhone/Mock.js +26 -0
  25. package/src/components/JfbBaseMySetting/JfbBaseMySetting.vue +2 -2
  26. package/src/components/JfbBasePhoneCollect/JfbBasePhoneCollect.vue +1 -1
  27. package/src/components/JfbBaseSaasBlessDetail/Api.js +59 -0
  28. package/src/components/JfbBaseSaasBlessDetail/Attr.js +24 -0
  29. package/src/components/JfbBaseSaasBlessDetail/JfbBaseSaasBlessDetail.vue +341 -0
  30. package/src/components/JfbBaseSaasBlessDetail/JfbBaseSaasBlessDetailLess.less +80 -0
  31. package/src/components/JfbBaseSaasBlessDetail/JfbBaseSaasBlessDetailMixin.js +30 -0
  32. package/src/components/JfbBaseSaasBlessDetail/Mock.js +5 -0
  33. package/src/components/JfbBaseSaasBlessDialog/Api.js +25 -0
  34. package/src/components/JfbBaseSaasBlessDialog/Attr.js +50 -0
  35. package/src/components/JfbBaseSaasBlessDialog/JfbBaseSaasBlessDialog.vue +309 -0
  36. package/src/components/JfbBaseSaasBlessDialog/JfbBaseSaasBlessDialogLess.less +80 -0
  37. package/src/components/JfbBaseSaasBlessDialog/JfbBaseSaasBlessDialogMixin.js +30 -0
  38. package/src/components/JfbBaseSaasBlessDialog/Mock.js +5 -0
  39. package/src/components/JfbBaseSaasBlessReceive/Api.js +25 -0
  40. package/src/components/JfbBaseSaasBlessReceive/Attr.js +24 -0
  41. package/src/components/JfbBaseSaasBlessReceive/JfbBaseSaasBlessReceive.vue +201 -0
  42. package/src/components/JfbBaseSaasBlessReceive/JfbBaseSaasBlessReceiveLess.less +80 -0
  43. package/src/components/JfbBaseSaasBlessReceive/JfbBaseSaasBlessReceiveMixin.js +30 -0
  44. package/src/components/JfbBaseSaasBlessReceive/Mock.js +5 -0
  45. package/src/components/JfbBaseSaasHome/Api.js +48 -0
  46. package/src/components/JfbBaseSaasHome/Attr.js +35 -0
  47. package/src/components/JfbBaseSaasHome/JfbBaseSaasHome.vue +402 -0
  48. package/src/components/JfbBaseSaasHome/JfbBaseSaasHomeLess.less +80 -0
  49. package/src/components/JfbBaseSaasHome/JfbBaseSaasHomeMixin.js +30 -0
  50. package/src/components/JfbBaseSaasHome/Mock.js +5 -0
  51. package/src/components/JfbBaseSaasLogin/Api.js +98 -0
  52. package/src/components/JfbBaseSaasLogin/Attr.js +59 -0
  53. package/src/components/JfbBaseSaasLogin/JfbBaseSaasLogin.vue +700 -0
  54. package/src/components/JfbBaseSaasLogin/JfbBaseSaasLoginLess.less +80 -0
  55. package/src/components/JfbBaseSaasLogin/JfbBaseSaasLoginMixin.js +30 -0
  56. package/src/components/JfbBaseSaasLogin/Mock.js +5 -0
  57. package/src/components/JfbBaseSaasLogin/saaslogin_copy.vue +410 -0
  58. package/src/components/JfbBaseSaasNewsDetail/Api.js +27 -0
  59. package/src/components/JfbBaseSaasNewsDetail/Attr.js +14 -0
  60. package/src/components/JfbBaseSaasNewsDetail/JfbBaseSaasNewsDetail.vue +144 -0
  61. package/src/components/JfbBaseSaasNewsDetail/JfbBaseSaasNewsDetailLess.less +80 -0
  62. package/src/components/JfbBaseSaasNewsDetail/JfbBaseSaasNewsDetailMixin.js +30 -0
  63. package/src/components/JfbBaseSaasNewsDetail/Mock.js +5 -0
  64. package/src/components/JfbBaseSaasNewsList/Api.js +26 -0
  65. package/src/components/JfbBaseSaasNewsList/Attr.js +24 -0
  66. package/src/components/JfbBaseSaasNewsList/JfbBaseSaasNewsList.vue +182 -0
  67. package/src/components/JfbBaseSaasNewsList/JfbBaseSaasNewsListLess.less +80 -0
  68. package/src/components/JfbBaseSaasNewsList/JfbBaseSaasNewsListMixin.js +30 -0
  69. package/src/components/JfbBaseSaasNewsList/Mock.js +5 -0
  70. package/src/components/JfbBaseSassPhoneCollect/Api.js +51 -0
  71. package/src/components/JfbBaseSassPhoneCollect/Attr.js +438 -0
  72. package/src/components/JfbBaseSassPhoneCollect/JfbBaseSassPhoneCollect.vue +266 -0
  73. package/src/components/JfbBaseSassPhoneCollect/JfbBaseSassPhoneCollectLess.less +80 -0
  74. package/src/components/JfbBaseSassPhoneCollect/JfbBaseSassPhoneCollectMixin.js +30 -0
  75. package/src/components/JfbBaseSassPhoneCollect/Mock.js +5 -0
@@ -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-bless-receive {
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-bless-receive {
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-bless-receive'
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,48 @@
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: 'getCompanyList',
16
+ title: '获取公司列表',
17
+ path: '/saas/v1/company/items',
18
+ isRule: false,
19
+ data: {
20
+ phone_number: ['手机号', 'String', '必选'],
21
+ },
22
+ isConsole: true,
23
+ disabled: true,
24
+ },
25
+ {
26
+ mapFnName: 'getHomeConfig',
27
+ title: '获取首页配置',
28
+ path: '/saas/v1/company_config/item',
29
+ isRule: false,
30
+ params: {
31
+ phone_number: ['手机号', 'String', '必选'],
32
+ },
33
+ isConsole: true,
34
+ disabled: true,
35
+ },
36
+ {
37
+ mapFnName: 'getNewsList',
38
+ title: '获取新闻列表',
39
+ path: '/saas/v1/content_ad_news/items',
40
+ isRule: false,
41
+ params: {
42
+ position_id: ['位置ID', 'String', '必选'],
43
+ scene: ['场景ad,news', 'String', '必选']
44
+ },
45
+ isConsole: true,
46
+ disabled: true,
47
+ },
48
+ ];
@@ -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: '新闻列表地址:', //label
12
+ ele: 'xd-select-pages-path', //package 名称
13
+ valueKey: 'newsListUrl', //form[valueKey]
14
+ placeholder: '请选择新闻列表地址',
15
+ value: null,
16
+ setting: {
17
+ router: XdBus.getParentApi('getPagesTree'),
18
+ },
19
+ inline: false,
20
+ },
21
+ {
22
+ label: '新闻详情地址:', //label
23
+ ele: 'xd-select-pages-path', //package 名称
24
+ valueKey: 'newsDetailUrl', //form[valueKey]
25
+ placeholder: '请选择新闻详情地址',
26
+ value: null,
27
+ setting: {
28
+ router: XdBus.getParentApi('getPagesTree'),
29
+ },
30
+ inline: false,
31
+ },
32
+ ].filter(i=>i)
33
+ },
34
+ advanced: [],
35
+ };
@@ -0,0 +1,402 @@
1
+ <template>
2
+ <view
3
+ class="jfb-base-saas-home"
4
+ @click="handleEditxSelect"
5
+ :class="{ editx : isEditx && active }"
6
+ >
7
+ <!--#ifdef H5-->
8
+ <view
9
+ class="jfb-base-saas-home__edit"
10
+ :class="{ editx : isEditx && active }"
11
+ v-if="isEditx && active"
12
+ >
13
+ <view class="jfb-base-saas-home__edit-icon" @click="delEdit">删除</view>
14
+ </view>
15
+ <!-- #endif -->
16
+ <view class="jfb-base-saas-home__body">
17
+ <view class="top_wrap">
18
+ <!-- <view class="comp_name">
19
+ <view>企业名称</view>
20
+ <xd-font-icon icon="iconxia_down" :size="24" style="margin-left: 16rpx;"></xd-font-icon>
21
+ </view> -->
22
+ </view>
23
+ <template v-for="(comp, i) in componentList">
24
+ <view class="banner" v-if="comp.container_key === 'banner' && bannerList.length" :key="i">
25
+ <swiper class="swiper" circular>
26
+ <swiper-item v-for="(item,i) in bannerList" :key="i">
27
+ <view class="swiper-item" @click="toBannerLink(item)">
28
+ <image :src="item.thumb" />
29
+ </view>
30
+ </swiper-item>
31
+ </swiper>
32
+ </view>
33
+
34
+ <view class="category" v-if="comp.container_key === 'menus'" :key="i">
35
+ <view class="cate_item" v-for="(cate, ii) in comp.config.items" :key="ii">
36
+ <view class="cate_img"><image :src="cate.menu_icon"/></view>
37
+ <view class="cate_name">{{ cate.menu_title }}</view>
38
+ </view>
39
+ </view>
40
+
41
+ <view class="notice" v-if="comp.container_key === 'notice' && noticeList.length" :key="i">
42
+ <!-- 公告:薄如蝉翼的金华火腿,每一口都是时间的味道 -->
43
+ <swiper vertical style="height: 40rpx;" autoplay>
44
+ <swiper-item v-for="(item,i) in noticeList" :key="i">
45
+ <view style="height: 40rpx;line-height: 40rpx;">{{ item.title }}</view>
46
+ </swiper-item>
47
+ </swiper>
48
+ </view>
49
+ <!-- <xd-notice-bar single scrollable></xd-notice-bar> -->
50
+
51
+ <view class="news_wrap" v-if="comp.container_key === 'news' && newsList.length" :key="i">
52
+ <view class="news_group">
53
+ <view class="group_header">
54
+ <view class="group_title">{{ comp.config.name }}</view>
55
+ <view class="group_more" @click="toNewsList('news')">
56
+ 查看更多
57
+ <xd-font-icon icon="iconxiangyou_xian" :size="24" style="margin-left: 16rpx;"></xd-font-icon>
58
+ </view>
59
+ </view>
60
+ <view class="group_body">
61
+ <view class="news_item" v-for="(news, i) in newsList" :key="i" @click="toNewsDetail(news.id)">
62
+ <view class="news_cont">
63
+ <view class="news_tit">{{ news.title }}</view>
64
+ <view class="news_date">{{ news.created_time }}</view>
65
+ </view>
66
+ <view class="news_img">
67
+ <image :src="news.thumb" />
68
+ </view>
69
+ </view>
70
+ </view>
71
+ </view>
72
+ </view>
73
+
74
+ <view class="news_wrap" v-if="comp.container_key === 'study' && studyList.length" :key="i">
75
+ <view class="news_group">
76
+ <view class="group_header">
77
+ <view class="group_title">{{ comp.config.name }}</view>
78
+ <view class="group_more" @click="toNewsList('study')">
79
+ 查看更多
80
+ <xd-font-icon icon="iconxiangyou_xian" :size="24" style="margin-left: 16rpx;"></xd-font-icon>
81
+ </view>
82
+ </view>
83
+ <view class="group_body">
84
+ <view class="news_item" v-for="(news, i) in studyList" :key="i" @click="toNewsDetail(news.id)">
85
+ <view class="news_cont">
86
+ <view class="news_tit">{{ news.title }}</view>
87
+ <view class="news_date">{{ news.created_time }}</view>
88
+ </view>
89
+ <view class="news_img">
90
+ <image :src="news.thumb" />
91
+ </view>
92
+ </view>
93
+ </view>
94
+ </view>
95
+ </view>
96
+
97
+ </template>
98
+ </view>
99
+ </view>
100
+ </template>
101
+
102
+ <script>
103
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
104
+ import { jfbRootExec, jfbRootFnExec } from "@/utils/xd.event";
105
+ import JfbBaseSaasHomeMixin from "./JfbBaseSaasHomeMixin";
106
+ import { getContainerPropsValue } from "@/utils/xd.base";
107
+ import componentsMixins from "@/mixins/componentsMixins";
108
+ import extsMixins from "@/mixins/extsMixins";
109
+ import getServiceUrl from "@/common/getServiceUrl";
110
+ import XdNoticeBar from "@/components/XdNoticeBar/XdNoticeBar"
111
+ export default {
112
+ name: "JfbBaseSaasHome",
113
+ components: {
114
+ XdFontIcon,
115
+ XdNoticeBar
116
+ },
117
+ mixins: [
118
+ componentsMixins, extsMixins, JfbBaseSaasHomeMixin
119
+ ],
120
+ data() {
121
+ return {
122
+ componentList: [], //组件列表
123
+ bannerList: [],
124
+ newsList: [],
125
+ noticeList: [],
126
+ studyList: [],
127
+
128
+ //面板
129
+ newsListUrl: "", //新闻列表url
130
+ newsDetailUrl: "", //新闻详情url
131
+ }
132
+ },
133
+ watch: {
134
+ container(value) {
135
+ this.init(value)
136
+ }
137
+ },
138
+ created() {
139
+ this.init(this.container);
140
+
141
+ //todo
142
+ },
143
+ methods: {
144
+ onJfbLoad(options) {
145
+ jfbRootExec("getHomeConfig", {
146
+ vm: this,
147
+ data: {}
148
+ }).then(res => {
149
+ let componentList = JSON.parse(res.index_config);
150
+ console.log(componentList);
151
+ this.componentList = componentList.filter(item => item.status === 'Y');
152
+
153
+ this.componentList.forEach((item,i) => {
154
+ switch (item.container_key) {
155
+ case "banner":
156
+ this.p_getNewsList("banner", "ad").then(res => {
157
+ this.bannerList = this.handleMapList(res.list);
158
+ })
159
+ break;
160
+ case "news":
161
+ this.p_getNewsList("news", "news").then(res => {
162
+ this.newsList = this.handleMapList(res.list);
163
+ })
164
+ break;
165
+ case "notice":
166
+ this.p_getNewsList("notice", "news").then(res => {
167
+ this.noticeList = res.list;
168
+ })
169
+ break;
170
+ case "study":
171
+ this.p_getNewsList("study", "news").then(res => {
172
+ this.studyList = this.handleMapList(res.list);
173
+ })
174
+ break;
175
+ case "is_pop":
176
+ if(item.status === 'Y'){
177
+ jfbRootFnExec(this, 'onCustomEvent')("@showBaseBlessDialog", {})
178
+ }
179
+ break;
180
+ }
181
+ })
182
+ })
183
+ },
184
+ /**
185
+ * @description 监听事件变化
186
+ * @param container {object} 业务组件对象自己
187
+ */
188
+ init(container) {
189
+ this.newsListUrl = getContainerPropsValue(container, 'content.newsListUrl', {value: "/main/saas/newsList"}).value;
190
+ this.newsDetailUrl = getContainerPropsValue(container, 'content.newsDetailUrl', {value: "/main/saas/newsDetail"}).value;
191
+ },
192
+ handleMapList(list){
193
+ return list.map(news => {
194
+ if(news.created_time){
195
+ news.created_time = this.$xdUniHelper.getDate(
196
+ news["created_time"] * 1000
197
+ ).fullTime;
198
+ }
199
+ if(news.thumb){
200
+ news.thumb = news.thumb ? getServiceUrl(news.thumb) : ""
201
+ }
202
+ return news;
203
+ })
204
+ },
205
+ p_getNewsList(position_id, scene){
206
+ return jfbRootExec("getNewsList", {
207
+ vm: this,
208
+ data: {
209
+ position_id: position_id,
210
+ scene: scene,
211
+ page_size: 10,
212
+ page_token: 1
213
+ }
214
+ })
215
+ },
216
+ toNewsList(position_id){
217
+ this.$xdUniHelper.navigateTo({
218
+ url: `${this.newsListUrl}?position_id=${position_id}`,
219
+ });
220
+ },
221
+ toNewsDetail(id){
222
+ this.$xdUniHelper.navigateTo({
223
+ url: `${this.newsDetailUrl}?id=${id}`,
224
+ });
225
+ },
226
+ toBannerLink(item){
227
+ this.$xdUniHelper.navigateTo({
228
+ url: `${item.jump_url}`,
229
+ });
230
+ },
231
+ onJfbScroll(options) {
232
+
233
+ },
234
+ onJfbReachBottom(options) {
235
+ console.log('event.onJfbReachBottom', options)
236
+ },
237
+ onJfbShow(options) {
238
+ console.log('event.onJfbShow', options)
239
+ },
240
+ onJfbHide(options) {
241
+ console.log('event.onJfbHide', options)
242
+ },
243
+ onJfbBack(options) {
244
+ console.log('event.onJfbBack', options)
245
+ this.$xdUniHelper.navigateBack();
246
+ },
247
+ onJfbUpdate(...data) {
248
+ console.log('event.onJfbUpdate', data)
249
+ },
250
+ onJfbCustomEvent(options) {
251
+ console.log('event.onJfbReachBottom', options)
252
+ },
253
+ }
254
+ }
255
+
256
+ </script>
257
+
258
+ <style scoped lang="less">
259
+ @import "./JfbBaseSaasHomeLess.less";
260
+
261
+ .jfb-base-saas-home {
262
+ &__body{
263
+ background: #F5F9FA;
264
+ .top_wrap{
265
+ .comp_name{
266
+ padding: 24rpx 36rpx;
267
+ font-size: 24rpx;
268
+ font-weight: 400;
269
+ color: #000000;
270
+ border-bottom: 1px solid #F0F0F0;
271
+ display: flex;
272
+ align-items: center;
273
+ }
274
+ }
275
+ .banner{
276
+ // padding: 20rpx;
277
+ .swiper{
278
+ height: 300rpx;
279
+ .swiper-item{
280
+ height: 300rpx;
281
+ background-color: red;
282
+ image{
283
+ width: 100%;
284
+ height: 100%;
285
+ }
286
+ }
287
+ }
288
+
289
+ }
290
+ .category{
291
+ display: flex;
292
+ justify-content: space-between;
293
+ padding: 40rpx;
294
+ background: #FFFFFF;
295
+ .cate_item{
296
+ .cate_img{
297
+ width: 100rpx;
298
+ height: 100rpx;
299
+ image{
300
+ width: 100%;
301
+ height: 100%;
302
+ }
303
+ }
304
+ .cate_name{
305
+ font-size: 24rpx;
306
+ color: #333333;
307
+ font-weight: 400;
308
+ margin-top: 16rpx;
309
+ text-align: center;
310
+ }
311
+ }
312
+ }
313
+ .notice{
314
+ background: #FFF2DE;
315
+ border-radius: 8rpx;
316
+ padding: 24rpx 40rpx;
317
+ color: #FF8D1A;
318
+ font-size: 24rpx;
319
+ margin: 20rpx;
320
+ }
321
+
322
+ .news_wrap{
323
+ padding: 0 20rpx;
324
+ margin: 20rpx 0;
325
+ }
326
+ .news_group{
327
+ background-color: #FFFFFF;
328
+ border-radius: 16rpx;
329
+ margin-bottom: 20rpx;
330
+ .group_header{
331
+ display: flex;
332
+ justify-content: space-between;
333
+ padding: 32rpx;
334
+ border-bottom: 1px solid #F0F0F0;
335
+ .group_title{
336
+ color: #333333;
337
+ font-size: 32rpx;
338
+ font-weight: 500;
339
+ padding-left: 24rpx;
340
+ position: relative;
341
+ &::before{
342
+ content: " ";
343
+ position: absolute;
344
+ width: 6rpx;
345
+ height: 28rpx;
346
+ background-color: #F3616E;
347
+ left: 0;
348
+ top: 50%;
349
+ transform: translateY(-50%);
350
+ border-radius: 6rpx;
351
+ }
352
+ }
353
+ .group_more{
354
+ display: flex;
355
+ font-size: 24rpx;
356
+ color: #999999;
357
+ align-items: center;
358
+ }
359
+ }
360
+ .group_body{
361
+ .news_item{
362
+ display: flex;
363
+ padding: 32rpx;
364
+ border-bottom: 1px solid #F0F0F0;
365
+ .news_cont{
366
+ flex: 1;
367
+ width: 400rpx;
368
+ font-weight: 400;
369
+ .news_tit{
370
+ font-size: 28rpx;
371
+ color: #333333;
372
+ height: 96rpx;
373
+ line-height: 48rpx;;
374
+ overflow: hidden;
375
+ text-overflow: ellipsis;
376
+ -webkit-line-clamp: 2;
377
+ display: -webkit-box;
378
+ -webkit-box-orient: vertical;
379
+ }
380
+ .news_date{
381
+ color: #999999;
382
+ font-size: 20rpx;
383
+ margin-top: 20rpx;
384
+ }
385
+ }
386
+
387
+ .news_img{
388
+ width: 190rpx;
389
+ height: 120rpx;
390
+ background-color: #333333;
391
+ margin-left: 60rpx;
392
+ image{
393
+ width: 100%;
394
+ height: 100%;
395
+ }
396
+ }
397
+ }
398
+ }
399
+ }
400
+ }
401
+ }
402
+ </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-home {
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-home {
75
+ &:before {
76
+ content: " ";
77
+ display: table;
78
+ }
79
+ }
80
+ /**endNotPreview**/