修改bug
parent
d493730d19
commit
d6ffa348cc
|
|
@ -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
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,14 @@
|
||||||
},
|
},
|
||||||
/* ios打包配置 */
|
/* ios打包配置 */
|
||||||
"ios" : {
|
"ios" : {
|
||||||
"dSYMs" : false
|
"dSYMs" : false,
|
||||||
|
"privacyDescription" : {
|
||||||
|
"NSPhotoLibraryUsageDescription" : "因相关功能涉及图片的读取与写入,请在设置中开启相册权限",
|
||||||
|
"NSPhotoLibraryAddUsageDescription" : "因相关功能涉及图片的读取与写入,请在设置中开启相册权限",
|
||||||
|
"NSCameraUsageDescription" : "因相关功能涉及照相,请在设置开启相机权限",
|
||||||
|
"NSLocationWhenInUseUsageDescription" : "用户能快速知道当前位置",
|
||||||
|
"NSLocationAlwaysAndWhenInUseUsageDescription" : "用户能快速知道当前位置"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
/* SDK配置 */
|
/* SDK配置 */
|
||||||
"sdkConfigs" : {
|
"sdkConfigs" : {
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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: {
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue