修改bug

main
unknown 2024-04-30 15:03:27 +08:00
parent d493730d19
commit d6ffa348cc
8 changed files with 69 additions and 40 deletions

View File

@ -1,3 +1,3 @@
VITE_COMMON_API_PREFIX = /api VITE_COMMON_API_PREFIX = /api-base
VITE_COMMON_API_URL = http://store-manage.hmily.club/api VITE_COMMON_API_URL = http://store-manage.hmily.club/api

View File

@ -5,11 +5,8 @@ export default {
const userStore = useUserStoreWithOut() const userStore = useUserStoreWithOut()
if (userStore.isLogin) { if (userStore.isLogin) {
userStore.fetchUserInfo() userStore.fetchUserInfo()
}else{
// uni.reLaunch({
// url: '/pages/login/index',
// })
} }
console.log(userStore.isLogin);
// #ifdef APP-PLUS // #ifdef APP-PLUS
if (userStore.isLogin) { if (userStore.isLogin) {
plus.navigator.closeSplashscreen() plus.navigator.closeSplashscreen()

View File

@ -49,7 +49,14 @@
}, },
/* ios */ /* ios */
"ios" : { "ios" : {
"dSYMs" : false "dSYMs" : false,
"privacyDescription" : {
"NSPhotoLibraryUsageDescription" : "因相关功能涉及图片的读取与写入,请在设置中开启相册权限",
"NSPhotoLibraryAddUsageDescription" : "因相关功能涉及图片的读取与写入,请在设置中开启相册权限",
"NSCameraUsageDescription" : "因相关功能涉及照相,请在设置开启相机权限",
"NSLocationWhenInUseUsageDescription" : "用户能快速知道当前位置",
"NSLocationAlwaysAndWhenInUseUsageDescription" : "用户能快速知道当前位置"
}
}, },
/* SDK */ /* SDK */
"sdkConfigs" : { "sdkConfigs" : {

View File

@ -2,11 +2,13 @@
<view> <view>
<CuNavbar title="提成数据" isBack></CuNavbar> <CuNavbar title="提成数据" isBack></CuNavbar>
<MescrollItem :top="44" :i="0" apiUrl="/account/store-master-commissions"> <MescrollItem :top="44" :i="0" apiUrl="/account/store-master-commissions">
<view class="space-y-20rpx px-base mt-20rpx"> <template v-slot="{ list }">
<view v-for="(item, i) in list" :key="i"> <view class="space-y-20rpx px-base mt-20rpx">
<Item :data="item"></Item> <view v-for="(item, i) in list" :key="i">
<Item :data="item"></Item>
</view>
</view> </view>
</view> </template>
</MescrollItem> </MescrollItem>
</view> </view>
</template> </template>
@ -21,6 +23,4 @@ import MescrollItem from '@/components/mescroll-api/one'
import { onPageScroll, onReachBottom } from '@dcloudio/uni-app' import { onPageScroll, onReachBottom } from '@dcloudio/uni-app'
import useMescrollComp from '@/uni_modules/mescroll-uni/hooks/useMescrollComp.js' import useMescrollComp from '@/uni_modules/mescroll-uni/hooks/useMescrollComp.js'
const { mescrollItem } = useMescrollComp(onPageScroll, onReachBottom) const { mescrollItem } = useMescrollComp(onPageScroll, onReachBottom)
</script> </script>

View File

@ -20,7 +20,7 @@
import CuNavbar from '@/components/cu-navbar/index.vue' import CuNavbar from '@/components/cu-navbar/index.vue'
import BaseData from '@/pages/audits/base-data.vue' import BaseData from '@/pages/audits/base-data.vue'
import { ref } from 'vue' import { ref } from 'vue'
import { onLoad } from '@dcloudio/uni-app' import { onLoad ,onShow} from '@dcloudio/uni-app'
import { http } from '@/utils/request' import { http } from '@/utils/request'
const modalRef = ref(null) const modalRef = ref(null)
const actions = ref([ const actions = ref([
@ -112,6 +112,8 @@ const onDelete = () => {
onLoad((option) => { onLoad((option) => {
id.value = option.id id.value = option.id
})
onShow(()=>{
getDetail() getDetail()
}) })

View File

@ -12,8 +12,14 @@
labelPosition="left" labelPosition="left"
> >
<uv-form-item label="报销分类" required prop="reimbursement_type_id"> <uv-form-item label="报销分类" required prop="reimbursement_type_id">
<view @click="openType" keyName="name" class="h-full w-full flex justify-end"> <view
<view :class="{'text-gray': !type.name }">{{ type.name ?? '请选择' }}</view> @click="openType"
keyName="name"
class="h-full w-full flex justify-end"
>
<view :class="{ 'text-gray': !type.name }">{{
type.name ?? '请选择'
}}</view>
<uv-icon name="arrow-right"></uv-icon> <uv-icon name="arrow-right"></uv-icon>
</view> </view>
</uv-form-item> </uv-form-item>
@ -44,7 +50,9 @@
</uv-form-item> </uv-form-item>
<uv-line color="#f5f5f5"></uv-line> <uv-line color="#f5f5f5"></uv-line>
<uv-form-item label="报销凭证" prop="photos" required> <uv-form-item label="报销凭证" prop="photos" required>
<view class="text-right w-full text-hex-999">{{ form.photos.length }}/9</view> <view class="text-right w-full text-hex-999"
>{{ form.photos.length }}/9</view
>
</uv-form-item> </uv-form-item>
<view class="w-full"> <view class="w-full">
<uv-upload <uv-upload
@ -53,6 +61,7 @@
:fileList="form.photos" :fileList="form.photos"
@afterRead="afterRead" @afterRead="afterRead"
@delete="deletePic" @delete="deletePic"
@error="uploadError"
name="photos" name="photos"
></uv-upload> ></uv-upload>
</view> </view>
@ -112,7 +121,7 @@ const rules = reactive({
type: 'number', type: 'number',
min: 0, min: 0,
message: '报销金额不能小于0', message: '报销金额不能小于0',
} },
], ],
reason: [{ required: true, message: '请输入报销原因' }], reason: [{ required: true, message: '请输入报销原因' }],
photos: { photos: {
@ -125,14 +134,14 @@ const rules = reactive({
onLoad((e) => { onLoad((e) => {
if (e.id) { if (e.id) {
id.value = e.id id.value = e.id
http.get(`reimbursements/${e.id}`).then(res => { http.get(`reimbursements/${e.id}`).then((res) => {
type.value = res.type type.value = res.type
form.reimbursement_type_id = res.reimbursement_type_id form.reimbursement_type_id = res.reimbursement_type_id
form.expense = res.expense form.expense = res.expense
form.reason = res.reason form.reason = res.reason
if (res.photos && res.photos.length > 0) { if (res.photos && res.photos.length > 0) {
form.photos = res.photos.map(item => { form.photos = res.photos.map((item) => {
return {url: item} return { url: item }
}) })
} }
}) })
@ -145,9 +154,12 @@ const handleBlurExpense = (e) => {
} }
const submit = () => { const submit = () => {
formRef.value.validate().then((res) => { formRef.value
modalRef.value.open() .validate()
}).catch(error => {}) .then((res) => {
modalRef.value.open()
})
.catch((error) => {})
} }
const onSubmit = async () => { const onSubmit = async () => {
if (loading.value) return if (loading.value) return
@ -237,4 +249,11 @@ const typeConfirm = ({ value }) => {
const openType = () => { const openType = () => {
typeRef.value.open() typeRef.value.open()
} }
const uploadError = (err) => {
uni.showToast({
icon: 'none',
title: '权限未开启请前往设置给予APP相应权限',
})
}
</script> </script>

View File

@ -16,7 +16,8 @@
name="chat" name="chat"
></uv-icon> ></uv-icon>
</view> </view>
<Swiper>
<swiper>
<swiper-item> <swiper-item>
<view class="mt-60rpx">昨日累计金额</view> <view class="mt-60rpx">昨日累计金额</view>
<view class="mt-20rpx">截止{{ yesday_ledger.date }}</view> <view class="mt-20rpx">截止{{ yesday_ledger.date }}</view>
@ -51,7 +52,7 @@
</view> </view>
</view> </view>
</swiper-item> </swiper-item>
</Swiper> </swiper>
</view> </view>
<view> <view>
<view class="h-80rpx leading-80rpx px-base">近30天趋势数据</view> <view class="h-80rpx leading-80rpx px-base">近30天趋势数据</view>
@ -82,7 +83,6 @@ import { timeFormat } from '@climblee/uv-ui/libs/function'
import StoreDown from './components/store-down.vue' import StoreDown from './components/store-down.vue'
import { useUserStore } from '@/store/modules/user' import { useUserStore } from '@/store/modules/user'
import checkPermission from '@/utils/permission' import checkPermission from '@/utils/permission'
import { Swiper } from '@dcloudio/uni-h5'
const userStore = useUserStore() const userStore = useUserStore()
const opts = { const opts = {
color: ['#ee2c37'], color: ['#ee2c37'],
@ -132,9 +132,9 @@ const detail = ref({
current_month_ledger:{} current_month_ledger:{}
}) })
const chartData = ref({}) const chartData = ref({})
const yesday_ledger = computed(() => detail.value.yesday_ledger) const yesday_ledger = computed(() => detail.value.yesday_ledger || {})
const current_month_ledger = computed(() => detail.value.current_month_ledger) const current_month_ledger = computed(() => detail.value.current_month_ledger || {})
const trends_of_30days = computed(() => detail.value.trends_of_30days) const trends_of_30days = computed(() => detail.value.trends_of_30days || [])
const yesterday = computed(() => { const yesterday = computed(() => {
return timeFormat(Number(new Date()) - 1000 * 60 * 60 * 24) return timeFormat(Number(new Date()) - 1000 * 60 * 60 * 24)
@ -179,7 +179,6 @@ const getData = (e = {}) => {
if (!checkPermission(['admin'])) { if (!checkPermission(['admin'])) {
e.store_id = userStore?.userInfo?.store?.id e.store_id = userStore?.userInfo?.store?.id
} }
console.log(e.store_id)
http http
.get('/statistics/dashboard', { .get('/statistics/dashboard', {
params: { params: {

View File

@ -6,14 +6,6 @@
</template> </template>
</CuNavbar> </CuNavbar>
<view class="card-shadow bg-white rounded-19rpx p-base"> <view class="card-shadow bg-white rounded-19rpx p-base">
<uv-form-item label="头像" prop="avatar">
<view class="flex justify-end w-full" @click="chooseAvatar">
<view class="w-90rpx h-90rpx overflow-hidden">
<image class="w-full h-full" :src="form.avatar"></image>
</view>
</view>
</uv-form-item>
<uv-line color="#f5f5f5"></uv-line>
<uv-form <uv-form
labelWidth="150rpx" labelWidth="150rpx"
:model="form" :model="form"
@ -21,6 +13,14 @@
errorType="toast" errorType="toast"
:rules="rules" :rules="rules"
> >
<uv-form-item label="头像" prop="avatar">
<view class="flex justify-end w-full" @click="chooseAvatar">
<view class="w-90rpx h-90rpx overflow-hidden rounded-full">
<image class="w-full h-full" :src="form.avatar"></image>
</view>
</view>
</uv-form-item>
<uv-line color="#f5f5f5"></uv-line>
<uv-form-item label="姓名" prop="name"> <uv-form-item label="姓名" prop="name">
<uv-input <uv-input
v-model="form.name" v-model="form.name"
@ -114,8 +114,13 @@ const chooseAvatar = () => {
uni.chooseImage({ uni.chooseImage({
count: 1, count: 1,
success: async (res) => { success: async (res) => {
const data = await uploadFilePromise(res.tempFilePaths[0]) console.log(res)
form.avatar = data try {
const data = await uploadFilePromise(res.tempFilePaths[0])
form.avatar = data
} catch (error) {
console.log(error)
}
}, },
}) })
} }