diff --git a/ahyd_DIB.zip b/ahyd_DIB.zip index 9d7813f..0893cf3 100644 Binary files a/ahyd_DIB.zip and b/ahyd_DIB.zip differ diff --git a/pages.json b/pages.json index ad396a0..d09bdbb 100644 --- a/pages.json +++ b/pages.json @@ -94,6 +94,18 @@ } ] }, + { + "root": "pages/newamine", + "pages": [ + { + "path": "index", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + } + ] + }, { // 商业BI "root": "pages/commercialBI", "pages": [ diff --git a/pages/additionalFeatures/positionPunching.vue b/pages/additionalFeatures/positionPunching.vue index cbc57e6..0cce669 100644 --- a/pages/additionalFeatures/positionPunching.vue +++ b/pages/additionalFeatures/positionPunching.vue @@ -25,7 +25,7 @@
- +
{{!workLocale.isAmclock ? '下班打卡': '上班打卡'}}
{{signin.time}}
@@ -39,7 +39,7 @@
- +
{{clockDate}}
打卡成功!
知道了
@@ -54,7 +54,7 @@ export default{ data(){ - const nowday = this.$util.cutDate(new Date()) + const nowday = this.$util.cutDate(new Date()) return { loading: true, clockDate:'', @@ -105,7 +105,7 @@ // const latitude = res.latitude // const longitude = res.longitude // let { ClockLng,ClockLat } = _this.workLocale - + // _this.$util.calculateDistance( // {latitude:latitude, longitude:longitude}, // {latitude: ClockLat, longitude: ClockLng}) @@ -128,10 +128,10 @@ this.signin.time = this.$util.cutDate(time,'hh:mm:ss') }, getDay (){ - - var a = new Array("日", "一", "二", "三", "四", "五", "六"); - var week = new Date().getDay(); - this.signin.day = "星期"+ a[week]; + + var a = new Array("日", "一", "二", "三", "四", "五", "六"); + var week = new Date().getDay(); + this.signin.day = "星期"+ a[week]; }, // getWorkLocale(){ //获取 考勤地址、坐标,打卡范围,上、下班时间 // let _this= this @@ -149,18 +149,18 @@ // longitude: ClockLng, // title: msg.ClockAddress, // }] - + // _this.circles[0].latitude = ClockLat // _this.circles[0].longitude = ClockLng // _this.circles[0].radius = msg.ClockRange - + // let am = new Date(nowDay+' '+msg.AMEndtime+':00') // msg.isAmclock = am.getTime()-(new Date()).getTime() >0 ? true: false // _this.workLocale = msg // _this.loading = false // // _this.getLocation() // } - + // }else { // uni.showModal({ // title:'温馨提示', @@ -170,7 +170,7 @@ // } // }) // }, - + getMsg(){ // 更新用户当前打卡时间 let _this= this let nowDay = this.nowDay @@ -182,16 +182,16 @@ if( res.Data.List.length>0){ let msg = res.Data.List[0] _this.pageMsg = msg - + } - + } }) }, faceClock(){ // 提交打卡 let _this= this let location = this.signin - + if(!this.signin.isAble) return _this.signinTime = this.signin.time uni.showLoading({ @@ -204,13 +204,13 @@ photo: this.userPhoto || '' }).then(res =>{ _this.loading = false - + uni.hideLoading() if(res.Result_Code==100) { _this.clockDate = res.Data.ClockDate _this.getMsg() _this.showPop = true - + }else{ uni.showModal({ content:'打卡失败:'+res.Result_Desc @@ -227,31 +227,31 @@ let _this = this if(!this.signin.isAble) return // 是否可以打卡 if(this.loading ) return // 是否正在上传 - + uni.navigateTo({ url:'/pages/additionalFeatures/takePhoto' }) }, photoTobase64(photoPath){ // 把图片转为base64 - + let _this= this uni.getFileSystemManager().readFile({ filePath: photoPath, //选择图片返回的相对路径 encoding: 'base64', //编码格式 - success: res => { // + success: res => { // let base64 = res.data.replace(/\+/ig,'%2B') //不加上这串字符,在页面无法显示的哦 - - _this.userPhoto = base64 + + _this.userPhoto = base64 _this.faceClock() } }) - + } }, onLoad() { let _this = this // this.getWorkLocale() - + _this.setTime = setInterval(function(){_this.getTime()},1000) _this.getMsg() uni.$on('addUserPhoto',function(data){ // 监听打卡拍照的数据,接收拍照的照片地址 @@ -263,13 +263,13 @@ onPullDownRefresh() { let _this = this _this.getLocation() - + setTimeout(function() { uni.stopPullDownRefresh() - + }, 1000) }, - + onUnload() { // console.log(1) uni.$off('addUserPhoto') @@ -308,7 +308,7 @@ } .date-text { color: #A3A3A3; - + font-size: 22rpx; /* line-height: 50rpx; */ /* margin-left: 8rpx; */ @@ -330,7 +330,7 @@ } .punching-date-box:nth-child(2)::before { content: ''; - position: absolute; + position: absolute; height: 190rpx; width: 2rpx; display: block; @@ -385,7 +385,7 @@ box-sizing: border-box; } .bg-gray.btn { - background:linear-gradient(#cdd4d8 0%, #ADB2BF 100%); + background:linear-gradient(#cdd4d8 0%, #ADB2BF 100%); } .able-text { color: #8B8D8E; @@ -413,7 +413,7 @@ margin: 0 50%; } .tip-text { - + font-size: 46rpx; text-align: center; color: #7B95A9; diff --git a/pages/index/index.vue b/pages/index/index.vue index 6c13c95..c3dcf89 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -16,8 +16,8 @@ {{ single }} - - + +
@@ -1422,8 +1422,9 @@ export default { // 切换考核的数据 this.handleGetExamine() // 切换日常巡检数据 - this.handleGetDailyPatrol() + // 获取全省平均车流量 + this.handleGetAllCarTraffic() } }, getCarInfo(date){ @@ -1614,14 +1615,13 @@ export default { // 同比去年的年度累计 let yearYoY = (((result.MonthRevenueModel.YearRevenueAmount - result.MonthRevenueModel.YearRevenueYOY) / result.MonthRevenueModel.YearRevenueYOY)*100).toFixed(2) console.log('yearYoY',yearYoY) - this.showTableData.yearYoY = Number(yearYoY) + this.showTableData.yearYoY = Number(yearYoY)>0 ? '+' + Number(yearYoY) : Number(yearYoY) } if (this.showTableData.RevenueQOQ){ // 对客的环比 let customerQoQ = (((result.MonthRevenueModel.CashPay - result.MonthRevenueModel.RevenueQOQ) / result.MonthRevenueModel.RevenueQOQ)*100).toFixed(2) console.log('customerQoQ',customerQoQ) - this.showTableData.customerQoQ = Number(customerQoQ)>0?'+'+customerQoQ+'%':Number(customerQoQ)<0?'-'+customerQoQ+'%':'' - + this.showTableData.customerQoQ = Number(customerQoQ)>0?'+'+customerQoQ+'%':Number(customerQoQ)<0?customerQoQ+'%':'' } this.yesObj = result.RevenuePushModel diff --git a/pages/newamine/component/yearCharts.vue b/pages/newamine/component/yearCharts.vue new file mode 100644 index 0000000..5ad089a --- /dev/null +++ b/pages/newamine/component/yearCharts.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/pages/newamine/index.vue b/pages/newamine/index.vue index 541f46a..6dcb958 100644 --- a/pages/newamine/index.vue +++ b/pages/newamine/index.vue @@ -7,271 +7,216 @@ - - 考评考核 + + + + + + 2023/08/09 + + + - + + + {{item.label}} + + + + + + + + 数据汇总 + 月度 + + + + + + + + 92 + 优秀/个 + + + + + + + 92 + 良好/个 + + + + + + + 92 + 一般/个 + + + + + + + + + 数据汇总 + + + + 17 + 整改中/个 + + + 6 + 未整改/个 + + + + + + + 92.81% + 达标率/全省 + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{ selectTab===1?popupShow===4?'':'选择片区':selectTab===2?`${popupServiceName}`:'会议内容' }} - - - - {{item.label}}片区 - - - - {{item.label}} + + + + + 服务区排名 + + 排序 + - - - - {{item.PATROL_POSITION}} - - + + + + {{item.label}} + + + + + + + + {{item.SERVERPART_NAME}} + + {{item.EXAMINE_MQUARTER!=='0'?item.EXAMINE_MQUARTER==='1'?'一'+'季度':item.EXAMINE_MQUARTER==='2'?'二'+'季度':item.EXAMINE_MQUARTER==='3'?'三'+'季度':'四' + '季度':'月度'}} + - - - - {{subItem.PATROL_DATE.split(' ')[1]}} - 检查人: {{subItem.PATROL_PERSON}} - - - - - {{ subItem.PATROL_SITUATION || "-"}} - - 情况及问题 - - - {{ subItem.RECTIFICATION_PERIOD || "-" }} - 整改期限 - - - {{ subItem.RECTIFICATION_RESULT || "-" }} - 整改结果 + + + + {{ subItem.REGION_NAME }} + + {{subItem.SERVERPARTList[0].EXAMINE_SCORE}} + + - - - -

{{item.PATROL_PERSON}}

-

检查人

-
- -

{{item.PATROL_DATE}}

-

检查日期

-
- -

{{item.PATROL_ROUTE}}

-

路线

-
- - -

图片

-
-
+
+
+ + + + 服务区排名 + + 排序 + - - - - {{popupMeetDetail.MEETING_DATE}} - - - - {{popupMeetDetail.MEETING_PERSONS}} - - - - {{popupMeetDetail.MEETING_CONTENT}} + + + {{item.label}} + + + + + + + + 黄山服务区 + + + + + 1 + /6 + + + + + 描述 + 广场、洗漱台、绿化带、宣传栏、标识标牌、垃圾桶、玻璃门窗、镜面保洁 + + + + + + + + + + + {{ selectTab===1?popupShow===4?'':'服务区详情':selectTab===2?`${popupServiceName}`:'会议内容' }} + + + + + + {{item.SERVERPART_NAME.split('服务区')[0]}} + + + + + + {{item.REGION_NAME}} + + + + + + + {{subItem.EXAMINE_PERSON}} + + + + {{subItem.EXAMINE_OPERATEDATE}} + + + + + + 便利店 + + + -2 + + + 便利店标签内容与信息不符, 酒类商品无温馨提示; + + + + + + + @@ -315,8 +260,10 @@ import request from '@/util/index.js' import uniPopup from '@/components/uni-popup' import Store from "../../store/store"; +import YearCharts from "./component/yearCharts.vue"; export default { components:{ + YearCharts, uniPopup }, data(){ @@ -334,8 +281,9 @@ export default { areaList:[],// 片区列表 selectAreaValue:'',// 选择的片区value selectAreaName:'',// 选择的片区名字 - tabList:[{label:'考核管理',value:1},{label:'日常巡检',value:2},{label:'晨会管理',value:3}],// tab选项卡 + tabList:[{label:'考核管理',value:1},{label:'日常巡检',value:2}],// tab选项卡 ,{label:'晨会管理',value:3} selectTab:1,// 选中的tab选项卡 + serviceAllList:[],// 三种类型总的服务区考核信息 serviceList:[],// 服务区列表 inspectionList:[],// 日常巡检列表 meetDetailList:[],// 晨会管理列表 @@ -355,6 +303,13 @@ export default { examineList:[], showImgUrl:{},// 展示的图片地址 queryTime:'',// 传入的时间 + contentTabList:[{label:'优秀',value:1},{label:'良好',value:2},{label:'一般',value:3}], + dailyTabList:[{label:'已整改',value:1},{label:'未整改',value:2}], + selectDaily:1, + selectContentTab:1, + rate:0, + currentObj:{},// 考核弹出框的内容 + selectMenu:0,// 选中左侧菜单的第几个 } }, onLoad(query){ @@ -388,7 +343,9 @@ export default { // 日历数组 // this.dateList = this.$util.getThisMonthDateList(date) console.log('this.dateList',this.dateList) - + setTimeout(()=>{ + this.rate = 92.81 + },100) }, onReady(){ // 只有在页面已经渲染好了 才能把选中的日期 移到可视区域里面 @@ -396,6 +353,11 @@ export default { _this.getThisMonth() }, methods:{ + handleDetail(item,index){ + this.selectMenu = index + console.log(item) + this.handleGetExamineDetail(item.list[0],true) + }, handleOpenDetail(item){ console.log('item',item) }, @@ -433,7 +395,14 @@ export default { console.log('this.selectDate',this.selectDate) this.currentDate = 'item'+`${year}-${month}-${showDay}` // 获得片区列表 - this.getAreaList(`${year}-${month}-${day}`) + // this.getAreaList(`${year}-${month}-${day}`) + if (this.selectTab===1){ + // 考核管理列表 + this.getManagerList(date) + }else if(this.selectTab===2){ + // 日常巡检列表 + this.getDailyInspectionList() + } }, // 是否显示弹出框 handleShowPopup(value,obj){ @@ -471,7 +440,10 @@ export default { // 弹出框显示 this.showPop = true }, - async handleGetExamineDetail(obj){ + async handleGetExamineDetail(obj,type){ + uni.showLoading({ + title: '正在加载...' + }) const total = await request.$webGet(`CommercialApi/Examine/WeChat_GetExamineDetail`,{ExamineId: obj.SERVERPARTList[0].EXAMINE_ID}) let list = total.Result_Data.List list.forEach(item=>{ @@ -485,6 +457,10 @@ export default { }) console.log('list',list) this.examineList = list + uni.hideLoading() + if (type){ + this.showPop = true + } }, handleChangeChild(subItem){ console.log('subItem',subItem) @@ -580,6 +556,18 @@ export default { this.getMeetingDetail() } }, + handleChangeContentTab(value){ + this.selectContentTab = value + this.serviceList = this.serviceAllList[value - 1] + }, + handleChangeMenu(value,obj){ + this.selectMenu = value + this.currentObj = obj + console.log('obj',this.currentObj) + }, + handleChangeDailyTab(value){ + this.selectDaily = value + }, // 点击选项卡改变选择的种类 // 根据点击的 去请求这个种类下面的列表 handleChangeTab(value){ @@ -593,9 +581,6 @@ export default { }else if(value===2){ // 日常巡检列表 this.getDailyInspectionList() - }else if (value===3){ - // 晨会管理列表 - this.getMeetingDetail() } }, // 返回按钮的方法 @@ -738,12 +723,34 @@ export default { } const res = await request.$webGet(`CommercialApi/Examine/WeChat_GetExamineList`,{ - SearchStartDate: startTime,// 考核日期(开始时间) - SearchEndDate: endTime,// 考核日期(结束时间) - SPRegionType_ID: this.selectAreaValue,// 片区内码,多个片区用","隔开 - Serverpart_ID:'',// 服务区内码,多个服务区用","隔开 + // SearchStartDate: startTime,// 考核日期(开始时间) + // SearchEndDate: endTime,// 考核日期(结束时间) + SearchStartDate: '2023-07-01', + SearchEndDate: '2023-07-31' }) - this.serviceList = res.Result_Data + let list = [] + let good = [] + let normal = [] + let bad = [] + res.Result_Data.forEach(item=>{ + item.list.forEach(subItem=>{ + subItem.SERVERPARTList.forEach(thirdItem=>{ + if (thirdItem.EXAMINE_SCORE>=90){ + good.push(item) + }else if(thirdItem.EXAMINE_SCORE>=80 && thirdItem.EXAMINE_SCORE<90){ + normal.push(item) + }else if (thirdItem.EXAMINE_SCORE<80){ + bad.push(item) + } + }) + }) + }) + console.log('res',res) + list = [good,normal,bad] + this.serviceAllList = JSON.parse(JSON.stringify(list)) + this.serviceList = this.serviceAllList[this.selectContentTab - 1] + console.log('this.serviceAllList',this.serviceAllList) + console.log('this.serviceList',this.serviceList) uni.hideLoading() }, // 日常巡检列表 @@ -751,8 +758,6 @@ export default { const res = await request.$webGet(`CommercialApi/Examine/WeChat_GetPatrolList`,{ SearchStartDate:this.selectDate,// 巡检日期(开始时间) SearchEndDate:this.selectDate,// 巡检日期(结束时间) - SPRegionType_ID:this.selectAreaValue,// 片区内码,多个片区用","隔开 - Serverpart_ID:'',// 服务区内码,多个服务区用","隔开 }) this.inspectionList = res.Result_Data @@ -794,11 +799,10 @@ export default { @import '/static/public/font/stylesheet.css'; .main{ width: 100%; - height: calc(100vh - 80px); - background: #fff; + height: calc(100vh); .heard{ width: 100%; - height: 185px; + height: 666rpx; position: relative; .contentHeard{ width: 100%; @@ -817,7 +821,7 @@ export default { bottom: 0; position: absolute; display: flex; - justify-content: center; + align-items: center; .img{ width: 24px; height: 24px; @@ -831,8 +835,241 @@ export default { color: #FFFFFF; line-height: 28px; } + .selectDateBox{ + position: absolute; + left: 112rpx; + display: flex; + align-items: center; + box-sizing: border-box; + padding: 16rpx 30rpx; + background: #FFFFFF; + border-radius: 32rpx; + .leftIcon{ + width: 26rpx; + height: 26rpx; + } + .dateBox{ + margin: 0 24rpx; + display: flex; + align-items: center; + .dateIcon{ + width: 30rpx; + height: 30rpx; + margin-right: 8rpx; + } + .dateText{ + font-size: 28rpx; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #EC6C00; + line-height: 30rpx; + } + } + } } } + .tabBox{ + position: absolute; + width: 100%; + display: flex; + align-items: center; + .tabItem{ + margin-right: 40rpx; + font-size: 32rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #160002; + line-height: 44rpx; + } + .bigItem{ + font-size: 40rpx; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #160002; + line-height: 56rpx; + position: relative; + } + .bigItem:after{ + content:url("/static/images/newExamine/tabIcon.svg"); + width: 56rpx; + height: 16rpx; + position: absolute; + left: 50%;bottom: -4px; + transform: translateX(-50%); + } + } + + .dataSummary{ + width: calc(100% - 64rpx); + height: 216rpx; + background: #FFFFFF; + border-radius: 20rpx; + position: absolute; + left: 32rpx; + box-sizing: border-box; + padding: 4rpx; + .dataDetail{ + width: 100%; + height: 100%; + background: linear-gradient(180deg, #FEEDE5 0%, #FFFEFD 100%); + border-radius: 16rpx; + box-sizing: border-box; + padding: 24rpx; + .dataDetailTop{ + display: flex; + align-items: center; + .topIcon{ + width: 38rpx; + height: 38rpx; + } + .topTitle{ + font-size: 32rpx; + font-family: Alimama ShuHeiTi; + font-weight: bold; + color: #EC6C00; + line-height: 40rpx; + margin: 0 0 0 16rpx; + } + .unit{ + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #3B48E3; + line-height: 12px; + padding: 3px 4px; + background: rgba(59, 72, 227, 0.1); + margin-left: 8px; + border-radius: 2px; + } + .secondUnit{ + background:rgba(0, 147, 46, 0.1); + border-radius: 2px; + font-size: 12px; + padding: 3px 4px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #00932E; + margin-left: 8px; + line-height: 12px; + } + } + .detailContent{ + width: 100%; + height: 72rpx; + margin-top: 40rpx; + display: flex; + .contentItem{ + width: 33.3%; + height: 100%; + display: flex; + .typeIcon{ + width: 64rpx; + height: 64rpx; + margin-top: 8rpx; + margin-right: 16rpx; + } + .typeBox{ + display: flex; + flex-direction: column; + .typeNum{ + font-size: 36rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #160002; + line-height: 44rpx; + } + .typeLabel{ + font-size: 24rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #786B6C; + line-height: 36rpx; + .typeUnit{ + font-size: 24rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #A69E9F; + line-height: 36rpx; + } + } + } + } + } + .detailDaily{ + width: 100%; + margin-top: 32rpx; + display: flex; + .dailyItem{ + width: 30%; + display: flex; + flex-direction: column; + .itemValue{ + font-size: 36rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #020E1A; + line-height: 44rpx; + } + .itemLabel{ + font-size: 24rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #786B6C; + line-height: 36rpx; + .itemValue{ + font-size: 24rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #A69E9F; + line-height: 36rpx; + margin-left: 4rpx; + } + } + } + .otherItem{ + width: 40%; + display: flex; + align-items: center; + .otherLeft{ + width: 56rpx; + height: 56rpx; + margin-right: 12rpx; + } + .otherDetail{ + display: flex; + flex-direction: column; + .itemValue{ + font-size: 36rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #E83944; + line-height: 44rpx; + } + .itemLabel{ + font-size: 24rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #786B6C; + line-height: 36rpx; + .itemUnit{ + font-size: 24rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #A69E9F; + line-height: 36rpx; + margin-left: 4rpx; + } + } + } + } + } + } + } + + + + + .picker{ .selectService{ display: flex; @@ -923,6 +1160,284 @@ export default { } } + .pageContent{ + position: relative; + z-index:9; + width: 100%; + height: calc(100vh - 536rpx); + background: #fff; + transform: translateY(-130rpx); + border-radius: 32rpx 32rpx 6rpx 6rpx; + box-sizing: border-box; + padding: 24rpx 32rpx; + .contentBox{ + width: 100%; + height: 100%; + .contentTop{ + display: flex; + align-items: center; + justify-content: space-between; + .contentTitle{ + font-size: 32rpx; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #160002; + line-height: 44rpx; + } + .sort{ + display: flex; + align-items: center; + .sortLabel{ + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #786B6C; + line-height: 40rpx; + } + .sortIcon{ + width: 30rpx; + height: 30rpx; + margin-left: 8rpx; + } + } + } + + .contentTab{ + margin-top: 32rpx; + .contentTabItem{ + padding: 8rpx 44rpx; + background: #F2F0EF; + border-radius: 30rpx; + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #786B6C; + line-height: 40rpx; + display: inline-block; + margin-right: 16rpx; + } + .selectItem{ + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #FEFFFE; + line-height: 40rpx; + background: #EC6C00; + } + } + + .contentList{ + width: 100%; + height: calc(100% - 172rpx); + margin-top: 24rpx; + .big{ + width: 100%; + height: 100%; + .scrollItem{ + width: 100%; + height: 208rpx; + background: #F8F8F8; + border-radius: 12rpx; + box-sizing: border-box; + padding: 24rpx; + margin-bottom: 24rpx; + .scrollItemTop{ + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + .itemTopLeft{ + display: flex; + align-items: center; + .itemName{ + font-size: 28rpx; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #160002; + line-height: 40rpx; + margin-right: 16rpx; + } + .unit{ + font-size: 12px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #3B48E3; + line-height: 12px; + padding: 3px 4px; + background: rgba(59, 72, 227, 0.1); + margin-left: 8px; + border-radius: 2px; + } + .secondUnit{ + background:rgba(0, 147, 46, 0.1); + border-radius: 2px; + font-size: 12px; + padding: 3px 4px; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #00932E; + margin-left: 8px; + line-height: 12px; + } + } + .rightIcon{ + width: 30rpx; + height: 30rpx; + } + } + .itemDetail{ + width: 100%; + height: 104rpx; + background: #FFFFFF; + border-radius: 12rpx; + box-sizing: border-box; + padding: 24rpx; + margin-top: 20rpx; + display: flex; + .detailItem{ + width: 50%; + height: 100%; + display: flex; + .fixBox{ + width: 62rpx; + height: 62rpx; + background: rgba(236, 108, 0, 0.1); + margin-right: 16rpx; + border-radius: 10rpx; + font-size: 28rpx; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #EC6C00; + line-height: 40rpx; + display: flex; + align-items: center; + justify-content: center; + } + .markBox{ + width: 120rpx; + .markValue{ + font-size: 36rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #160002; + line-height: 36rpx; + .markUnit{ + margin-left: 4rpx; + font-size: 24rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #A69E9F; + line-height: 36rpx; + } + } + .progress{ + width: 100%; + height: 12rpx; + border-radius: 7rpx; + position: relative; + background: #FBE2CC; + .have{ + position: absolute; + left: 0;top: 0; + border-radius: 7rpx; + height: 100%; + background: #EC6C00; + } + } + } + } + } + } + } + } + + .dailyList{ + width: 100%; + height: calc(100% - 172rpx); + margin-top: 24rpx; + .big{ + width: 100%; + height: 100%; + .scrollItem{ + width: 100%; + background: #F8F8F8; + border-radius: 12rpx; + margin-bottom: 24rpx; + box-sizing: border-box; + padding: 24rpx; + .scrollItemTop{ + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + .scrollTopLeft{ + display: flex; + align-items: center; + .scrollName{ + font-size: 28rpx; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #160002; + line-height: 40rpx; + } + .rightIcon{ + width: 30rpx; + height: 30rpx; + margin-left: 14rpx; + } + } + .scrollTopRight{ + .scueessNum{ + font-size: 36rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #EC6C00; + line-height: 40rpx; + } + .all{ + font-size: 36rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #160002; + line-height: 40rpx; + } + } + } + + .detailMark{ + width: 100%; + box-sizing: border-box; + padding: 24rpx 16rpx; + margin-top: 20rpx; + background: #FFFFFF; + border-radius: 12rpx; + .wordHeader{ + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #A69E9F; + line-height: 40rpx; + } + .wordValue{ + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #160002; + line-height: 36rpx; + display: inline-block; + margin-left: 16rpx; + } + } + } + } + } + } + } + + + + + .content{ width: 100%; box-sizing: border-box; @@ -1370,6 +1885,7 @@ export default { width: 100%; box-sizing: border-box; padding: 16px; + position: relative; .top{ width: 100%; display: flex; @@ -1388,30 +1904,163 @@ export default { } } .areaList{ - width: 100%; - height: calc(60vh - 70px); + width: 100vw; margin-top: 12px; overflow-y: scroll; - .item{ + position: absolute; + left: 0; + .popupDetail{ width: 100%; - font-size: 14px; - font-family: PingFangSC-Semibold, PingFang SC; - font-weight: 600; - color: #160002; - line-height: 20px; - text-align: left; - padding:9px 12px; - box-sizing: border-box; - .unit{ - font-size: 12px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: #786B6C; - line-height: 18px; + height: 100%; + display: flex; + .detailLeft{ + width: 184rpx; + height: calc(100vh - 108rpx); + .serviceSelect{ + padding:24rpx 32rpx; + font-size: 32rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #160002; + line-height: 44rpx + } + .currentSelect{ + font-size: 32rpx; + font-family: PingFangSC-Medium, PingFang SC; + font-weight: 500; + color: #EC6C00; + line-height: 44rpx; + position: relative; + } + .currentSelect:before{ + content:''; + display: inline-block; + width: 6rpx; + height: 32rpx; + background: #EC6C00; + position: absolute; + left: 0;top: 50%; + transform: translateY(-50%); + } + } + + .serviceDetail{ + width: calc(100vw - 184rpx); + height: calc(100vh - 108rpx); + .serviceDetailItem{ + width: 100%; + box-sizing: border-box; + padding: 24rpx; + .detailItemTop{ + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + .fixedName{ + padding: 8rpx 14rpx; + font-size: 28rpx; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #EC6C00; + line-height: 40rpx; + background: #F6E9DE; + border-radius: 10rpx; + } + .store{ + font-size: 36rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #160002; + line-height: 44rpx; + .unit{ + font-size: 24rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #A69E9F; + line-height: 36rpx; + } + } + } + .detailItemMessage{ + margin-top: 16rpx; + .messageItem{ + display: flex; + justify-content: flex-start; + margin-bottom: 8rpx; + .itemIcon{ + width: 32rpx; + height: 32rpx; + margin-right: 12rpx; + } + .itemValue{ + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #786B6C; + line-height: 40rpx; + } + } + .messageBox{ + width: 100%; + box-sizing: border-box; + padding: 16rpx; + margin-top: 8rpx; + .messageBoxTop{ + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + .messageBoxTopLeft{ + display: flex; + .fixedIcon{ + width: 27rpx; + height: 32rpx; + margin-right: 12rpx; + } + .name{ + font-size: 32rpx; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #160002; + line-height: 44rpx; + } + } + .messageBoxTopRight{ + .mark{ + font-size: 36rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #160002; + line-height: 44rpx; + .unit{ + font-size: 24rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #A69E9F; + line-height: 36rpx; + } + } + } + } + .desc{ + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #160002; + line-height: 40rpx; + } + .imgList{ + width: 100%; + .img{ + width: 88rpx; + height: 88rpx; + margin-right: 16rpx; + } + } + } + } + } } - } - .selectItem{ - background: RGBA(243, 235, 255, 0.5); } } .serviceList{ diff --git a/pages/revenue/component/otherCharts.vue b/pages/revenue/component/otherCharts.vue new file mode 100644 index 0000000..e3abcad --- /dev/null +++ b/pages/revenue/component/otherCharts.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/pages/revenue/index.vue b/pages/revenue/index.vue index d80e4aa..9a779b9 100644 --- a/pages/revenue/index.vue +++ b/pages/revenue/index.vue @@ -82,13 +82,526 @@ + + + + 年度营收累计 + + + + 39.67% + + + + + 119.01 + 2022年完成/万元 + + + 32.54% + 成本比 + + + + + 119.01 + 2022年预计/万元 + + + 32.54% + 计划比 + + + + + + + + + + 收入合计 + + + + 39.67% + + + + + 35.00 + 2022年完成/万元 + + + 32.54% + 成本比 + + + + + 300.00 + 2023年预计/万元 + + + 12.84% + 计划比 + + + + + + + + + + + 自营收入小计 + + + 查看更多 + + + + + + + + 39.67% + + + + + 35.00 + 2022年完成/万元 + + + 32.54% + 成本比 + + + + + 35.00 + 2023年预计/万元 + + + 32.54% + 计划比 + + + + + + + + + + 服务区自营小计 + + + + 完成率 + 12.84% + + + + + + + 分公司收入小计 + + + + 完成率 + 15.87% + + + + + + + + + + 其他收入小计 + + + 查看更多 + + + + + + + + 39.67% + + + + + 35.00 + 2022年完成/万元 + + + 32.54% + 成本比 + + + + + 35.00 + 2023年预计/万元 + + + 32.54% + 计划比 + + + + + + + + + + 服务区自营小计 + + + + 完成率 + 12.84% + + + + + + + 分公司收入小计 + + + + 完成率 + 15.87% + + + + + + + + + + 支出合计 + + + + 39.67% + + + + + 35.00 + 2022年完成/万元 + + + 32.54% + 成本比 + + + + + 300.00 + 2023年预计/万元 + + + 12.84% + 计划比 + + + + + + + + + + + 运营成本小计 + + + 查看更多 + + + + + + + + 39.67% + + + + + 35.00 + 2022年完成/万元 + + + 32.54% + 成本比 + + + + + 35.00 + 2023年预计/万元 + + + 32.54% + 计划比 + + + + + + + + + + 服务区自营小计 + + + + 完成率 + 12.84% + + + + + + + 分公司收入小计 + + + + 完成率 + 15.87% + + + + + + + + + + 管理费用小计 + + + 查看更多 + + + + + + + + 39.67% + + + + + 35.00 + 2022年完成/万元 + + + 32.54% + 成本比 + + + + + 35.00 + 2023年预计/万元 + + + 32.54% + 计划比 + + + + + + + + + + 运营成本小计 + + + + 完成率 + 12.84% + + + + + + + 分公司收入小计 + + + + 完成率 + 15.87% + + + + + + + + + + 销售费用小计 + + + 查看更多 + + + + + + + + 39.67% + + + + + 35.00 + 2022年完成/万元 + + + 32.54% + 成本比 + + + + + 35.00 + 2023年预计/万元 + + + 32.54% + 计划比 + + + + + + + + + + 运营成本小计 + + + + 完成率 + 12.84% + + + + + + + 分公司收入小计 + + + + 完成率 + 15.87% + + + + + + + + + + 其他费用小计 + + + 查看更多 + + + + + + + + 39.67% + + + + + 35.00 + 2022年完成/万元 + + + 32.54% + 成本比 + + + + + 35.00 + 2023年预计/万元 + + + 32.54% + 计划比 + + + + + + + + + + 运营成本小计 + + + + 完成率 + 12.84% + + + + + + + 分公司收入小计 + + + + 完成率 + 15.87% + + + + + +