jufubao-base 1.0.267 → 1.0.269-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.
@@ -0,0 +1,221 @@
1
+ <template>
2
+ <view class="xd-deduct-sort">
3
+ <view class="sort_header">
4
+ <view class="sort_title">优先支付管理</view>
5
+ <view @click="handleClose">
6
+ <xd-font-icon icon="iconguanbi" :size="40"></xd-font-icon>
7
+ </view>
8
+ </view>
9
+ <view class="drag_header">
10
+ <view>将按以下顺序支付</view>
11
+ <!-- #ifdef H5 -->
12
+ <view>长按拖动</view>
13
+ <!-- #endif -->
14
+ </view>
15
+
16
+
17
+ <!-- #ifdef MP-WEIXIN -->
18
+ <view class="deduct_item" v-for="(item, i) in uiList" :key="item.pay_method">
19
+ <view class="deduct_title">
20
+ <view class="t_l">
21
+ <view style="padding: 20rpx;" @click.stop="setItemExpand(item)">
22
+ <xd-font-icon :icon="item.expand ? 'iconzhankai-shang' : 'iconzhankai-xia'" color="#FFFFFF" :size="40"></xd-font-icon>
23
+ </view>
24
+ {{ item.pay_method_name }}
25
+ </view>
26
+ <view class="mp_arrow">
27
+ <view style="padding:20rpx;margin-right: 20rpx;" @click="moveParent(i, 'up', item)">
28
+ <xd-font-icon icon='iconrepository-xialaxuanxiangup' :size="28"
29
+ ></xd-font-icon>
30
+ </view>
31
+ <view style="padding:20rpx;" @click="moveParent(i, 'down', item)">
32
+ <xd-font-icon icon='iconrepository-xialaxuanxiangdown' :size="28"
33
+ ></xd-font-icon>
34
+ </view>
35
+ </view>
36
+ </view>
37
+ <view class="deduct_list" v-show="item.expand">
38
+ <view class="deduct_in_item" v-for="(sub, ii) in item.options" :key="sub.value">
39
+ <view class="in_label">
40
+ {{ sub.label }}
41
+ </view>
42
+ <view class="mp_arrow">
43
+ <view style="padding:20rpx;margin-right: 20rpx;" @click="moveSub(i, ii, 'up', sub)">
44
+ <xd-font-icon icon='iconrepository-xialaxuanxiangup' :size="28"
45
+ ></xd-font-icon>
46
+ </view>
47
+ <view style="padding:20rpx;" @click="moveSub(i, ii, 'down', sub)">
48
+ <xd-font-icon icon='iconrepository-xialaxuanxiangdown' :size="28"
49
+ ></xd-font-icon>
50
+ </view>
51
+ </view>
52
+ </view>
53
+ </view>
54
+ </view>
55
+ <!-- #endif -->
56
+
57
+ <!-- #ifdef H5 -->
58
+ <draggable
59
+ v-model="uiList"
60
+ @input="inputList"
61
+ v-bind="{
62
+ handle: '.t_l'
63
+ }"
64
+ >
65
+ <view class="deduct_item" v-for="item in uiList" :key="item.id">
66
+ <view class="deduct_title">
67
+ <view class="t_l">
68
+ <view>{{ item.pay_method_name }}</view>
69
+ <xd-font-icon icon='iconyidong' style="margin-right: 60rpx;"></xd-font-icon>
70
+ </view>
71
+ </view>
72
+ </view>
73
+ </draggable>
74
+ <!-- #endif -->
75
+ </view>
76
+ </template>
77
+
78
+ <script>
79
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
80
+ // #ifdef H5
81
+ import draggable from "vuedraggable";
82
+ // #endif
83
+ export default {
84
+ components: {
85
+ XdFontIcon,
86
+ // #ifdef H5
87
+ draggable,
88
+ // #endif
89
+ },
90
+ props: {
91
+ list: Array,
92
+ },
93
+ data() {
94
+ return {
95
+ uiList: [],
96
+ };
97
+ },
98
+ created() {
99
+ this.uiList = this.list;
100
+ },
101
+ methods: {
102
+ handleClose(){
103
+ this.$emit("onClose")
104
+ },
105
+ inputList(val) {
106
+ this.$emit("onChange", this.uiList);
107
+ },
108
+ setItemExpand(item){
109
+ this.$set(item, 'expand', !item.expand)
110
+ },
111
+ moveParent(index, type, item){
112
+ console.log(item, index, type)
113
+ if(type === 'up'){
114
+ if(index === 0){
115
+ return;
116
+ }else{
117
+ let temp = this.uiList[index];
118
+ this.$set(this.uiList, index, this.uiList[index - 1]);
119
+ this.$set(this.uiList, index - 1, temp);
120
+ }
121
+ }else if(type === 'down'){
122
+ if(index === this.uiList.length - 1){
123
+ return;
124
+ }else{
125
+ let temp = this.uiList[index];
126
+ this.$set(this.uiList, index, this.uiList[index + 1]);
127
+ this.$set(this.uiList, index + 1, temp);
128
+ }
129
+ }
130
+
131
+ this.inputList();
132
+ },
133
+ moveSub(pIndex, sIndex, type, ssssub){
134
+ console.log(ssssub, sIndex, type, 'sssssub')
135
+ if(type === 'up'){
136
+ if(sIndex === 0){
137
+ return;
138
+ }else{
139
+ let temp = this.uiList[pIndex].options[sIndex];
140
+ this.$set(this.uiList[pIndex].options, sIndex, this.uiList[pIndex].options[sIndex - 1]);
141
+ this.$set(this.uiList[pIndex].options, sIndex - 1, temp);
142
+ }
143
+ }else if(type === 'down'){
144
+ if(sIndex === this.uiList[pIndex].options.length - 1){
145
+ return;
146
+ }else{
147
+ let temp = this.uiList[pIndex].options[sIndex];
148
+ this.$set(this.uiList[pIndex].options, sIndex, this.uiList[pIndex].options[sIndex + 1]);
149
+ this.$set(this.uiList[pIndex].options, sIndex + 1, temp);
150
+ }
151
+ }
152
+ this.inputList();
153
+ }
154
+ }
155
+ };
156
+ </script>
157
+
158
+ <style lang="less" scoped>
159
+ .xd-deduct-sort{
160
+ .sort_header{
161
+ display: flex;
162
+ align-items: center;
163
+ justify-content: space-between;
164
+ padding: 36rpx 40rpx;
165
+ font-size: 32rpx;
166
+ color: #333333;
167
+ }
168
+ .drag_header{
169
+ display: flex;
170
+ align-items: center;
171
+ justify-content: space-between;
172
+ padding: 24rpx 40rpx;
173
+ font-size: 24rpx;
174
+ color: #999999;
175
+ background-color: #F7F7F7;
176
+ }
177
+ .deduct_item{
178
+ font-size: 28rpx;
179
+ .deduct_title{
180
+ height: 88rpx;
181
+ display: flex;
182
+ align-items: center;
183
+ justify-content: space-between;
184
+ background-color: #F7F7F7;
185
+ color: #333333;
186
+ padding: 0 0rpx 0 60rpx;
187
+
188
+ .t_l{
189
+ display: flex;
190
+ align-items: center;
191
+ flex: 1;
192
+ // #ifdef H5
193
+ justify-content: space-between;
194
+ // #endif
195
+ }
196
+ .mp_arrow{
197
+ display: flex;
198
+ flex-direction: row;
199
+ margin-right: 16rpx;
200
+ }
201
+ }
202
+ .deduct_in_item{
203
+ height: 88rpx;
204
+ display: flex;
205
+ align-items: center;
206
+ justify-content: space-between;
207
+ background-color: #FFF1E3;
208
+ color: #FF8D1A;
209
+ padding: 0 0 0 80rpx;
210
+ .in_label{
211
+ flex: 1;
212
+ }
213
+ .mp_arrow{
214
+ display: flex;
215
+ flex-direction: row;
216
+ margin-right: 16rpx;
217
+ }
218
+ }
219
+ }
220
+ }
221
+ </style>
@@ -0,0 +1,242 @@
1
+ <template>
2
+ <view class="chose_shop_list">
3
+ <view class="chose_location">
4
+ <view class="title">请确认所在门店</view>
5
+ <view class="city_name" @click="handleCityChange">
6
+ <xd-city-show
7
+ city-location-type="baidu"
8
+ @done="handleCityDone"
9
+ color="#FFFFFF">
10
+ </xd-city-show>
11
+ <xd-font-icon icon="iconxia_down" :size="26" color="#FFFFFF"></xd-font-icon>
12
+ </view>
13
+ </view>
14
+ <view class="shop_list" v-if="list && list.length">
15
+ <view
16
+ class="shop_item"
17
+ v-for="(item,i) in list"
18
+ :key="item.shop_id"
19
+ @click="$emit('onChose', item)"
20
+ >
21
+ <view class="shop_image">
22
+ <image :src="item.shop_icon" />
23
+ </view>
24
+ <view class="shop_info">
25
+ <view class="shop_name">
26
+ <view class="_name">{{ item.resource_shop_name }}</view>
27
+ <view class="distance" v-if='item.distance'>{{ item.distance }}</view>
28
+ </view>
29
+ <view class='shop_addr'>{{ item.address }}</view>
30
+ </view>
31
+ </view>
32
+ <view class='chose_other' @click='toChoseOther'>
33
+ 选择其他门店 <xd-font-icon icon='iconxiangyou_xian' :size='24' color="#666666" style='margin: 2px 0 0 4px;'></xd-font-icon>
34
+ </view>
35
+ </view>
36
+ <view v-else class="empty_data">
37
+ <xd-no-data icon-type="shop" height="100%">附近暂无推荐门店</xd-no-data>
38
+ </view>
39
+ </view>
40
+ </template>
41
+ <script>
42
+ import XdCityShow from "@/components/XdCityShowApi/XdCityShowApi"
43
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon"
44
+ import XdNoData from "@/components/XdNoData/XdNoData"
45
+ import getServiceUrl from "@/common/getServiceUrl";
46
+ import { mapState } from 'vuex';
47
+ export default {
48
+ // #ifdef MP-WEIXIN
49
+ options: { styleIsolation: 'shared' },
50
+ // #endif
51
+ components: {
52
+ XdCityShow,
53
+ XdFontIcon,
54
+ XdNoData
55
+ },
56
+ props: {
57
+ getCityInfoByLocation: {
58
+ type: Function
59
+ },
60
+ getList: {
61
+ type: Function
62
+ }
63
+ },
64
+ data(){
65
+ return {
66
+ list: [],
67
+ city: null,
68
+ keyword: '',
69
+ timer: null,
70
+ }
71
+ },
72
+ computed: {
73
+ ...mapState({
74
+ stateCity: state => state.cityLocation.city,
75
+ stateLocation: state => state.cityLocation.location || {},
76
+ }),
77
+ },
78
+ created(){
79
+ this.p_getList();
80
+ },
81
+ methods: {
82
+ p_getList(){
83
+ let data = {
84
+ city_code: this.stateCity.city_code,
85
+ page_token: 1,
86
+ page_size: 2,
87
+ }
88
+ this.getList(data).then(list => {
89
+ console.log(list, 'this.getList')
90
+ this.list = list.map(item => {
91
+ item.shop_icon = getServiceUrl(item.shop_icon);
92
+ return item;
93
+ });
94
+ });
95
+ },
96
+ handleInput(e){
97
+ if(this.timer) clearTimeout(this.timer);
98
+ this.timer = setTimeout(()=>{
99
+ this.$emit('on-search', e.detail.value)
100
+ },500)
101
+ },
102
+
103
+ /***
104
+ * @description 定位完成事件
105
+ * @param city
106
+ */
107
+ handleCityDone(city) {
108
+ if((this.city && this.city.city_code) == city.city_code) return false;
109
+ this.city = city;
110
+ this.$emit('handleCityDone', city)
111
+ },
112
+
113
+ handleCityChange() {
114
+ this.$emit("handleCityChange");
115
+ },
116
+ toChoseOther(){
117
+ this.$emit('toChoseOther')
118
+ },
119
+ }
120
+ }
121
+ </script>
122
+
123
+ <style lang="less" scoped>
124
+ .chose_shop_list{
125
+ background: #F7F7F7;
126
+ position: relative;
127
+ // height: calc(60vh - 164rpx);
128
+ }
129
+
130
+ .chose_location{
131
+ display: flex;
132
+ align-items: center;
133
+ justify-content: space-between;
134
+ color: #999999;
135
+ background: #FFFFFF;
136
+ padding: 20rpx 40rpx;
137
+ border-radius: 16rpx 16rpx 0 0;
138
+ border-bottom: 1px solid #DDD;
139
+
140
+ .title{
141
+ font-size: 32rpx;
142
+ color: #333;
143
+ font-weight: 500;
144
+ }
145
+ .city_name{
146
+ padding-right: 24rpx;
147
+ display: flex;
148
+ align-items: center;
149
+ background-color: #333333;
150
+ border-radius: 40rpx;
151
+
152
+ ::v-deep .xd-city__name-icon{
153
+ display: none;
154
+ }
155
+ }
156
+ }
157
+ .switch_city{
158
+ display: flex;
159
+ align-items: center;
160
+ font-size: 28rpx;
161
+ }
162
+ .empty_data{
163
+ height: calc(60vh - 164rpx);
164
+ }
165
+ .shop_list{
166
+ padding: 32rpx;
167
+ height: calc(60vh - 164rpx);
168
+ overflow-y: auto;
169
+ background: #F7F7F7;
170
+ position: relative;
171
+ .chose_other{
172
+ display: flex;
173
+ justify-content: center;
174
+ align-items: center;
175
+ color: #666666;
176
+ font-size: 24rpx;
177
+ height: 60rpx;
178
+ position: absolute;
179
+ bottom: 40rpx;
180
+ width: 100%;
181
+ box-sizing: border-box;
182
+ left: 0;
183
+ }
184
+ .shop_item{
185
+ display: flex;
186
+ background: #FFFFFF;
187
+ padding: 20rpx;
188
+ margin-bottom: 20rpx;
189
+ }
190
+ .shop_image{
191
+ width: 200rpx;
192
+ height: 200rpx;
193
+ background: #fefefe;
194
+ border-radius: 20rpx;
195
+ overflow: hidden;
196
+ image{
197
+ width: 100%;
198
+ height: 100%;
199
+ }
200
+ }
201
+ .shop_info{
202
+ display: flex;
203
+ flex-direction: column;
204
+ width: 200rpx;
205
+ flex: 1;
206
+ margin-left: 24rpx;
207
+ .shop_addr{
208
+ color: #999999;
209
+ font-size: 24rpx;
210
+ }
211
+ }
212
+ .shop_name{
213
+ display: flex;
214
+ align-items: flex-start;
215
+ justify-content: space-between;
216
+ font-size: 32rpx;
217
+ color: #242424;
218
+ height: 120rpx;
219
+ ._name{
220
+ flex: 1;
221
+ width: 200rpx;
222
+ .uni-break-word()
223
+ }
224
+ .distance{
225
+ color: #666666;
226
+ padding: 4rpx 0;
227
+ font-size: 24rpx;
228
+ }
229
+ }
230
+ .shop_sub{
231
+ display: flex;
232
+ color: #999999;
233
+ font-size: 24rpx;
234
+ margin-top: 20rpx;
235
+ line-height: 1.6;
236
+ ._icon{
237
+ width: 40rpx;
238
+ line-height: 1;
239
+ }
240
+ }
241
+ }
242
+ </style>
@@ -605,6 +605,11 @@ export default {
605
605
  },
