添加日志

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 v-else></view>
<view>{{ yesday_ledger.expenditure }}</view> <view>{{ yesday_ledger.expenditure }}</view>
</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> </view>
</swiper-item> </swiper-item>
<swiper-item> <swiper-item>
@ -59,6 +66,13 @@
<view v-else></view> <view v-else></view>
<view>{{ current_month_ledger.expenditure }}</view> <view>{{ current_month_ledger.expenditure }}</view>
</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> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>

View File

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

View File

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