@uxda/appkit 1.2.40 → 1.2.44
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/dist/appkit.css
CHANGED
|
@@ -966,7 +966,7 @@ page {
|
|
|
966
966
|
}
|
|
967
967
|
.rights-card {
|
|
968
968
|
margin: 10px 15px 0px;
|
|
969
|
-
background: #
|
|
969
|
+
background: #fff8f3;
|
|
970
970
|
border-radius: 5px;
|
|
971
971
|
box-shadow: 0px 5px 18.9px 2px rgba(0, 0, 0, 0.0509803922);
|
|
972
972
|
padding: 15px 20px;
|
|
@@ -1010,7 +1010,7 @@ page {
|
|
|
1010
1010
|
background: -webkit-linear-gradient(262.82deg, #353535 10.04%, #433f46 90.21%);
|
|
1011
1011
|
background: linear-gradient(187.18deg, #353535 10.04%, #433f46 90.21%);
|
|
1012
1012
|
border-radius: 27rpx;
|
|
1013
|
-
color: #
|
|
1013
|
+
color: #e7caad;
|
|
1014
1014
|
font-size: 24rpx;
|
|
1015
1015
|
font-weight: 400;
|
|
1016
1016
|
margin-left: 40rpx;
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { defineComponent, reactive, resolveComponent, openBlock, createBlock, wi
|
|
|
2
2
|
import Taro, { useDidShow } from '@tarojs/taro';
|
|
3
3
|
import '@nutui/nutui-taro';
|
|
4
4
|
import dayjs from 'dayjs';
|
|
5
|
-
import
|
|
5
|
+
import groupBy from 'lodash/groupBy';
|
|
6
6
|
|
|
7
7
|
const _hoisted_1$n = { class: "token-line number" };
|
|
8
8
|
const _hoisted_2$j = { class: "number" };
|
|
@@ -2158,9 +2158,7 @@ var script$9 = /* @__PURE__ */ defineComponent({
|
|
|
2158
2158
|
const groups = consumptionGroups.value || [];
|
|
2159
2159
|
data.forEach((d) => {
|
|
2160
2160
|
const date = dayjs(d.time).format("YYYY-MM-DD");
|
|
2161
|
-
let group = groups.find(
|
|
2162
|
-
(g) => g.date === date
|
|
2163
|
-
);
|
|
2161
|
+
let group = groups.find((g) => g.date === date);
|
|
2164
2162
|
if (!group) {
|
|
2165
2163
|
group = {
|
|
2166
2164
|
date,
|
|
@@ -2204,7 +2202,7 @@ var script$9 = /* @__PURE__ */ defineComponent({
|
|
|
2204
2202
|
const { privileges, total } = data;
|
|
2205
2203
|
const filterData = {
|
|
2206
2204
|
total,
|
|
2207
|
-
privileges:
|
|
2205
|
+
privileges: groupBy(privileges, "appCode")
|
|
2208
2206
|
};
|
|
2209
2207
|
balance.value = filterData;
|
|
2210
2208
|
});
|
|
@@ -3818,7 +3816,8 @@ var script = /* @__PURE__ */ defineComponent({
|
|
|
3818
3816
|
const $http = useHttp();
|
|
3819
3817
|
$http.post("/cas/sysUser/checkLoginTimeRule", {
|
|
3820
3818
|
appCode: props.app || appkitOptions.app(),
|
|
3821
|
-
tenantId: appkitOptions.tenant()
|
|
3819
|
+
tenantId: appkitOptions.tenant(),
|
|
3820
|
+
device: "mini"
|
|
3822
3821
|
}).then((result) => {
|
|
3823
3822
|
if (result === true)
|
|
3824
3823
|
return;
|
package/package.json
CHANGED
|
@@ -32,13 +32,23 @@
|
|
|
32
32
|
<div class="rights-card" v-if="balance.privileges.corporateStar">
|
|
33
33
|
<div class="title">企明星权益</div>
|
|
34
34
|
<div class="list">
|
|
35
|
-
<div
|
|
36
|
-
|
|
35
|
+
<div
|
|
36
|
+
class="item star-item"
|
|
37
|
+
v-for="(item, index) in balance.privileges.corporateStar"
|
|
38
|
+
:key="index"
|
|
39
|
+
>
|
|
40
|
+
<div class="item-count">
|
|
41
|
+
<span>{{ item.count }}</span
|
|
42
|
+
><span>{{ item.unit }}</span>
|
|
43
|
+
</div>
|
|
37
44
|
<div class="item-title">
|
|
38
45
|
<div>{{ item.title }}</div>
|
|
39
|
-
<div class="item-title-button" v-if="item.id">
|
|
46
|
+
<div class="item-title-button" v-if="item.id">
|
|
40
47
|
<div @click="gotoTrade(item)">超值换购</div>
|
|
41
|
-
<img
|
|
48
|
+
<img
|
|
49
|
+
class="button-icon"
|
|
50
|
+
src="https://cdn.ddjf.com/static/images/bpms-workBench/button-hg.svg"
|
|
51
|
+
/>
|
|
42
52
|
</div>
|
|
43
53
|
</div>
|
|
44
54
|
</div>
|
|
@@ -54,7 +64,7 @@
|
|
|
54
64
|
</div>
|
|
55
65
|
</div>
|
|
56
66
|
</div>
|
|
57
|
-
</div>
|
|
67
|
+
</div>
|
|
58
68
|
<nut-popup
|
|
59
69
|
pop-class="consumption-rules-popup"
|
|
60
70
|
v-model:visible="rulesPopupOpen"
|
|
@@ -96,10 +106,7 @@
|
|
|
96
106
|
</nut-popup>
|
|
97
107
|
<app-drawer v-model="secondBalanceOpen" title="收支明细">
|
|
98
108
|
<div class="operation-box">
|
|
99
|
-
<div
|
|
100
|
-
class="operation-title spa-between"
|
|
101
|
-
:class="{ 'with-shadow': scrolled > 0 }"
|
|
102
|
-
>
|
|
109
|
+
<div class="operation-title spa-between" :class="{ 'with-shadow': scrolled > 0 }">
|
|
103
110
|
<div class="search-time">
|
|
104
111
|
<div class="title">收支明细</div>
|
|
105
112
|
<div class="time" @click="openDateFilter" v-show="filtering.dateFrom">
|
|
@@ -128,11 +135,7 @@
|
|
|
128
135
|
@scrolltolower="onReachBottom"
|
|
129
136
|
>
|
|
130
137
|
<div class="box" v-if="consumptionGroups.length > 0">
|
|
131
|
-
<div
|
|
132
|
-
class="box-detail"
|
|
133
|
-
v-for="(item, index) in consumptionGroups"
|
|
134
|
-
:key="index"
|
|
135
|
-
>
|
|
138
|
+
<div class="box-detail" v-for="(item, index) in consumptionGroups" :key="index">
|
|
136
139
|
<div class="title number">{{ item.date }}</div>
|
|
137
140
|
<div class="item" v-for="(it, i) in item.consumptions" :key="i">
|
|
138
141
|
<div class="item-type">
|
|
@@ -147,7 +150,7 @@
|
|
|
147
150
|
<div class="item-info-title">{{ it.title }}</div>
|
|
148
151
|
</div>
|
|
149
152
|
<div class="item-info-amount number">
|
|
150
|
-
{{ it.收入还是支出 ==
|
|
153
|
+
{{ it.收入还是支出 == '支出' ? '-' : '+' }}{{ it.amount }}
|
|
151
154
|
</div>
|
|
152
155
|
</div>
|
|
153
156
|
<div class="item-detail-remark">{{ it.description }}</div>
|
|
@@ -164,47 +167,47 @@
|
|
|
164
167
|
</template>
|
|
165
168
|
|
|
166
169
|
<script lang="ts" setup>
|
|
167
|
-
import Taro, { useDidShow } from
|
|
168
|
-
import { computed, onMounted, reactive, ref, watch } from
|
|
169
|
-
import { endpoints, useHttp } from
|
|
170
|
-
import { 账户流水筛选项, Balance, ConsumptionGroup, 账户流水 } from
|
|
171
|
-
import ConsumptionFilter from
|
|
172
|
-
import DateFilter from
|
|
173
|
-
import ConsumptionRules from
|
|
174
|
-
import { AppDrawer, PageHeader, WithPaging } from
|
|
175
|
-
import dayjs from
|
|
176
|
-
import EmptyView from
|
|
170
|
+
import Taro, { useDidShow } from '@tarojs/taro'
|
|
171
|
+
import { computed, onMounted, reactive, ref, watch } from 'vue'
|
|
172
|
+
import { endpoints, useHttp } from '../api'
|
|
173
|
+
import { 账户流水筛选项, Balance, ConsumptionGroup, 账户流水 } from '../types'
|
|
174
|
+
import ConsumptionFilter from './ConsumptionFilter.vue'
|
|
175
|
+
import DateFilter from './DateFilter.vue'
|
|
176
|
+
import ConsumptionRules from './ConsumptionRules.vue'
|
|
177
|
+
import { AppDrawer, PageHeader, WithPaging } from '../../shared'
|
|
178
|
+
import dayjs from 'dayjs'
|
|
179
|
+
import EmptyView from '../../shared/components/EmptyView.vue'
|
|
177
180
|
import Tip from './Tip.vue'
|
|
178
|
-
import
|
|
181
|
+
import groupBy from 'lodash/groupBy'
|
|
179
182
|
|
|
180
|
-
const refreshing = ref(false)
|
|
183
|
+
const refreshing = ref(false)
|
|
181
184
|
|
|
182
185
|
type AccountViewProps = {
|
|
183
|
-
app: string
|
|
184
|
-
}
|
|
186
|
+
app: string
|
|
187
|
+
}
|
|
185
188
|
const props = withDefaults(defineProps<AccountViewProps>(), {
|
|
186
|
-
app:
|
|
187
|
-
})
|
|
189
|
+
app: '',
|
|
190
|
+
})
|
|
188
191
|
|
|
189
|
-
const emit = defineEmits([
|
|
192
|
+
const emit = defineEmits(['recharge', 'trade'])
|
|
190
193
|
|
|
191
|
-
const filterOpen = ref<boolean>(false)
|
|
194
|
+
const filterOpen = ref<boolean>(false)
|
|
192
195
|
|
|
193
196
|
// 规则说明弹窗
|
|
194
|
-
const rulesPopupOpen = ref<boolean>(false)
|
|
197
|
+
const rulesPopupOpen = ref<boolean>(false)
|
|
195
198
|
|
|
196
199
|
const filtering = reactive<账户流水筛选项>({
|
|
197
|
-
账户类型:
|
|
198
|
-
收入还是支出:
|
|
199
|
-
交易类型:
|
|
200
|
-
权益类目:
|
|
201
|
-
dateFrom:
|
|
202
|
-
dateTo:
|
|
200
|
+
账户类型: '全部',
|
|
201
|
+
收入还是支出: '全部',
|
|
202
|
+
交易类型: '全部',
|
|
203
|
+
权益类目: '',
|
|
204
|
+
dateFrom: '',
|
|
205
|
+
dateTo: '',
|
|
203
206
|
page: 1,
|
|
204
207
|
pageSize: 20,
|
|
205
|
-
})
|
|
208
|
+
})
|
|
206
209
|
|
|
207
|
-
const reachedLastPage = ref<boolean>(false)
|
|
210
|
+
const reachedLastPage = ref<boolean>(false)
|
|
208
211
|
|
|
209
212
|
/**
|
|
210
213
|
* 全新搜索
|
|
@@ -212,25 +215,25 @@ const reachedLastPage = ref<boolean>(false);
|
|
|
212
215
|
*/
|
|
213
216
|
function restartSearch() {
|
|
214
217
|
// 从第一页开始
|
|
215
|
-
filtering.page = 1
|
|
216
|
-
consumptionGroups.value = []
|
|
217
|
-
loadConsumptions()
|
|
218
|
+
filtering.page = 1
|
|
219
|
+
consumptionGroups.value = []
|
|
220
|
+
loadConsumptions()
|
|
218
221
|
}
|
|
219
222
|
|
|
220
223
|
// 时间筛选
|
|
221
|
-
const datePickerOpen = ref<boolean>(false)
|
|
224
|
+
const datePickerOpen = ref<boolean>(false)
|
|
222
225
|
|
|
223
226
|
function openDateFilter() {
|
|
224
|
-
datePickerOpen.value = true
|
|
227
|
+
datePickerOpen.value = true
|
|
225
228
|
}
|
|
226
229
|
|
|
227
230
|
const dateRangeDisplay = computed(() => {
|
|
228
|
-
let startTime = filtering.dateFrom?.replace(/-/g,
|
|
229
|
-
let endTime = filtering.dateTo?.replace(/-/g,
|
|
230
|
-
return startTime +
|
|
231
|
-
})
|
|
231
|
+
let startTime = filtering.dateFrom?.replace(/-/g, '.').substring(2)
|
|
232
|
+
let endTime = filtering.dateTo?.replace(/-/g, '.').substring(2)
|
|
233
|
+
return startTime + ' - ' + endTime
|
|
234
|
+
})
|
|
232
235
|
|
|
233
|
-
const consumptionGroups = ref<ConsumptionGroup[]>([])
|
|
236
|
+
const consumptionGroups = ref<ConsumptionGroup[]>([])
|
|
234
237
|
|
|
235
238
|
/**
|
|
236
239
|
* 余额数据
|
|
@@ -238,39 +241,37 @@ const consumptionGroups = ref<ConsumptionGroup[]>([]);
|
|
|
238
241
|
const balance = ref<Balance>({
|
|
239
242
|
total: 0,
|
|
240
243
|
privileges: {},
|
|
241
|
-
})
|
|
244
|
+
})
|
|
242
245
|
|
|
243
246
|
useDidShow(() => {
|
|
244
247
|
Taro.setNavigationBarTitle({
|
|
245
|
-
title:
|
|
246
|
-
})
|
|
247
|
-
loadBalance()
|
|
248
|
-
})
|
|
248
|
+
title: '我的账户',
|
|
249
|
+
})
|
|
250
|
+
loadBalance()
|
|
251
|
+
})
|
|
249
252
|
|
|
250
253
|
function groupDataByDate(data: 账户流水[]): ConsumptionGroup[] {
|
|
251
254
|
// 按照日期分组
|
|
252
|
-
const groups: ConsumptionGroup[] = consumptionGroups.value || []
|
|
255
|
+
const groups: ConsumptionGroup[] = consumptionGroups.value || []
|
|
253
256
|
// [
|
|
254
257
|
// date: '2023-10-1',
|
|
255
258
|
// consumptions: []
|
|
256
259
|
// ]
|
|
257
260
|
// 组装成按日期分组
|
|
258
261
|
data.forEach((d) => {
|
|
259
|
-
const date = dayjs(d.time).format(
|
|
260
|
-
let group: ConsumptionGroup | undefined = groups.find(
|
|
261
|
-
(g) => g.date === date
|
|
262
|
-
);
|
|
262
|
+
const date = dayjs(d.time).format('YYYY-MM-DD')
|
|
263
|
+
let group: ConsumptionGroup | undefined = groups.find((g) => g.date === date)
|
|
263
264
|
if (!group) {
|
|
264
265
|
group = {
|
|
265
266
|
date,
|
|
266
267
|
consumptions: [],
|
|
267
|
-
}
|
|
268
|
-
groups.push(group)
|
|
268
|
+
}
|
|
269
|
+
groups.push(group)
|
|
269
270
|
}
|
|
270
|
-
group.consumptions.push(d)
|
|
271
|
-
})
|
|
272
|
-
groups.sort((a, b) => (a.date > b.date ? -1 : 1))
|
|
273
|
-
return groups
|
|
271
|
+
group.consumptions.push(d)
|
|
272
|
+
})
|
|
273
|
+
groups.sort((a, b) => (a.date > b.date ? -1 : 1))
|
|
274
|
+
return groups
|
|
274
275
|
}
|
|
275
276
|
|
|
276
277
|
/**
|
|
@@ -279,35 +280,35 @@ function groupDataByDate(data: 账户流水[]): ConsumptionGroup[] {
|
|
|
279
280
|
*/
|
|
280
281
|
async function loadConsumptions(append: boolean = false) {
|
|
281
282
|
if (!append) {
|
|
282
|
-
consumptionGroups.value = []
|
|
283
|
+
consumptionGroups.value = []
|
|
283
284
|
}
|
|
284
|
-
const $http = useHttp()
|
|
285
|
+
const $http = useHttp()
|
|
285
286
|
Taro.showLoading({
|
|
286
287
|
title: `加载中...`,
|
|
287
288
|
mask: true,
|
|
288
|
-
})
|
|
289
|
+
})
|
|
289
290
|
$http
|
|
290
291
|
.get<WithPaging<账户流水[]>>(endpoints.获取账户流水, {
|
|
291
292
|
app: props.app,
|
|
292
293
|
...filtering,
|
|
293
294
|
})
|
|
294
295
|
.then((response) => {
|
|
295
|
-
consumptionGroups.value = groupDataByDate(response.data)
|
|
296
|
+
consumptionGroups.value = groupDataByDate(response.data)
|
|
296
297
|
if (filtering.page >= response.totalPages) {
|
|
297
|
-
filtering.page = response.totalPages
|
|
298
|
-
reachedLastPage.value = true
|
|
298
|
+
filtering.page = response.totalPages
|
|
299
|
+
reachedLastPage.value = true
|
|
299
300
|
} else {
|
|
300
|
-
reachedLastPage.value = false
|
|
301
|
+
reachedLastPage.value = false
|
|
301
302
|
}
|
|
302
|
-
Taro.hideLoading()
|
|
303
|
-
})
|
|
303
|
+
Taro.hideLoading()
|
|
304
|
+
})
|
|
304
305
|
}
|
|
305
306
|
|
|
306
307
|
/**
|
|
307
308
|
* 获取账户余额明细
|
|
308
309
|
*/
|
|
309
310
|
async function loadBalance() {
|
|
310
|
-
const $http = useHttp()
|
|
311
|
+
const $http = useHttp()
|
|
311
312
|
$http
|
|
312
313
|
.get<Balance>(endpoints.获取余额明细, {
|
|
313
314
|
app: props.app,
|
|
@@ -316,63 +317,63 @@ async function loadBalance() {
|
|
|
316
317
|
const { privileges, total } = data
|
|
317
318
|
const filterData = {
|
|
318
319
|
total,
|
|
319
|
-
privileges:
|
|
320
|
+
privileges: groupBy(privileges, 'appCode'),
|
|
320
321
|
}
|
|
321
|
-
balance.value = filterData
|
|
322
|
-
})
|
|
322
|
+
balance.value = filterData
|
|
323
|
+
})
|
|
323
324
|
}
|
|
324
325
|
|
|
325
326
|
const onFilterComplete = (value) => {
|
|
326
|
-
filtering.账户类型 = value[0]
|
|
327
|
-
filtering.收入还是支出 = value[1]
|
|
328
|
-
filtering.交易类型 = value[2]
|
|
329
|
-
filtering.权益类目 = value[3]
|
|
330
|
-
filterOpen.value = false
|
|
331
|
-
restartSearch()
|
|
332
|
-
}
|
|
327
|
+
filtering.账户类型 = value[0]
|
|
328
|
+
filtering.收入还是支出 = value[1]
|
|
329
|
+
filtering.交易类型 = value[2]
|
|
330
|
+
filtering.权益类目 = value[3]
|
|
331
|
+
filterOpen.value = false
|
|
332
|
+
restartSearch()
|
|
333
|
+
}
|
|
333
334
|
|
|
334
335
|
const onDateFilterComplete = (value) => {
|
|
335
|
-
filtering.dateFrom = value.from
|
|
336
|
-
filtering.dateTo = value.to
|
|
337
|
-
datePickerOpen.value = false
|
|
338
|
-
restartSearch()
|
|
339
|
-
}
|
|
336
|
+
filtering.dateFrom = value.from
|
|
337
|
+
filtering.dateTo = value.to
|
|
338
|
+
datePickerOpen.value = false
|
|
339
|
+
restartSearch()
|
|
340
|
+
}
|
|
340
341
|
|
|
341
342
|
function gotoRecharge() {
|
|
342
|
-
emit(
|
|
343
|
+
emit('recharge')
|
|
343
344
|
}
|
|
344
345
|
|
|
345
|
-
function gotoTrade(item: any){
|
|
346
|
-
emit(
|
|
346
|
+
function gotoTrade(item: any) {
|
|
347
|
+
emit('trade', item)
|
|
347
348
|
}
|
|
348
349
|
|
|
349
350
|
function loadNextPage() {
|
|
350
|
-
filtering.page
|
|
351
|
-
loadConsumptions(true)
|
|
351
|
+
filtering.page++
|
|
352
|
+
loadConsumptions(true)
|
|
352
353
|
}
|
|
353
354
|
|
|
354
355
|
// 以下这一大段处理下拉刷新、上滑分页以及弹窗与页面滑动的逻辑
|
|
355
|
-
const scrolled = ref<number>(0)
|
|
356
|
+
const scrolled = ref<number>(0)
|
|
356
357
|
|
|
357
358
|
/**
|
|
358
359
|
* 记录 scroll-view 滚动的位置
|
|
359
360
|
*/
|
|
360
361
|
const onScroll = (e) => {
|
|
361
|
-
const { scrollTop } = e
|
|
362
|
-
scrolled.value = scrollTop
|
|
363
|
-
}
|
|
362
|
+
const { scrollTop } = e
|
|
363
|
+
scrolled.value = scrollTop
|
|
364
|
+
}
|
|
364
365
|
|
|
365
366
|
/**
|
|
366
367
|
* 下拉刷新 pull down refresh
|
|
367
368
|
*/
|
|
368
369
|
const onPullDownRefresh = () => {
|
|
369
|
-
refreshing.value = true
|
|
370
|
+
refreshing.value = true
|
|
370
371
|
// 重新请求余额数据
|
|
371
|
-
loadBalance()
|
|
372
|
+
loadBalance()
|
|
372
373
|
setTimeout(() => {
|
|
373
|
-
refreshing.value = false
|
|
374
|
-
}, 500)
|
|
375
|
-
}
|
|
374
|
+
refreshing.value = false
|
|
375
|
+
}, 500)
|
|
376
|
+
}
|
|
376
377
|
|
|
377
378
|
/**
|
|
378
379
|
* 滑动到底部请求下一页并合并查询结果
|
|
@@ -380,10 +381,10 @@ const onPullDownRefresh = () => {
|
|
|
380
381
|
const onReachBottom = () => {
|
|
381
382
|
console.log('到底了')
|
|
382
383
|
if (reachedLastPage.value) {
|
|
383
|
-
return false
|
|
384
|
+
return false
|
|
384
385
|
}
|
|
385
|
-
loadNextPage()
|
|
386
|
-
}
|
|
386
|
+
loadNextPage()
|
|
387
|
+
}
|
|
387
388
|
|
|
388
389
|
/**
|
|
389
390
|
* 浮窗弹出时不允许
|
|
@@ -391,34 +392,29 @@ const onReachBottom = () => {
|
|
|
391
392
|
* 2. 上滑分页
|
|
392
393
|
*/
|
|
393
394
|
const isAnyPopupOpen = computed(() => {
|
|
394
|
-
return
|
|
395
|
-
|
|
396
|
-
datePickerOpen.value ||
|
|
397
|
-
filterOpen.value ||
|
|
398
|
-
secondBalanceOpen.value
|
|
399
|
-
);
|
|
400
|
-
});
|
|
395
|
+
return rulesPopupOpen.value || datePickerOpen.value || filterOpen.value || secondBalanceOpen.value
|
|
396
|
+
})
|
|
401
397
|
|
|
402
|
-
const secondBalanceOpen = ref<boolean>(false)
|
|
398
|
+
const secondBalanceOpen = ref<boolean>(false)
|
|
403
399
|
|
|
404
400
|
function onSecondBalanceButtonClick() {
|
|
405
|
-
secondBalanceOpen.value = true
|
|
406
|
-
loadConsumptions()
|
|
401
|
+
secondBalanceOpen.value = true
|
|
402
|
+
loadConsumptions()
|
|
407
403
|
}
|
|
408
404
|
|
|
409
405
|
watch(secondBalanceOpen, () => {
|
|
410
406
|
Taro.setNavigationBarColor({
|
|
411
|
-
frontColor: secondBalanceOpen.value ?
|
|
412
|
-
backgroundColor:
|
|
407
|
+
frontColor: secondBalanceOpen.value ? '#000000' : '#ffffff',
|
|
408
|
+
backgroundColor: '#ffffff',
|
|
413
409
|
animation: {
|
|
414
410
|
duration: 400,
|
|
415
|
-
timingFunc:
|
|
411
|
+
timingFunc: 'easeIn',
|
|
416
412
|
},
|
|
417
|
-
})
|
|
418
|
-
})
|
|
413
|
+
})
|
|
414
|
+
})
|
|
419
415
|
|
|
420
416
|
function onDateReset() {
|
|
421
|
-
resetDateRange()
|
|
417
|
+
resetDateRange()
|
|
422
418
|
}
|
|
423
419
|
|
|
424
420
|
/**
|
|
@@ -426,26 +422,26 @@ function onDateReset() {
|
|
|
426
422
|
*/
|
|
427
423
|
function resetDateRange() {
|
|
428
424
|
// 筛选的起止时间
|
|
429
|
-
filtering.dateTo = dayjs().format(
|
|
430
|
-
filtering.dateFrom = dayjs().add(-3,
|
|
425
|
+
filtering.dateTo = dayjs().format('YYYY-MM-DD')
|
|
426
|
+
filtering.dateFrom = dayjs().add(-3, 'M').format('YYYY-MM-DD')
|
|
431
427
|
}
|
|
432
428
|
|
|
433
429
|
function onPageHeaderClose() {
|
|
434
430
|
Taro.navigateBack({
|
|
435
431
|
delta: 1,
|
|
436
|
-
})
|
|
432
|
+
})
|
|
437
433
|
}
|
|
438
434
|
|
|
439
435
|
onMounted(() => {
|
|
440
|
-
resetDateRange()
|
|
441
|
-
})
|
|
436
|
+
resetDateRange()
|
|
437
|
+
})
|
|
442
438
|
</script>
|
|
443
439
|
|
|
444
440
|
<style lang="scss">
|
|
445
441
|
.account-view {
|
|
446
442
|
height: 100vh;
|
|
447
443
|
.scroll-content {
|
|
448
|
-
background-image: url(
|
|
444
|
+
background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzUwIiBoZWlnaHQ9IjQwNiIgdmlld0JveD0iMCAwIDc1MCA0MDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0zODIuNSA0MDcuNUM1NzcuMzU3IDQwNy41IDc1My43ODggMzgxLjI0OCA4ODEuNTIxIDMzOC43OTFDOTQ1LjM4NiAzMTcuNTYzIDk5Ny4xMDQgMjkyLjI3NiAxMDMyLjg3IDI2NC4xNzFDMTA2OC42MiAyMzYuMDcxIDEwODguNSAyMDUuMDk3IDEwODguNSAxNzIuNUMxMDg4LjUgMTM5LjkwMyAxMDY4LjYyIDEwOC45MjkgMTAzMi44NyA4MC44Mjg5Qzk5Ny4xMDQgNTIuNzI0NSA5NDUuMzg2IDI3LjQzNjcgODgxLjUyMSA2LjIwODk4Qzc1My43ODggLTM2LjI0ODIgNTc3LjM1NyAtNjIuNSAzODIuNSAtNjIuNUMxODcuNjQzIC02Mi41IDExLjIxMjIgLTM2LjI0ODIgLTExNi41MjIgNi4yMDg5OEMtMTgwLjM4NiAyNy40MzY3IC0yMzIuMTA0IDUyLjcyNDUgLTI2Ny44NjcgODAuODI4OUMtMzAzLjYyNCAxMDguOTI5IC0zMjMuNSAxMzkuOTAzIC0zMjMuNSAxNzIuNUMtMzIzLjUgMjA1LjA5NyAtMzAzLjYyNCAyMzYuMDcxIC0yNjcuODY3IDI2NC4xNzFDLTIzMi4xMDQgMjkyLjI3NiAtMTgwLjM4NiAzMTcuNTYzIC0xMTYuNTIyIDMzOC43OTFDMTEuMjEyMiAzODEuMjQ4IDE4Ny42NDMgNDA3LjUgMzgyLjUgNDA3LjVaIiBmaWxsPSIjM0IzOTNDIiBzdHJva2U9ImJsYWNrIi8+Cjwvc3ZnPgo=');
|
|
449
445
|
background-position: center -200px;
|
|
450
446
|
background-repeat: no-repeat;
|
|
451
447
|
}
|
|
@@ -483,7 +479,7 @@ onMounted(() => {
|
|
|
483
479
|
color: #e7caad;
|
|
484
480
|
font-size: 12px;
|
|
485
481
|
label {
|
|
486
|
-
background-image: url(
|
|
482
|
+
background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwIDZMMTYgMTJMMTAgMThWNloiIGZpbGw9IiNFN0NBQUQiIHN0cm9rZT0iI0U3Q0FBRCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=');
|
|
487
483
|
padding-right: 18px;
|
|
488
484
|
background-repeat: no-repeat;
|
|
489
485
|
background-position: right center;
|
|
@@ -555,7 +551,7 @@ onMounted(() => {
|
|
|
555
551
|
padding: 24px;
|
|
556
552
|
}
|
|
557
553
|
|
|
558
|
-
.operation-box{
|
|
554
|
+
.operation-box {
|
|
559
555
|
width: 100vw;
|
|
560
556
|
overflow: hidden;
|
|
561
557
|
display: flex;
|
|
@@ -613,7 +609,7 @@ onMounted(() => {
|
|
|
613
609
|
.operation-list {
|
|
614
610
|
flex: 1;
|
|
615
611
|
width: 100%;
|
|
616
|
-
.operation-scroll{
|
|
612
|
+
.operation-scroll {
|
|
617
613
|
height: calc(100vh - 130px);
|
|
618
614
|
padding: 0 15px;
|
|
619
615
|
box-sizing: border-box;
|
|
@@ -637,11 +633,7 @@ onMounted(() => {
|
|
|
637
633
|
display: flex;
|
|
638
634
|
margin-bottom: 10px;
|
|
639
635
|
&-type {
|
|
640
|
-
background: linear-gradient(
|
|
641
|
-
113.95deg,
|
|
642
|
-
#f4e2ce 1.2%,
|
|
643
|
-
#debb9b 77.63%
|
|
644
|
-
);
|
|
636
|
+
background: linear-gradient(113.95deg, #f4e2ce 1.2%, #debb9b 77.63%);
|
|
645
637
|
width: 30px;
|
|
646
638
|
height: 30px;
|
|
647
639
|
border-radius: 15px;
|
|
@@ -690,16 +682,16 @@ onMounted(() => {
|
|
|
690
682
|
}
|
|
691
683
|
}
|
|
692
684
|
}
|
|
693
|
-
.rights-card{
|
|
685
|
+
.rights-card {
|
|
694
686
|
margin: 10px 15px 0px;
|
|
695
|
-
background: #
|
|
687
|
+
background: #fff8f3;
|
|
696
688
|
border-radius: 5px;
|
|
697
|
-
box-shadow: 0px 5px 18.9px 2px #
|
|
689
|
+
box-shadow: 0px 5px 18.9px 2px #0000000d;
|
|
698
690
|
padding: 15px 20px;
|
|
699
|
-
.title{
|
|
691
|
+
.title {
|
|
700
692
|
height: 25px;
|
|
701
693
|
line-height: 25px;
|
|
702
|
-
background: rgba($color: #
|
|
694
|
+
background: rgba($color: #ff8320, $alpha: 0.3);
|
|
703
695
|
border-radius: 20px 50px 50px 0px;
|
|
704
696
|
color: #353535;
|
|
705
697
|
font-size: 12px;
|
|
@@ -707,38 +699,38 @@ onMounted(() => {
|
|
|
707
699
|
padding-left: 5px;
|
|
708
700
|
padding-right: 12px;
|
|
709
701
|
}
|
|
710
|
-
.list{
|
|
702
|
+
.list {
|
|
711
703
|
display: flex;
|
|
712
704
|
flex-wrap: wrap;
|
|
713
|
-
.item{
|
|
705
|
+
.item {
|
|
714
706
|
width: 50%;
|
|
715
707
|
margin-top: 15px;
|
|
716
|
-
.item-count{
|
|
708
|
+
.item-count {
|
|
717
709
|
font-size: 20px;
|
|
718
|
-
color
|
|
710
|
+
color: #353535;
|
|
719
711
|
font-weight: 700;
|
|
720
712
|
line-height: 23px;
|
|
721
713
|
}
|
|
722
|
-
.item-title{
|
|
714
|
+
.item-title {
|
|
723
715
|
line-height: 23px;
|
|
724
716
|
color: #987356;
|
|
725
717
|
font-size: 11px;
|
|
726
718
|
display: flex;
|
|
727
719
|
align-items: center;
|
|
728
|
-
.item-title-button{
|
|
720
|
+
.item-title-button {
|
|
729
721
|
padding: 0 27rpx;
|
|
730
722
|
height: 54rpx;
|
|
731
723
|
line-height: 54rpx;
|
|
732
724
|
background: -webkit-linear-gradient(262.82deg, #353535 10.04%, #433f46 90.21%);
|
|
733
725
|
background: linear-gradient(187.18deg, #353535 10.04%, #433f46 90.21%);
|
|
734
726
|
border-radius: 27rpx;
|
|
735
|
-
color: #
|
|
727
|
+
color: #e7caad;
|
|
736
728
|
font-size: 24rpx;
|
|
737
729
|
font-weight: 400;
|
|
738
730
|
margin-left: 40rpx;
|
|
739
731
|
display: flex;
|
|
740
732
|
align-items: center;
|
|
741
|
-
.button-icon{
|
|
733
|
+
.button-icon {
|
|
742
734
|
display: block;
|
|
743
735
|
width: 24rpx;
|
|
744
736
|
height: 24rpx;
|
|
@@ -748,7 +740,7 @@ onMounted(() => {
|
|
|
748
740
|
}
|
|
749
741
|
}
|
|
750
742
|
}
|
|
751
|
-
.star-item{
|
|
743
|
+
.star-item {
|
|
752
744
|
width: 100%;
|
|
753
745
|
}
|
|
754
746
|
}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="notice-view">
|
|
3
|
-
<dd-search
|
|
4
|
-
:bordered="false"
|
|
5
|
-
:focus="false"
|
|
6
|
-
:value="query.title"
|
|
7
|
-
placeholder="请输入客户姓名搜索"
|
|
8
|
-
@search="onSearch"
|
|
9
|
-
/>
|
|
10
|
-
|
|
11
|
-
<div class="h-full box-border">
|
|
12
|
-
<div class="wrapper box-border" v-if="list.length">
|
|
13
|
-
<scroll-view
|
|
14
|
-
class="content box-border"
|
|
15
|
-
:scroll-y="true"
|
|
16
|
-
:refresher-enabled="true"
|
|
17
|
-
:refresherTriggered="isRefresh"
|
|
18
|
-
@refresherrefresh="onRefresh"
|
|
19
|
-
:lower-threshold="100"
|
|
20
|
-
@scrolltolower="runNext"
|
|
21
|
-
bindscroll=""
|
|
22
|
-
>
|
|
23
|
-
<div
|
|
24
|
-
class="card box-border"
|
|
25
|
-
:class="{ active: item.isRead != '1' }"
|
|
26
|
-
v-for="(item, index) in list"
|
|
27
|
-
:key="index"
|
|
28
|
-
@click="notifyRead(item, index)"
|
|
29
|
-
>
|
|
30
|
-
<div class="point"></div>
|
|
31
|
-
<template v-if="appCode === 'loankit'">
|
|
32
|
-
<div class="time">
|
|
33
|
-
{{ formatMinutes(item.receiveTime) }}
|
|
34
|
-
</div>
|
|
35
|
-
<div class="text" :class="{ gray: item.isRead == '1' }">
|
|
36
|
-
{{ item.context }}
|
|
37
|
-
</div>
|
|
38
|
-
</template>
|
|
39
|
-
<template v-else>
|
|
40
|
-
<div class="time">
|
|
41
|
-
{{ formatMinutes(item.receiveTime) }}
|
|
42
|
-
</div>
|
|
43
|
-
<div class="text tit" :class="{ gray: item.isRead == '1' }">
|
|
44
|
-
{{ item.title }}
|
|
45
|
-
</div>
|
|
46
|
-
<div class="text" :class="{ gray: item.isRead == '1' }">
|
|
47
|
-
<rich-text style="white-space: pre-wrap" :nodes="item.context"></rich-text>
|
|
48
|
-
</div>
|
|
49
|
-
</template>
|
|
50
|
-
</div>
|
|
51
|
-
<div v-if="isLast" class="cue-text" style="padding-bottom: 40px">没有更多了</div>
|
|
52
|
-
</scroll-view>
|
|
53
|
-
</div>
|
|
54
|
-
<div v-else class="no-data h-full">
|
|
55
|
-
<div class="w-238px h-157px mt-105px mb-19px">
|
|
56
|
-
<img
|
|
57
|
-
class="w-full h-full"
|
|
58
|
-
src="https://cdn.ddjf.com/static/images/loan-manage/no-data.png"
|
|
59
|
-
alt=""
|
|
60
|
-
/>
|
|
61
|
-
</div>
|
|
62
|
-
<div class="text">暂无记录</div>
|
|
63
|
-
</div>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
</template>
|
|
67
|
-
|
|
68
|
-
<script lang="ts" setup>
|
|
69
|
-
import { onMounted, ref } from 'vue'
|
|
70
|
-
import { useHttp } from '../api'
|
|
71
|
-
import { useAppKitOptions } from '../../Appkit'
|
|
72
|
-
import DdSearch from '../../components/dd-search/index.vue'
|
|
73
|
-
|
|
74
|
-
const props = withDefaults(
|
|
75
|
-
defineProps<{
|
|
76
|
-
app: string
|
|
77
|
-
}>(),
|
|
78
|
-
{
|
|
79
|
-
app: '',
|
|
80
|
-
}
|
|
81
|
-
)
|
|
82
|
-
|
|
83
|
-
// 父组件事件
|
|
84
|
-
const emits = defineEmits(['detail', 'close'])
|
|
85
|
-
</script>
|
|
86
|
-
|
|
87
|
-
<style lang="scss">
|
|
88
|
-
.notice-banner {
|
|
89
|
-
height: 30px;
|
|
90
|
-
margin-bottom: 8px;
|
|
91
|
-
.dd-notice-bar {
|
|
92
|
-
position: relative;
|
|
93
|
-
background: #f2f3ff;
|
|
94
|
-
font-size: 10px;
|
|
95
|
-
color: #000000e5;
|
|
96
|
-
padding: 0 8px;
|
|
97
|
-
height: 0;
|
|
98
|
-
min-height: auto;
|
|
99
|
-
transition: all 0.2s;
|
|
100
|
-
opacity: 0;
|
|
101
|
-
&.show {
|
|
102
|
-
height: 30px;
|
|
103
|
-
opacity: 1;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
&-icon {
|
|
107
|
-
width: 22px;
|
|
108
|
-
height: 22px;
|
|
109
|
-
margin-right: 8px;
|
|
110
|
-
}
|
|
111
|
-
.dd-notice-bar__close-img {
|
|
112
|
-
display: none;
|
|
113
|
-
}
|
|
114
|
-
.dd-notice-bar__close {
|
|
115
|
-
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E %3Cpath d='M3.3335 3.33331L16.6668 16.6666' stroke='%23353535' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E %3Cpath d='M3.3335 16.6666L16.6668 3.33331' stroke='%23353535' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
|
|
116
|
-
background-position: center;
|
|
117
|
-
background-repeat: no-repeat;
|
|
118
|
-
background-size: 12px 12px;
|
|
119
|
-
opacity: 0.6;
|
|
120
|
-
}
|
|
121
|
-
&-text {
|
|
122
|
-
flex: 1;
|
|
123
|
-
overflow: hidden;
|
|
124
|
-
text-overflow: ellipsis;
|
|
125
|
-
display: -webkit-box;
|
|
126
|
-
-webkit-line-clamp: 1;
|
|
127
|
-
-webkit-box-orient: vertical;
|
|
128
|
-
}
|
|
129
|
-
&-btn {
|
|
130
|
-
color: #017fff;
|
|
131
|
-
padding-left: 6px;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
</style>
|