添加日志

main
ihzero 2024-05-29 00:20:22 +08:00
parent 82329ccc01
commit 943b92878a
3 changed files with 99 additions and 33 deletions

View File

@ -41,6 +41,13 @@
<view v-else></view>
<view>{{ yesday_ledger.expenditure }}</view>
</view>
<view class="h-80rpx flex-none flex-center">
<uv-line direction="vertical"></uv-line>
</view>
<view class="flex-1 text-center">
<view>客户</view>
<view>{{ yesday_ledger.new_customers }}</view>
</view>
</view>
</swiper-item>
<swiper-item>
@ -59,6 +66,13 @@
<view v-else></view>
<view>{{ current_month_ledger.expenditure }}</view>
</view>
<view class="h-80rpx flex-none flex-center">
<uv-line direction="vertical"></uv-line>
</view>
<view class="flex-1 text-center">
<view>客户</view>
<view>{{ current_month_ledger.new_customers }}</view>
</view>
</view>
</swiper-item>
</swiper>

View File

@ -22,40 +22,45 @@
></uv-tabs>
<view class="h-40rpx flex-center" @click="openCalendars">
<view class="text-center text-28rpx py-4rpx"
>{{ showDate }}
</view>
<view class="text-center text-28rpx py-4rpx">{{ showDate }} </view>
</view>
<view class="flex my-20rpx items-center table">
<view class="text-center flex-1 tr">
<view class="flex-center h-80rpx">销售金额</view>
<view class="font-600 flex-center h-80rpx">{{ ledger.sales }}</view>
<view class="grid grid-cols-2 my-20rpx table1">
<view class="text-center flex-1 tr" @click="openLogPopup(0)">
<view class="flex-center h-60rpx text-28rpx">销售金额</view>
<view class="font-600 flex-center h-60rpx">{{ ledger.sales }}</view>
</view>
<view class="text-center flex-1 tr">
<view class="text-center flex-1 tr" @click="openLogPopup(0)">
<view
class="flex-center h-80rpx"
class="flex-center h-60rpx"
v-if="isLotteryStore || checkPermission(['admin'])"
>
<view>兑奖金额</view>
</view>
<view class="flex-center h-80rpx" v-else></view>
<view class="font-600 flex-center h-80rpx">{{
<view class="flex-center h-60rpx text-28rpx" v-else></view>
<view class="font-600 flex-center h-60rpx">{{
ledger.expenditure
}}</view>
</view>
<view class="text-center flex-1 tr">
<view class="flex-center h-80rpx">销售涨幅</view>
<view class="flex-center h-60rpx text-28rpx">销售涨幅</view>
<view
class="font-600 flex-center h-80rpx"
class="font-600 flex-center h-60rpx"
:class="[
ledger.sales_growth_rate > 0 ? 'text-primary' : 'text-green',
]"
>{{ ledger.sales_growth_rate }}%</view
>
</view>
<view class="text-center flex-1 tr">
<view class="flex-center h-60rpx text-28rpx">新增客户</view>
<view class="font-600 flex-center h-60rpx">{{
ledger.new_customers
}}</view>
</view>
</view>
<uv-tabs
@change="tabChange1"
@ -83,6 +88,22 @@
:allowSameDay="true"
@confirm="confirm"
/>
<uv-popup ref="logPopup" mode="center" round="16" :closeable="true">
<view class="w-600rpx">
<view class="h-60rpx"></view>
<view class="grid grid-cols-2 py-16rpx text-28rpx font-500">
<view class="text-center">明细</view>
<view class="text-center">金额</view>
</view>
<scroll-view scroll-y class="min-h-200rpx max-h-800rpx">
<view v-for="item in 13" :key="item" class="grid grid-cols-2 py-16rpx text-28rpx">
<view class="text-center">体彩</view>
<view class="text-center">{{item}}</view>
</view>
</scroll-view>
</view>
</uv-popup>
</view>
</template>
<script setup>
@ -100,6 +121,7 @@ import { sys } from '@climblee/uv-ui/libs/function/index'
import { useUserStore } from '@/store/modules/user'
const userStore = useUserStore()
const logPopup = ref(null)
const getRect = (selector, all) => {
return new Promise((resolve) => {
@ -140,11 +162,11 @@ const currentC = computed(() => {
const showDate = computed(() => {
let start = currentC.value.start
let end = currentC.value.end
if(isCalendar.value){
if (isCalendar.value) {
start = selected.value[0]
end = selected.value[1]
}
if(start===end) return start
if (start === end) return start
return `${start}${end}`
})
const currentL = computed(() => {
@ -164,7 +186,6 @@ if (!checkPermission(['admin'])) {
shoreInfo.value = { store_id: userStore?.userInfo?.store?.id }
}
const ledger = ref({
expenditure: '0',
sales: '0',
@ -182,6 +203,9 @@ onReady(() => {
getBox()
})
const openLogPopup = (type) => {
logPopup.value.open()
}
const confirm = ({ range }) => {
isCalendar.value = true
const { before, after } = range
@ -232,10 +256,13 @@ const getCount = async () => {
before_start_at: currentL.value.start,
before_end_at: currentL.value.end,
}
if(isCalendar.value) {
if (isCalendar.value) {
params.start_at = selected.value[0]
params.end_at = selected.value[1]
const { previousStart, previousEnd } = calculatePreviousPeriodByDays(params.start_at, params.end_at)
const { previousStart, previousEnd } = calculatePreviousPeriodByDays(
params.start_at,
params.end_at
)
params.before_start_at = previousStart
params.before_end_at = previousEnd
}
@ -378,12 +405,11 @@ const getList = async () => {
end_at: currentC.value.end,
}
if(isCalendar.value) {
if (isCalendar.value) {
params.start_at = selected.value[0]
params.end_at = selected.value[1]
}
if (tabIndex1.value == 0) {
params = {
...params,
@ -398,9 +424,9 @@ const getList = async () => {
}
</script>
<style lang="scss">
.table {
display: flex;
// border: 1px solid;
.table1 {
// display: flex;//
border: 0.5px solid #f5f5f5;
}
.tr {
border: 0.5px solid #f5f5f5;

View File

@ -1,13 +1,21 @@
<template>
<view class="px-base">
<CuNavbar title="任务详情">
<template #right>
<view v-if="data?.taskable?.status == 6" class="text-sm text-white" @click="checkLogs"></view>
<template v-if="actions.length > 0" #right>
<uv-icon color="white" @click="open" name="more-dot-fill"></uv-icon>
</template>
</CuNavbar>
<view class="mt-30rpx card-shadow bg-white rounded-19rpx px-base text-[#333333] text-27rpx">
<view
class="mt-30rpx card-shadow bg-white rounded-19rpx px-base text-[#333333] text-27rpx"
>
<BaseData :data="data" :colums="baseColums" />
</view>
<uv-action-sheet
ref="pickerRef"
:actions="actions"
@select="confirmPicker"
/>
</view>
</template>
<script setup>
@ -19,6 +27,12 @@ import { timeFormat } from '@climblee/uv-ui/libs/function'
import BaseData from '@/pages/audits/base-data'
import statusFun from '@/utils/status'
const pickerRef = ref(null)
const actions = ref([
{ name: '修改', value: 'edit', disabled: false },
{ name: '审核流程', value: 'check-logs', disabled: false },
])
const baseColums = [
{
title: '审核状态',
@ -50,7 +64,7 @@ const baseColums = [
title: '清洁结果',
dataIndex: 'taskable.photos',
labelPosition: 'top',
type: 'album'
type: 'album',
},
{
title: '未通过原因',
@ -58,7 +72,7 @@ const baseColums = [
labelPosition: 'top',
isShow: (row) => {
return row?.taskable?.status == 6
}
},
},
]
const id = ref(null)
@ -69,16 +83,28 @@ onLoad((opt) => {
getDetail()
})
const open = () => {
pickerRef.value.open()
}
const getDetail = async () => {
const resdata = await http.get(`/tasks/${id.value}`)
data.value = resdata
actions.value[0].disabled = resdata?.taskable?.status != 6
}
const confirmPicker = (e) => {
if (e.value == 'edit') {
uni.navigateTo({
url: `/pages/task/task_hygienes_submit?id=${id.value}`,
})
} else if (e.value == 'check-logs') {
return uni.navigateTo({
url: `/pages/audits/log?id=${data.value.taskable.workflow_check.id}`,
})
}
}
const checkLogs = () => {
uni.navigateTo({
url: `/pages/task/task_hygienes_submit?id=${id.value}`
})
}
const getValue = (obj, path) => {
return path.split('.').reduce((acc, key) => (acc ? acc[key] : undefined), obj)