jufubao-base 1.0.256-beta2 → 1.0.257-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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-base",
3
- "version": "1.0.256-beta2",
3
+ "version": "1.0.257-beta1",
4
4
  "private": false,
5
5
  "description": "聚福宝业务组件基础插件包",
6
6
  "main": "index.js",
@@ -506,6 +506,19 @@ export default {
506
506
  },
507
507
  inline: false,
508
508
  },
509
+ {
510
+ label: '查看服务进度路径:',
511
+ ele: 'xd-select-pages-path',
512
+ valueKey: 'serviceStepPath',
513
+ groupKey:'advanced',
514
+ placeholder: '查看服务进度路径',
515
+ value: data['serviceStepPath'] || null,
516
+ setting: {
517
+ router: XdBus.getParentApi('getPagesTree'),
518
+ },
519
+ inline: false,
520
+ },
521
+
509
522
 
510
523
  // 废弃 - 隐藏
511
524
  {
@@ -889,6 +889,7 @@ export default {
889
889
  codeSrc: "",
890
890
  packageListPath: "", //包裹列表路径
891
891
  payPath: "", //支付路径
892
+ serviceStepPath: "", //服务进度路径
892
893
  // logisticsPath: "", //物流详情路径
893
894
  webViewPath: "", //容器路径
894
895
  viewStatus: "", //业务类型预览
@@ -1250,7 +1251,7 @@ export default {
1250
1251
  this.brandPath = getContainerPropsValue(container, "content.brandPath", {value: "",}).value;
1251
1252
  this.payPath = getContainerPropsValue(container, "content.payPath", {value: "",}).value;
1252
1253
 
1253
-
1254
+ this.serviceStepPath = getContainerPropsValue(container, "content.serviceStepPath", { value: "" }).value;
1254
1255
  this.packageListPath = getContainerPropsValue(container, "content.packageListPath", { value: "" }).value;
1255
1256
  this.webViewPath = getContainerPropsValue(container, "content.webViewPath", {value: "",}).value;
1256
1257
  this.margin = getContainerPropsValue(container, "content.margin", {top: 0, left: 0, right: 0, bottom: 0,});
@@ -1436,6 +1437,11 @@ export default {
1436
1437
  },
1437
1438
  });
1438
1439
  }