606
606
 
607
607
  onJfbLoad(options) {
608
+ // T3634 通过二维码进入体验模式
609
+ if(options.preview_code || options.experience_code){
610
+ this.previewAccout = options.preview_code || options.experience_code;
611
+ this.dialogPreview = true;
612
+ }
608
613
  if(options['x-share']){
609
614
  let decodeParams = Base64.decode(options['x-share']);
610
615
  try{
@@ -25,6 +25,7 @@
25
25
  <view class="jfb-base-personal-data__body-item-label">名称</view>
26
26
  <!--#ifdef MP-->
27
27
  <input
28
+ style="width: 100%;"
28
29
  @change="handleWxSetInfo"
29
30
  class="jfb-base-personal-data__body-item-value"
30
31
  v-model="info.nickname"
@@ -33,6 +34,7 @@
33
34
  <!-- #endif -->
34
35
  <!--#ifdef H5-->
35
36
  <input
37
+ style="width: 100%;"
36
38
  @blur="handleSetInfo"
37
39
  @confirm="handleSetInfo"
38
40
  class="jfb-base-personal-data__body-item-value"
@@ -51,6 +53,8 @@
51
53
  :defaultValue="info.sex"
52
54
  v-model="info.sex"
53
55
  :list="sexList"
56
+ width="100%"
57
+ justifyContent="flex-end"
54
58
  >
55
59
  <template>
56
60
  <view class="jfb-base-personal-data__body-item-value">
@@ -66,7 +70,7 @@
66
70
  </view>
67
71
  <view class="jfb-base-personal-data__body-item">
68
72
  <view class="jfb-base-personal-data__body-item-label">生日</view>
69
- <view style="display: flex;align-items: center" @click="showDate=true">
73
+ <view style="display: flex;align-items: center;width: 100%;justify-content: flex-end;" @click="showDate=true">
70
74
  <view class="jfb-base-personal-data__body-item-value">{{info.birthday_date}}</view>
71
75
  <XdFontIcon class="icon" color="#999999" size="24" icon="iconxiangyou_xian"></XdFontIcon>
72
76
  </view>
@@ -239,6 +243,7 @@
239
243
  &-label {
240
244
  color: #333;
241
245
  font-size: 28rpx;
246
+ width: 100rpx;
242
247
  }
243
248
 
244
249
  &-value {
@@ -375,6 +375,17 @@ export default {
375
375
  notice: '在使用非通屏显示类型广告位之外的样式时,<span style="color: red">(显示索引+标题|显示索引)</span>使用"<span style="color: red">显示圆点</span>"',
376
376
  inline: false,
377
377
  },
378
+ {
379
+ label: "广告位前后项露出一部分:",
380
+ ele: "xd-radio",
381
+ valueKey: "nearbyMargin",
382
+ value: params['nearbyMargin'] || "N",
383
+ list: [
384
+ { label: "不显示", value: "N"},
385
+ { label: "显示", value: "Y"}
386
+ ],
387
+ groupKey: 'content',
388
+ },
378
389
  (params.poster && params.poster['type'] && params.poster['type'] !== '1') && params['isCarousel'] === 2 && {
379
390
  label: '广告位内容显示行数:',
380
391
  ele: 'xd-radio',