diff --git a/App.vue b/App.vue index c3adbac..d937be5 100644 --- a/App.vue +++ b/App.vue @@ -4,8 +4,9 @@ // 定义全局数据 const $globalData = { - BASE_URL: 'https://dev.api.leapy.cn/merchant/', - RESOURCE_URL: 'https://resource.leapy.cn/staff/' + BASE_URL: 'https://api.leapy.cn/merchant/', + RESOURCE_URL: 'https://resource.leapy.cn/staff/', + title:'中金智慧物业管理平台' // 乐享云智慧物业管理平台 / 中金智慧物业管理平台 } // 使用 uni 对象来存储全局数据 // @ts-ignore diff --git a/main.ts b/main.ts index 44c70cb..f04e6f4 100644 --- a/main.ts +++ b/main.ts @@ -23,6 +23,27 @@ import { export function createApp() { const app = createSSRApp(App) app.use(pinia); + app.mixin({ + // 分享到好友 + onShareAppMessage() { + return { + title: '智慧物业员工端,一键提升工作效率', + path: '', + imageUrl: '' + } + }, + // 分享到朋友圈 + onShareTimeline() { + return { + title: '智慧物业员工端,一键提升工作效率', + path: '', + imageUrl: '' + } + }, + }) + + + // 全局挂载 useUserInfo,使 nvue 页面可以使用 const userInfoStore = useUserInfo() diff --git a/manifest.json b/manifest.json index 705b9c9..acba046 100644 --- a/manifest.json +++ b/manifest.json @@ -56,7 +56,8 @@ "quickapp" : {}, /* 小程序特有相关 */ "mp-weixin" : { - "appid" : "wxaec84a18ccf98226", + "appid" : "wx064fdd85b3ae3c60", + // "appid" : "wxaec84a18ccf98226", "setting" : { "urlCheck" : false, "es6" : true, diff --git a/pages/index/index.vue b/pages/index/index.vue index 527e273..1266a2b 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -350,13 +350,14 @@ messageCount.value = mess.data.count // 轮播加载 const banner = await bannerList({ - position: 1 + position: 5 }) if (banner.data.length > 0) { swiperList.value = banner.data.map((item) => item.image) - } else { - swiperList.value.push('/static/swiper/1.png', ) - } + } + // else { + // swiperList.value.push('/static/swiper/1.png', ) + // } }) // 获取用户权限 diff --git a/pages/login/index.vue b/pages/login/index.vue index 9209a79..0c3e7a3 100644 --- a/pages/login/index.vue +++ b/pages/login/index.vue @@ -2,7 +2,7 @@ - 物业综合管理平台 + {{title}} @@ -56,6 +56,8 @@ import { useToast } from '@/uni_modules/wot-design-uni'; const Toast = useToast(); declare const uni : Uni + + const title = uni.$globalData?.title interface formItem { username : string @@ -82,7 +84,7 @@ image: '' }) - const check = ref(true) + const check = ref(false) const loginHandle = async () => { if (!check.value) { diff --git a/pages/mine/index.vue b/pages/mine/index.vue index f52a09d..e4ac9eb 100644 --- a/pages/mine/index.vue +++ b/pages/mine/index.vue @@ -5,7 +5,7 @@ + :src="user_info?.avatar?user_info?.avatar:'/static/logo.png'" mode=""> diff --git a/pagesA/my_order/detail.vue b/pagesA/my_order/detail.vue index 59c0cad..fe907ff 100644 --- a/pagesA/my_order/detail.vue +++ b/pagesA/my_order/detail.vue @@ -92,7 +92,9 @@ - + + {{product.product_name}} {{product.spec_name}} @@ -137,7 +139,8 @@ 现场照片 + :src="item" mode="aspectFill" + @click="previewImages(item, ticketInfo?.order?.images?.split(','))"> @@ -175,7 +178,8 @@ 现场照片 + :src="item" mode="aspectFill" + @click="previewImages(item, ticketInfo?.order?.images?.split(','))"> @@ -210,13 +214,8 @@ 结单照片 - + @@ -253,7 +252,8 @@ 上传照片(选填) - + @@ -386,8 +386,8 @@ const revert = () => { Message.confirm({ - msg: '提示', - title: '确定退单吗?' + msg: '确定退单吗?', + title: '提示' }) .then(() => { getTicketRevert() @@ -443,15 +443,35 @@ // 从相册选择 const handleSelectAlbum = () => { uni.chooseImage({ - count: 9 - uploadImages.value.length, + count: 9 - uploadImages.value.length, // 最多可选择的图片数量 sizeType: ['compressed'], sourceType: ['album'], success: async (res) => { showImageActionSheet.value = false - const tempFilePath = res.tempFilePaths[0] - const fileUrl = await fileUpload(tempFilePath) - uploadImages.value.push(fileUrl) - Toast.success('上传成功') + + // 显示上传中提示 + if (res.tempFilePaths.length > 1) { + uni.showLoading({ title: '正在上传...' }) + } + + // 处理所有选择的图片,而不只是第一张 + for (const tempFilePath of res.tempFilePaths) { + try { + const fileUrl = await fileUpload(tempFilePath) + uploadImages.value.push(fileUrl) + + + } catch (error) { + console.error('上传图片失败:', error) + } + } + + // 隐藏加载提示 + if (res.tempFilePaths.length > 1) { + uni.hideLoading() + } + + Toast.success(`成功上传${res.tempFilePaths.length}张图片`) } }) } @@ -459,15 +479,33 @@ // 拍照 const handleTakePhoto = () => { uni.chooseImage({ - count: 1, + count: 9 - uploadImages.value.length, // 允许多张拍照上传 sizeType: ['compressed'], sourceType: ['camera'], success: async (res) => { showImageActionSheet.value = false - const tempFilePath = res.tempFilePaths[0] - const fileUrl = await fileUpload(tempFilePath) - uploadImages.value.push(fileUrl) - Toast.success('上传成功') + + // 显示上传中提示 + if (res.tempFilePaths.length > 1) { + uni.showLoading({ title: '正在上传...' }) + } + + // 处理所有拍摄的照片 + for (const tempFilePath of res.tempFilePaths) { + try { + const fileUrl = await fileUpload(tempFilePath) + uploadImages.value.push(fileUrl) + } catch (error) { + console.error('上传图片失败:', error) + } + } + + // 隐藏加载提示 + if (res.tempFilePaths.length > 1) { + uni.hideLoading() + } + + Toast.success(`成功上传${res.tempFilePaths.length}张图片`) } }) } diff --git a/pagesA/verification/historyDetail.vue b/pagesA/verification/historyDetail.vue index 1b9d603..36c5ef8 100644 --- a/pagesA/verification/historyDetail.vue +++ b/pagesA/verification/historyDetail.vue @@ -186,26 +186,26 @@ // 商品列表数据 - const productList = ref([ - { - id: 1, - name: '示例商品名称1', - code: 'SP202505126', - spec: '默认', - quantity: 2, - price: '299.00', - image: '../../static/swiper/1.png' - }, - { - id: 2, - name: '示例商品名称2', - code: 'SP202505127', - spec: '大号', - quantity: 1, - price: '399.00', - image: '../../static/swiper/1.png' - } - ]) + // const productList = ref([ + // { + // id: 1, + // name: '示例商品名称1', + // code: 'SP202505126', + // spec: '默认', + // quantity: 2, + // price: '299.00', + // image: '../../static/swiper/1.png' + // }, + // { + // id: 2, + // name: '示例商品名称2', + // code: 'SP202505127', + // spec: '大号', + // quantity: 1, + // price: '399.00', + // image: '../../static/swiper/1.png' + // } + // ]) // 计算商品总数 const getTotalQuantity = () => { diff --git a/pagesB/permissions/staffList.vue b/pagesB/permissions/staffList.vue index cfbc133..c9e1b0c 100644 --- a/pagesB/permissions/staffList.vue +++ b/pagesB/permissions/staffList.vue @@ -153,7 +153,7 @@ const staffList = ref([ id: 1, name: '张三', phone: '13800138000', - avatar: '/static/swiper/1.png', + avatar: '', permissions: ['delivery', 'complaint'], department: '配送部' }, @@ -161,7 +161,7 @@ const staffList = ref([ id: 2, name: '李四', phone: '13800138001', - avatar: '/static/swiper/1.png', + avatar: '', permissions: ['delivery', 'maintenance', 'inspection', 'facility', 'visitor'], department: '综合部' }, @@ -169,7 +169,7 @@ const staffList = ref([ id: 3, name: '王五', phone: '13800138002', - avatar: '/static/swiper/1.png', + avatar: '', permissions: ['maintenance', 'inspection'], department: '工程部' }, @@ -177,7 +177,7 @@ const staffList = ref([ id: 4, name: '赵六', phone: '13800138003', - avatar: '/static/swiper/1.png', + avatar: '', permissions: [], department: '客服部' } diff --git a/static/logo.png b/static/logo.png index 773d879..4a2d720 100644 Binary files a/static/logo.png and b/static/logo.png differ diff --git a/static/m_avatar.png b/static/m_avatar.png deleted file mode 100644 index d75bb92..0000000 Binary files a/static/m_avatar.png and /dev/null differ diff --git a/static/swiper/1.png b/static/swiper/1.png deleted file mode 100644 index 3fbdf1a..0000000 Binary files a/static/swiper/1.png and /dev/null differ diff --git a/static/w_avatar.png b/static/w_avatar.png deleted file mode 100644 index 2fa8261..0000000 Binary files a/static/w_avatar.png and /dev/null differ diff --git a/unocss/a-hua-unocss/index.scss b/unocss/a-hua-unocss/index.scss index c51c38b..5640da9 100644 --- a/unocss/a-hua-unocss/index.scss +++ b/unocss/a-hua-unocss/index.scss @@ -42,25 +42,6 @@ .li-w-58{width:58rpx} .li-w-full-70{width:70%} .li-w-full-88{width:88%} -.li-font-550{font-weight:550} -.li-h-68{height:68rpx} -.li-mt-100{margin-top:100rpx} -.li-mt-28{margin-top:28rpx} -.li-mt-32{margin-top:32rpx} -.li-mt-90{margin-top:90rpx} -.li-mx-10{margin-left:10rpx;margin-right:10rpx} -.li-pt-270{padding-top:270rpx} -.li-rd-40{border-radius:40rpx} -.li-text-000000-color{color:rgb(0,0,0)} -.li-text-24{font-size:24rpx} -.li-text-2EA1EA-color{color:rgb(46,161,234)} -.li-text-38{font-size:38rpx} -.li-text-a5a5a5-color{color:rgb(165,165,165)} -.li-w-150{width:150rpx} -.li-w-420{width:420rpx} -.li-w-full-80{width:80%} -.li-w-full-85{width:85%} -.li-w-full-90{width:90%} .li-flex-center{display:flex;align-items:center;justify-content:center} .li-h-100{height:100rpx} .li-ml-20{margin-left:20rpx} @@ -74,33 +55,16 @@ .li-rd-full-50{border-radius:50%} .li-text-25{font-size:25rpx} .li-text-35{font-size:35rpx} +.li-text-38{font-size:38rpx} .li-text-42{font-size:42rpx} .li-text-46{font-size:46rpx} .li-w-100{width:100rpx} +.li-w-full-80{width:80%} .bg-0070F0{background-color:rgb(0,112,240)} .bg-FFFFFF{background-color:rgb(255,255,255)} -.border-4-white{border-style:solid;border-color:rgb(255,255,255);border-width:4rpx} .bg-f9f9f9{background-color:rgb(249,249,249)} +.border-4-white{border-style:solid;border-color:rgb(255,255,255);border-width:4rpx} .li-font-bold{font-weight:bold} -.li-mb-8{margin-bottom:8rpx} -.li-ml-15{margin-left:15rpx} -.li-ml-6{margin-left:6rpx} -.li-mr-6{margin-right:6rpx} -.li-p-15{padding:15rpx} -.li-pb-15{padding-bottom:15rpx} -.li-pb-30{padding-bottom:30rpx} -.li-pt-25{padding-top:25rpx} -.li-pt-4{padding-top:4rpx} -.li-text-009aff-color{color:rgb(0,154,255)} -.li-text-32{font-size:32rpx} -.li-text-333333-color{color:rgb(51,51,51)} -.li-text-36{font-size:36rpx} -.li-text-55{font-size:55rpx} -.li-text-70{font-size:70rpx} -.li-text-9a9a9a-color{color:rgb(154,154,154)} -.li-text-ff0000-color{color:rgb(255,0,0)} -.li-w-full-100{width:100%} -.li-w-full-92{width:92%} .li-h-240{height:240rpx} .li-h-250{height:250rpx} .li-h-50{height:50rpx} @@ -124,8 +88,11 @@ .li-rd-20{border-radius:20rpx} .li-rd-tl-30-important{border-top-left-radius:30rpx !important} .li-rd-tr-30-important{border-top-right-radius:30rpx !important} +.li-text-000000-color{color:rgb(0,0,0)} .li-text-19171B-color{color:rgb(25,23,27)} .li-text-20{font-size:20rpx} +.li-text-24{font-size:24rpx} +.li-text-32{font-size:32rpx} .li-text-706e70-color{color:rgb(112,110,112)} .li-text-BBBDDA-color{color:rgb(187,189,218)} .li-text-F2F7FD-color{color:rgb(242,247,253)} @@ -136,14 +103,39 @@ .li-w-50{width:50rpx} .li-w-60{width:60rpx} .li-w-full-94{width:94%} -.li-font-400{font-weight:400} -.li-m-30{margin:30rpx} -.li-text-595959-color{color:rgb(89,89,89)} -.li-mr-200{margin-right:200rpx} -.li-mr-4{margin-right:4rpx} -.li-text-48{font-size:48rpx} -.li-text-666-color{color:rgb(102,102,102)} -.li-mb-25{margin-bottom:25rpx} +.li-mb-8{margin-bottom:8rpx} +.li-ml-15{margin-left:15rpx} +.li-ml-6{margin-left:6rpx} +.li-mr-6{margin-right:6rpx} +.li-p-15{padding:15rpx} +.li-pb-15{padding-bottom:15rpx} +.li-pb-30{padding-bottom:30rpx} +.li-pt-25{padding-top:25rpx} +.li-pt-4{padding-top:4rpx} +.li-text-009aff-color{color:rgb(0,154,255)} +.li-text-333333-color{color:rgb(51,51,51)} +.li-text-36{font-size:36rpx} +.li-text-55{font-size:55rpx} +.li-text-70{font-size:70rpx} +.li-text-9a9a9a-color{color:rgb(154,154,154)} +.li-text-ff0000-color{color:rgb(255,0,0)} +.li-w-full-100{width:100%} +.li-w-full-92{width:92%} +.li-font-550{font-weight:550} +.li-h-68{height:68rpx} +.li-mt-100{margin-top:100rpx} +.li-mt-28{margin-top:28rpx} +.li-mt-32{margin-top:32rpx} +.li-mt-90{margin-top:90rpx} +.li-mx-10{margin-left:10rpx;margin-right:10rpx} +.li-pt-270{padding-top:270rpx} +.li-rd-40{border-radius:40rpx} +.li-text-2EA1EA-color{color:rgb(46,161,234)} +.li-text-a5a5a5-color{color:rgb(165,165,165)} +.li-w-150{width:150rpx} +.li-w-420{width:420rpx} +.li-w-full-85{width:85%} +.li-w-full-90{width:90%} .li-flex-wrap{flex-wrap:wrap} .li-h-110{height:110rpx} .li-items-start{align-items:start} @@ -161,52 +153,60 @@ .li-py-6{padding-top:6rpx;padding-bottom:6rpx} .li-text-40{font-size:40rpx} .li-text-5f5f5f-color{color:rgb(95,95,95)} +.li-text-666-color{color:rgb(102,102,102)} .li-text-right{text-align:right} .li-w-110{width:110rpx} .li-w-400{width:400rpx} .overflow-hidden{overflow:hidden} -.li-border-b{border-style:solid;border-color:b;border-width:1rpx} -.li-mb-15{margin-bottom:15rpx} +.li-mb-25{margin-bottom:25rpx} +.li-font-400{font-weight:400} +.li-m-30{margin:30rpx} +.li-text-595959-color{color:rgb(89,89,89)} .li-mb-30{margin-bottom:30rpx} -.li-my-20{margin-top:20rpx;margin-bottom:20rpx} -.li-p-30{padding:30rpx} -.li-py-30{padding-top:30rpx;padding-bottom:30rpx} -.li-text-0070F0-color{color:rgb(0,112,240)} -.li-text-333-color{color:rgb(51,51,51)} -.li-text-ff6b35-color{color:rgb(255,107,53)} -.li-mt-100-important{margin-top:100rpx !important} -.li-mt-8{margin-top:8rpx} -.li-text-999-color{color:rgb(153,153,153)} .li-ml-10{margin-left:10rpx} +.li-mr-200{margin-right:200rpx} +.li-mr-4{margin-right:4rpx} +.li-mt-100-important{margin-top:100rpx !important} .li-mt-4{margin-top:4rpx} .li-mt-50{margin-top:50rpx} +.li-mt-8{margin-top:8rpx} .li-py-40{padding-top:40rpx;padding-bottom:40rpx} +.li-text-0070F0-color{color:rgb(0,112,240)} +.li-text-333-color{color:rgb(51,51,51)} .li-text-34{font-size:34rpx} .li-text-44{font-size:44rpx} +.li-text-48{font-size:48rpx} .li-text-90{font-size:90rpx} +.li-text-999-color{color:rgb(153,153,153)} .li-text-center{text-align:center} .li-text-white{color:rgb(255,255,255)} .li-w-500{width:500rpx} +.li-border-b{border-style:solid;border-color:b;border-width:1rpx} +.li-mb-15{margin-bottom:15rpx} +.li-my-20{margin-top:20rpx;margin-bottom:20rpx} +.li-p-30{padding:30rpx} +.li-py-30{padding-top:30rpx;padding-bottom:30rpx} +.li-text-ff6b35-color{color:rgb(255,107,53)} .li-h-90{height:90rpx} .li-text-47{font-size:47rpx} .li-w-90{width:90rpx} -.li-flex-1{flex:1} -.li-mt-25{margin-top:25rpx} -.li-mt-5{margin-top:5rpx} -.li-text-999999-color{color:rgb(153,153,153)} -.li-w-160{width:160rpx} .li-block{display:block} .li-items-baseline{align-items:baseline} .li-mr-15{margin-right:15rpx} +.li-mt-5{margin-top:5rpx} .li-opacity-100{undefined:1} .li-rd-12{border-radius:12rpx} .li-rd-16{border-radius:16rpx} .li-text-0a4696-color{color:rgb(10,70,150)} .li-text-50{font-size:50rpx} -.li-line-clamp-2{overflow:hidden;display:-webkit-box;line-clamp:2;-webkit-box-orient:vertical;-webkit-line-clamp:2} -.li-w-full-96{width:96%} +.li-flex-1{flex:1} +.li-mt-25{margin-top:25rpx} +.li-text-999999-color{color:rgb(153,153,153)} +.li-w-160{width:160rpx} .li-mt-200{margin-top:200rpx} .li-pt-6{padding-top:6rpx} +.li-line-clamp-2{overflow:hidden;display:-webkit-box;line-clamp:2;-webkit-box-orient:vertical;-webkit-line-clamp:2} +.li-w-full-96{width:96%} .li-my-10{margin-top:10rpx;margin-bottom:10rpx} .li-p-20{padding:20rpx} @@ -217,7 +217,6 @@ .li-text-dddddd-color{color:rgb(221,221,221)} .li-text-ff9900-color{color:rgb(255,153,0)} - .li-flex-row-reverse{flex-direction:row-reverse} .li-opacity-80{undefined:0.8} .li-pb-40{padding-bottom:40rpx} @@ -239,3 +238,4 @@ + diff --git a/utils/request.ts b/utils/request.ts index ce8fa2b..7567519 100644 --- a/utils/request.ts +++ b/utils/request.ts @@ -37,6 +37,7 @@ export const request = (endpoint : string, options : RequestOptions = {}) => { 'Authorization': 'Bearer ' + uni.$store.state.token }, success: (response) => { + console.log(response); if (response.statusCode >= 200 && response.statusCode < 300) { if (response.data.code == 500) { uni.$store.commit("logout")