1440
+ else if(item.action === 'service_process_list'){
1441
+ this.$xdUniHelper.navigateTo({
1442
+ url: `${this.serviceStepPath}?main_order_id=${this.main_order_id}`,
1443
+ });
1444
+ }
1439
1445
  else {
1440
1446
  console.error(`item.action=${item.action}, 此action不可用`)
1441
1447
  }
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+ /**
3
+ * @description 接口配置,
4
+ * 在设置方法名字当时候,别忘记加上【模块名字】:Order
5
+ * @type {*[]}
6
+ */
7
+ module.exports = [
8
+ {
9
+ mapFnName: 'getServiceProcess',
10
+ title: '获取服务单进度',
11
+ path: '/order/v1/service-process',
12
+ isRule: false,
13
+ params: {
14
+ main_order_id: ['main_order_id', 'String', '必选'],
15
+ },
16
+ isConsole: true,
17
+ disabled: true,
18
+ },
19
+ ];
@@ -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,153 @@
1
+ <template>
2
+ <view
3
+ class="jfb-base-order-service-step"
4
+ @click="handleEditxSelect"
5
+ :class="{ editx : isEditx && active }"
6
+ >
7
+ <!--#ifdef H5-->
8
+ <view
9
+ class="jfb-base-order-service-step__edit"
10
+ :class="{ editx : isEditx && active }"
11
+ v-if="isEditx && active"
12
+ >
13
+ <view class="jfb-base-order-service-step__edit-icon" @click="delEdit">删除</view>
14
+ </view>
15
+ <!-- #endif -->
16
+ <view class="jfb-base-order-service-step__body" :style=[bodyWrapStyle]>
17
+ <view class="steps_box">
18
+ <view class="order_id">渠道订单号:1231561561321321</view>
19
+ <view class="service_box">
20
+ <view class="mtb40">服务进度</view>
21
+ <uni-steps :options="list" active-color="#007AFF" :active="active" direction="column" />
22
+ </view>
23
+ </view>
24
+ </view>
25
+ </view>
26
+ </template>
27
+
28
+ <script>
29
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
30
+ import UniSteps from "./uni-steps.vue"
31
+ import { jfbRootExec } from "@/utils/xd.event";
32
+ import JfbBaseOrderServiceStepMixin from "./JfbBaseOrderServiceStepMixin";
33
+ import { getContainerPropsValue } from "@/utils/xd.base";
34
+ import componentsMixins from "@/mixins/componentsMixins";
35
+ import extsMixins from "@/mixins/extsMixins";
36
+ export default {
37
+ name: "JfbBaseOrderServiceStep",
38
+ components: {
39
+ XdFontIcon,
40
+ UniSteps
41
+ },
42
+ mixins: [
43
+ componentsMixins, extsMixins, JfbBaseOrderServiceStepMixin
44
+ ],
45
+ data() {
46
+ return {
47
+ main_order_id: "",
48
+ active: 2,
49
+ list: []
50
+ //todo
51
+ }
52
+ },
53
+ computed: {
54
+ bodyWrapStyle(){
55
+ return {
56
+ minHeight: this.layoutInfo.bodyMinHeightRpx + 'rpx',
57
+ }
58
+ }
59
+ },
60
+ watch: {
61
+ container(value, oldValue) {
62
+ if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
63
+ if (this.$configProject['isPreview']) this.init(value)
64
+ },
65
+ },
66
+ created() {
67
+ this.init(this.container);
68
+
69
+ //todo
70
+ },
71
+ methods: {
72
+ onJfbLoad(options) {
73
+ this.main_order_id = options.main_order_id;
74
+ this.p_getServiceProcess();
75
+ },
76
+ /**
77
+ * @description 监听事件变化
78
+ * @param container {object} 业务组件对象自己
79
+ */
80
+ init(container) {
81
+ //this.bgcolor = getContainerPropsValue(container, 'content.bgcolor', '#fff');
82
+ //this.height = getContainerPropsValue(container, 'content.height', 10);
83
+ },
84
+ p_getServiceProcess(){
85
+ jfbRootExec("getServiceProcess", {
86
+ vm: this,
87
+ data: {
88
+ main_order_id: this.main_order_id
89
+ }
90
+ }).then(res => {
91
+ this.list = res.list.map(item => {
92
+ item.title = item.process_desc;
93
+ item.desc = item.process_desc;
94
+ item.time = this.$xdUniHelper.getDate(
95
+ item.process_time * 1000
96
+ ).fullTime;
97
+ return item;
98
+ });
99
+ this.active = res.list.length - 1;
100
+ })
101
+ },
102
+ onJfbScroll(options) {
103
+ // console.log('event.onJfbScroll', options)
104
+ },
105
+ onJfbReachBottom(options) {
106
+ console.log('event.onJfbReachBottom', options)
107
+ },
108
+ onJfbShow(options) {
109
+ console.log('event.onJfbShow', options)
110
+ },
111
+ onJfbHide(options) {
112
+ console.log('event.onJfbHide', options)
113
+ },
114
+ onJfbBack(options) {
115
+ console.log('event.onJfbBack', options)
116
+ },
117
+ onJfbUpdate(...data) {
118
+ console.log('event.onJfbUpdate', data)
119
+ },
120
+ onJfbCustomEvent(options) {
121
+ console.log('event.onJfbReachBottom', options)
122
+ },
123
+ }
124
+ }
125
+
126
+ </script>
127
+
128
+ <style scoped lang="less">
129
+ @import "./JfbBaseOrderServiceStepLess.less";
130
+
131
+ .jfb-base-order-service-step {
132
+ &__body{
133
+ padding: 40rpx;
134
+ .steps_box{
135
+ border: 1px solid #E5E5E5;
136
+ border-radius: 16rpx;
137
+ padding: 40rpx;
138
+ background: #FFFFFF;
139
+
140
+ .order_id{
141
+ font-size: 36rpx;
142
+ color: #777777;
143
+ }
144
+
145
+ .mtb40{
146
+ margin-top: 60rpx;
147
+ margin-bottom: 60rpx;
148
+ }
149
+
150
+ }
151
+ }
152
+ }
153
+ </style>
@@ -0,0 +1,79 @@
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-order-service-step {
16
+ box-sizing: border-box;
17
+
18
+ &__body{
19
+ position: relative;
20
+ overflow: hidden;
21
+ z-index: 2
22
+ }
23
+
24
+ &.editx,&.editx:hover {
25
+ position: relative;
26
+ min-height: unit(100, rpx);
27
+ z-index: 3;
28
+ &::after {
29
+ border: 2rpx dashed blue;
30
+ content: " ";
31
+ position: absolute;
32
+ top:0;
33
+ left:0;
34
+ bottom:0;
35
+ right:0;
36
+ z-index: 4;
37
+ cursor: pointer;
38
+ }
39
+
40
+ }
41
+
42
+
43
+ &__edit {
44
+ cursor: pointer;
45
+ position: absolute;
46
+ right: unit(0, rpx);
47
+ top: unit(-52, rpx);
48
+ height: unit(50, rpx);
49
+ line-height: unit(50, rpx);
50
+ display: flex;
51
+ justify-content: center;
52
+ align-items: center;
53
+ background: rgba(0, 0, 0, .6);
54
+ border-radius: unit(10, rpx);
55
+ box-shadow: 0 0 10px rbga(0, 0, 0, 0.3);
56
+ color: #fff;
57
+ font-size: unit(22, rpx);
58
+
59
+ &-icon{
60
+ padding: 0 unit(20, rpx);
61
+ }
62
+
63
+ &.editx {
64
+ box-sizing: border-box;
65
+
66
+ }
67
+ }
68
+ }
69
+ //end
70
+
71
+
72
+ /**notPreview**/
73
+ .jfb-base-order-service-step {
74
+ //&:before {
75
+ //content: " ";
76
+ //display: table;
77
+ //}
78
+ }
79
+ /**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-order-service-step'
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
+ getServiceProcess: {"total_size":1,"next_page_token":"","list":[{"id":1,"process_desc":"洗护服务单-配送中","process_time":1749541227}],"channel_order_id":"20250610154015710702","request_id":"98b5a154fd1c60c1"}
5
+ }
@@ -0,0 +1,285 @@
1
+ <template>
2
+ <view class="uni-steps">
3
+ <view :class="[direction==='column'?'uni-steps__column':'uni-steps__row']">
4
+ <view :class="[direction==='column'?'uni-steps__column-text-container':'uni-steps__row-text-container']">
5
+ <view v-for="(item,index) in options" :key="index"
6
+ :class="[direction==='column'?'uni-steps__column-text':'uni-steps__row-text']">
7
+ <text :style="{
8
+ color:index < active?activeColor:(index == active ? '#333' :deactiveColor)
9
+ }"
10
+ :class="[direction==='column'?'uni-steps__column-title':'uni-steps__row-title']">{{item.title}}</text>
11
+ <text :style="{
12
+ color:index < active?activeColor:(index == active ? '#333' :deactiveColor)
13
+ }"
14
+ :class="[direction==='column'?'uni-steps__column-desc':'uni-steps__row-desc']">{{item.desc}}</text>
15
+ <text class="uni-steps__column-time">{{ item.time }}</text>
16
+ </view>
17
+ </view>
18
+ <view :class="[direction==='column'?'uni-steps__column-container':'uni-steps__row-container']">
19
+ <view :class="[direction==='column'?'uni-steps__column-line-item':'uni-steps__row-line-item']"
20
+ v-for="(item,index) in options" :key="index">
21
+ <view
22
+ :class="[direction==='column'?'uni-steps__column-line':'uni-steps__row-line',direction==='column'?'uni-steps__column-line--before':'uni-steps__row-line--before']"
23
+ :style="{backgroundColor:index<=active&&index!==0?activeColor:index===0?'transparent':deactiveColor}">
24
+ </view>
25
+ <view :class="[direction==='column'?'uni-steps__column-circle':'uni-steps__row-check']"
26
+ v-if="index === active">
27
+ {{ index + 1}}
28
+ </view>
29
+ <view v-else :class="[direction==='column'?'uni-steps__column-circle':'uni-steps__row-circle']"
30
+ :style="{
31
+ borderColor: index<active?activeColor:deactiveColor,
32
+ color: index<active?activeColor:deactiveColor
33
+ }">{{ index + 1}}</view>
34
+ <view
35
+ :class="[direction==='column'?'uni-steps__column-line':'uni-steps__row-line',direction==='column'?'uni-steps__column-line--after':'uni-steps__row-line--after']"
36
+ :style="{backgroundColor:index<active&&index!==options.length-1?activeColor:index===options.length-1?'transparent':deactiveColor}">
37
+ </view>
38
+ </view>
39
+ </view>
40
+ </view>
41
+ </view>
42
+ </template>
43
+
44
+ <script>
45
+ /**
46
+ * Steps 步骤条
47
+ * @description 评分组件
48
+ * @tutorial https://ext.dcloud.net.cn/plugin?id=34
49
+ * @property {Number} active 当前步骤
50
+ * @property {String} direction = [row|column] 当前步骤
51
+ * @value row 横向
52
+ * @value column 纵向
53
+ * @property {String} activeColor 选中状态的颜色
54
+ * @property {Array} options 数据源,格式为:[{title:'xxx',desc:'xxx'},{title:'xxx',desc:'xxx'}]
55
+ */
56
+
57
+ export default {
58
+ name: 'UniSteps',
59
+ props: {
60
+ direction: {
61
+ // 排列方向 row column
62
+ type: String,
63
+ default: 'row'
64
+ },
65
+ activeColor: {
66
+ // 激活状态颜色
67
+ type: String,
68
+ default: '#2979FF'
69
+ },
70
+ deactiveColor: {
71
+ // 未激活状态颜色
72
+ type: String,
73
+ default: '#B7BDC6'
74
+ },
75
+ active: {
76
+ // 当前步骤
77
+ type: Number,
78
+ default: 0
79
+ },
80
+ activeIcon: {
81
+ // 当前步骤
82
+ type: String,
83
+ default: 'checkbox-filled'
84
+ },
85
+ options: {
86
+ type: Array,
87
+ default () {
88
+ return []
89
+ }
90
+ } // 数据
91
+ },
92
+ data() {
93
+ return {}
94
+ }
95
+ }
96
+ </script>
97
+
98
+ <style lang="scss">
99
+ $uni-primary: #2979ff !default;
100
+ $uni-border-color:#EDEDED;
101
+ .uni-steps {
102
+ /* #ifndef APP-NVUE */
103
+ display: flex;
104
+ width: 100%;
105
+ /* #endif */
106
+ /* #ifdef APP-NVUE */
107
+ flex: 1;
108
+ /* #endif */
109
+ flex-direction: column;
110
+ }
111
+
112
+ .uni-steps__row {
113
+ /* #ifndef APP-NVUE */
114
+ display: flex;
115
+ /* #endif */
116
+ flex-direction: column;
117
+ }
118
+
119
+ .uni-steps__column {
120
+ /* #ifndef APP-NVUE */
121
+ display: flex;
122
+ /* #endif */
123
+ flex-direction: row-reverse;
124
+ }
125
+
126
+ .uni-steps__row-text-container {
127
+ /* #ifndef APP-NVUE */
128
+ display: flex;
129
+ /* #endif */
130
+ flex-direction: row;
131
+ align-items: flex-end;
132
+ margin-bottom: 8px;
133
+ }
134
+
135
+ .uni-steps__column-text-container {
136
+ /* #ifndef APP-NVUE */
137
+ display: flex;
138
+ /* #endif */
139
+ flex-direction: column;
140
+ flex: 1;
141
+ margin-left: 12rpx;
142
+ }
143
+
144
+ .uni-steps__row-text {
145
+ /* #ifndef APP-NVUE */
146
+ display: inline-flex;
147
+ /* #endif */
148
+ flex: 1;
149
+ flex-direction: column;
150
+ }
151
+
152
+ .uni-steps__column-text {
153
+ padding: 6px 0px;
154
+ /* #ifndef APP-NVUE */
155
+ display: flex;
156
+ /* #endif */
157
+ flex-direction: column;
158
+ }
159
+
160
+ .uni-steps__row-title {
161
+ font-size: 14px;
162
+ line-height: 16px;
163
+ text-align: center;
164
+ }
165
+
166
+ .uni-steps__column-title {
167
+ font-size: 14px;
168
+ text-align: left;
169
+ line-height: 18px;
170
+ color: #333;
171
+ }
172
+
173
+ .uni-steps__row-desc {
174
+ font-size: 12px;
175
+ line-height: 14px;
176
+ text-align: center;
177
+ }
178
+
179
+ .uni-steps__column-desc {
180
+ font-size: 12px;
181
+ text-align: left;
182
+ line-height: 18px;
183
+ margin-top: 10rpx;
184
+ }
185
+ .uni-steps__column-time{
186
+ font-size: 26rpx;
187
+ color: #999;
188
+ }
189
+
190
+ .uni-steps__row-container {
191
+ /* #ifndef APP-NVUE */
192
+ display: flex;
193
+ /* #endif */
194
+ flex-direction: row;
195
+ }
196
+
197
+ .uni-steps__column-container {
198
+ /* #ifndef APP-NVUE */
199
+ display: inline-flex;
200
+ /* #endif */
201
+ width: 30px;
202
+ flex-direction: column;
203
+ }
204
+
205
+ .uni-steps__row-line-item {
206
+ /* #ifndef APP-NVUE */
207
+ display: inline-flex;
208
+ /* #endif */
209
+ flex-direction: row;
210
+ flex: 1;
211
+ height: 14px;
212
+ line-height: 14px;
213
+ align-items: center;
214
+ justify-content: center;
215
+ }
216
+
217
+ .uni-steps__column-line-item {
218
+ /* #ifndef APP-NVUE */
219
+ display: flex;
220
+ /* #endif */
221
+ flex-direction: column;
222
+ flex: 1;
223
+ align-items: center;
224
+ justify-content: center;
225
+ }
226
+
227
+ .uni-steps__row-line {
228
+ flex: 1;
229
+ height: 1px;
230
+ background-color: #B7BDC6;
231
+ }
232
+
233
+ .uni-steps__column-line {
234
+ width: 1px;
235
+ background-color: #B7BDC6;
236
+ }
237
+
238
+ .uni-steps__row-line--after {
239
+ transform: translateX(1px);
240
+ }
241
+
242
+ .uni-steps__column-line--after {
243
+ flex: 1;
244
+ transform: translate(0px, 1px);
245
+ }
246
+
247
+ .uni-steps__row-line--before {
248
+ transform: translateX(-1px);
249
+ }
250
+
251
+ .uni-steps__column-line--before {
252
+ height: 6px;
253
+ transform: translate(0px, -13px);
254
+ }
255
+
256
+ .uni-steps__row-circle {
257
+ width: 5px;
258
+ height: 5px;
259
+ border-radius: 50%;
260
+ background-color: #B7BDC6;
261
+ margin: 0px 3px;
262
+ }
263
+
264
+ .uni-steps__column-circle {
265
+ width: 40rpx;
266
+ height: 40rpx;
267
+ font-size: 24rpx;
268
+ border-radius: 50%;
269
+ margin: 0px 0px 5px 0px;
270
+ display: flex;
271
+ justify-content: center;
272
+ align-items: center;
273
+ border: 1px solid #333333;
274
+ }
275
+
276
+ .uni-steps__row-check {
277
+ margin: 0px 6px;
278
+ }
279
+
280
+ .uni-steps__column-check {
281
+ height: 14px;
282
+ line-height: 14px;
283
+ margin: 2px 0px;
284
+ }
285
+ </style>