@uxda/appkit 1.2.38 → 1.2.42

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: #FFF8F3;
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: #E7CAAD;
1013
+ color: #e7caad;
1014
1014
  font-size: 24rpx;
1015
1015
  font-weight: 400;
1016
1016
  margin-left: 40rpx;
@@ -1274,7 +1274,7 @@ page {
1274
1274
  }
1275
1275
  .login-setting {
1276
1276
  position: fixed;
1277
- z-index: 10000;
1277
+ z-index: 4;
1278
1278
  left: 12px;
1279
1279
  top: 10px;
1280
1280
  bottom: 10px;
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 _ from 'lodash';
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: _.groupBy(privileges, "appCode")
2205
+ privileges: groupBy(privileges, "appCode")
2208
2206
  };
2209
2207
  balance.value = filterData;
2210
2208
  });
@@ -3489,7 +3487,7 @@ function useHttp() {
3489
3487
  return false;
3490
3488
  },
3491
3489
  (raw) => {
3492
- if (raw.status > 500) {
3490
+ if (raw.status > 500 && raw.status != 51014) {
3493
3491
  return true;
3494
3492
  }
3495
3493
  return false;
@@ -3820,7 +3818,7 @@ var script = /* @__PURE__ */ defineComponent({
3820
3818
  appCode: props.app || appkitOptions.app(),
3821
3819
  tenantId: appkitOptions.tenant()
3822
3820
  }).then((result) => {
3823
- if (result)
3821
+ if (result === true)
3824
3822
  return;
3825
3823
  getLoginRule();
3826
3824
  showLoginRule.value = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxda/appkit",
3
- "version": "1.2.38",
3
+ "version": "1.2.42",
4
4
  "description": "小程序应用开发包",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.ts",
@@ -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 class="item star-item" v-for="(item, index) in balance.privileges.corporateStar" :key="index">
36
- <div class="item-count"><span>{{ item.count }}</span><span>{{ item.unit }}</span></div>
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 class="button-icon" src="https://cdn.ddjf.com/static/images/bpms-workBench/button-hg.svg" />
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.收入还是支出 == "支出" ? "-" : "+" }}{{ it.amount }}
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 "@tarojs/taro";
168
- import { computed, onMounted, reactive, ref, watch } from "vue";
169
- import { endpoints, useHttp } from "../api";
170
- import { 账户流水筛选项, Balance, ConsumptionGroup, 账户流水 } from "../types";
171
- import ConsumptionFilter from "./ConsumptionFilter.vue";
172
- import DateFilter from "./DateFilter.vue";
173
- import ConsumptionRules from "./ConsumptionRules.vue";
174
- import { AppDrawer, PageHeader, WithPaging } from "../../shared";
175
- import dayjs from "dayjs";
176
- import EmptyView from "../../shared/components/EmptyView.vue";
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 _ from "lodash";
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(["recharge", "trade"]);
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, ".").substring(2);
229
- let endTime = filtering.dateTo?.replace(/-/g, ".").substring(2);
230
- return startTime + " - " + endTime;
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("YYYY-MM-DD");
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: _.groupBy(privileges, 'appCode')
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("recharge");
343
+ emit('recharge')
343
344
  }
344
345
 
345
- function gotoTrade(item: any){
346
- emit("trade", item);
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
- rulesPopupOpen.value ||
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 ? "#000000" : "#ffffff",
412
- backgroundColor: "#ffffff",
407
+ frontColor: secondBalanceOpen.value ? '#000000' : '#ffffff',
408
+ backgroundColor: '#ffffff',
413
409
  animation: {
414
410
  duration: 400,
415
- timingFunc: "easeIn",
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("YYYY-MM-DD");
430
- filtering.dateFrom = dayjs().add(-3, "M").format("YYYY-MM-DD");
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("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzUwIiBoZWlnaHQ9IjQwNiIgdmlld0JveD0iMCAwIDc1MCA0MDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0zODIuNSA0MDcuNUM1NzcuMzU3IDQwNy41IDc1My43ODggMzgxLjI0OCA4ODEuNTIxIDMzOC43OTFDOTQ1LjM4NiAzMTcuNTYzIDk5Ny4xMDQgMjkyLjI3NiAxMDMyLjg3IDI2NC4xNzFDMTA2OC42MiAyMzYuMDcxIDEwODguNSAyMDUuMDk3IDEwODguNSAxNzIuNUMxMDg4LjUgMTM5LjkwMyAxMDY4LjYyIDEwOC45MjkgMTAzMi44NyA4MC44Mjg5Qzk5Ny4xMDQgNTIuNzI0NSA5NDUuMzg2IDI3LjQzNjcgODgxLjUyMSA2LjIwODk4Qzc1My43ODggLTM2LjI0ODIgNTc3LjM1NyAtNjIuNSAzODIuNSAtNjIuNUMxODcuNjQzIC02Mi41IDExLjIxMjIgLTM2LjI0ODIgLTExNi41MjIgNi4yMDg5OEMtMTgwLjM4NiAyNy40MzY3IC0yMzIuMTA0IDUyLjcyNDUgLTI2Ny44NjcgODAuODI4OUMtMzAzLjYyNCAxMDguOTI5IC0zMjMuNSAxMzkuOTAzIC0zMjMuNSAxNzIuNUMtMzIzLjUgMjA1LjA5NyAtMzAzLjYyNCAyMzYuMDcxIC0yNjcuODY3IDI2NC4xNzFDLTIzMi4xMDQgMjkyLjI3NiAtMTgwLjM4NiAzMTcuNTYzIC0xMTYuNTIyIDMzOC43OTFDMTEuMjEyMiAzODEuMjQ4IDE4Ny42NDMgNDA3LjUgMzgyLjUgNDA3LjVaIiBmaWxsPSIjM0IzOTNDIiBzdHJva2U9ImJsYWNrIi8+Cjwvc3ZnPgo=");
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("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwIDZMMTYgMTJMMTAgMThWNloiIGZpbGw9IiNFN0NBQUQiIHN0cm9rZT0iI0U3Q0FBRCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=");
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: #FFF8F3;
687
+ background: #fff8f3;
696
688
  border-radius: 5px;
697
- box-shadow: 0px 5px 18.9px 2px #0000000D;
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: #FF8320, $alpha: 0.3);
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:#353535;
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: #E7CAAD;
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
  }
@@ -54,7 +54,7 @@ function useHttp() {
54
54
  return false
55
55
  },
56
56
  (raw) => {
57
- if (raw.status > 500) {
57
+ if (raw.status > 500 && raw.status != 51014) {
58
58
  return true
59
59
  }
60
60
  return false
@@ -60,8 +60,8 @@ async function checkLoginTimeRule() {
60
60
  appCode: props.app || appkitOptions.app(),
61
61
  tenantId: appkitOptions.tenant(),
62
62
  })
63
- .then((result) => {
64
- if (result) return
63
+ .then((result: any) => {
64
+ if (result === true) return
65
65
 
66
66
  getLoginRule()
67
67
  showLoginRule.value = true
@@ -91,7 +91,7 @@ const emits = defineEmits(['show'])
91
91
  <style lang="scss">
92
92
  .login-setting {
93
93
  position: fixed;
94
- z-index: 10000;
94
+ z-index: 4;
95
95
  left: 12px;
96
96
  top: 10px;
97
97
  bottom: 10px;
@@ -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>