添加日志
parent
82329ccc01
commit
943b92878a
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue