567 lines
14 KiB
JavaScript
567 lines
14 KiB
JavaScript
// pages/Progress-management/index.js
|
|
import * as echarts from '../../ec-canvas/echarts';
|
|
|
|
const app = getApp()
|
|
|
|
let chart=null
|
|
let chart1=null
|
|
|
|
function getOption(a1) {
|
|
let that=this
|
|
return {
|
|
title: [
|
|
{
|
|
text: a1+'%',
|
|
textAlign: "center",
|
|
left: "48%",
|
|
top: "30%",
|
|
textStyle: {
|
|
color: "#67abf2",
|
|
fontSize: 23,
|
|
},
|
|
},
|
|
{
|
|
text: '实际产值进度',
|
|
left: "48%",
|
|
top: "80%",
|
|
textAlign: "center",
|
|
textStyle: {
|
|
color: "#cdd7fa",
|
|
fontWeight: "normal",
|
|
fontSize: "16",
|
|
textAlign: "center",
|
|
},
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
type: "pie",
|
|
hoverAnimation: false,
|
|
radius: ["60%", "59%"],
|
|
center: ["50%", "40%"],
|
|
labelLine: {
|
|
normal: {
|
|
show: false,
|
|
},
|
|
},
|
|
label: {
|
|
normal: {
|
|
position: "center",
|
|
},
|
|
},
|
|
data: [
|
|
{
|
|
value: 100,
|
|
itemStyle: {
|
|
normal: {
|
|
color: "#255788",
|
|
},
|
|
},
|
|
},
|
|
|
|
],
|
|
},
|
|
{
|
|
type: "pie",
|
|
hoverAnimation: false,
|
|
radius: ["53%", "60%"],
|
|
center: ["50%", "40%"],
|
|
labelLine: {
|
|
normal: {
|
|
show: false,
|
|
},
|
|
},
|
|
label: {
|
|
normal: {
|
|
position: "center",
|
|
},
|
|
},
|
|
data: [
|
|
{
|
|
value: a1,
|
|
itemStyle: {
|
|
normal: {
|
|
color: "#68a8f2",
|
|
},
|
|
},
|
|
normal: {
|
|
show: false,
|
|
},
|
|
},
|
|
{
|
|
value: 100-35,
|
|
itemStyle: {
|
|
normal: {
|
|
label: {
|
|
show: false,
|
|
},
|
|
labelLine: {
|
|
show: false,
|
|
},
|
|
color: "rgba(0,0,0,0)",
|
|
borderWidth: 0,
|
|
},
|
|
emphasis: {
|
|
color: "rgba(0,0,0,0)",
|
|
borderWidth: 0,
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
}
|
|
|
|
function getOption1(a2) {
|
|
let that=this
|
|
return {
|
|
title: [
|
|
{
|
|
text: a2+'%',
|
|
textAlign: "center",
|
|
left: "48%",
|
|
top: "30%",
|
|
textStyle: {
|
|
color: "#67abf2",
|
|
fontSize: 23,
|
|
},
|
|
},
|
|
{
|
|
text: '时间管理',
|
|
left: "48%",
|
|
top: "80%",
|
|
textAlign: "center",
|
|
textStyle: {
|
|
color: "#cdd7fa",
|
|
fontWeight: "normal",
|
|
fontSize: "16",
|
|
textAlign: "center",
|
|
},
|
|
},
|
|
],
|
|
series: [
|
|
{
|
|
type: "pie",
|
|
hoverAnimation: false,
|
|
radius: ["60%", "59%"],
|
|
center: ["50%", "40%"],
|
|
labelLine: {
|
|
normal: {
|
|
show: false,
|
|
},
|
|
},
|
|
label: {
|
|
normal: {
|
|
position: "center",
|
|
},
|
|
},
|
|
data: [
|
|
{
|
|
value: 100,
|
|
itemStyle: {
|
|
normal: {
|
|
color: "#255788",
|
|
},
|
|
},
|
|
},
|
|
|
|
],
|
|
},
|
|
{
|
|
type: "pie",
|
|
hoverAnimation: false,
|
|
radius: ["53%", "60%"],
|
|
center: ["50%", "40%"],
|
|
labelLine: {
|
|
normal: {
|
|
show: false,
|
|
},
|
|
},
|
|
label: {
|
|
normal: {
|
|
position: "center",
|
|
},
|
|
},
|
|
data: [
|
|
{
|
|
value: a2,
|
|
itemStyle: {
|
|
normal: {
|
|
color: "#68a8f2",
|
|
},
|
|
},
|
|
normal: {
|
|
show: false,
|
|
},
|
|
},
|
|
{
|
|
value: 100-22,
|
|
itemStyle: {
|
|
normal: {
|
|
label: {
|
|
show: false,
|
|
},
|
|
labelLine: {
|
|
show: false,
|
|
},
|
|
color: "rgba(0,0,0,0)",
|
|
borderWidth: 0,
|
|
},
|
|
emphasis: {
|
|
color: "rgba(0,0,0,0)",
|
|
borderWidth: 0,
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
],
|
|
};
|
|
}
|
|
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
//查看图片
|
|
picShow:false,
|
|
progressList:[{text:'曲江御井路公租房项目EPC总承包工程',id:132}],
|
|
progressName:'曲江御井路公租房项目EPC总承包工程',
|
|
num:'0',
|
|
startEnd:'',
|
|
ec:{
|
|
lazyLoad:true
|
|
},
|
|
ec1:{
|
|
lazyLoad:true
|
|
},
|
|
tableList:[{name:'整体进度',value:'4#楼 12F层'},{name:'实时进度',value:'4#-12F-YBS7dM'},{name:'预制构件总数',value:'16811'},{name:'施工完成',value:'3130'},{name:'施工验收',value:'0'},{name:'构件吊装',value:'0'},{name:'扫码进场',value:'25'},{name:'未开始',value:'13656'}],
|
|
contentShow:false,
|
|
shigongList:[],
|
|
timeStr:'',
|
|
jinduStr:'',
|
|
video:'',
|
|
|
|
show: false,
|
|
projectId:'',
|
|
projectName:'' ,
|
|
loginName:'',
|
|
userName:'',
|
|
initData:{},
|
|
projectData:{}
|
|
},
|
|
showPopup() {
|
|
this.setData({ show: true });
|
|
},
|
|
onClose() {
|
|
this.setData({ show: false });
|
|
},
|
|
|
|
// 打开遮罩层
|
|
showPic(e) {
|
|
this.setData({
|
|
picShow:true,
|
|
imageUrl:e.currentTarget.dataset.id
|
|
})
|
|
},
|
|
// 关闭遮罩层
|
|
closePic() {
|
|
this.setData({
|
|
picShow:false,
|
|
imageUrl:''
|
|
|
|
})
|
|
},
|
|
// 点击单选
|
|
onSelectBtn(e){
|
|
console.log(e.currentTarget.dataset.set);
|
|
const m= this.data.shigongList.map(function (item,i) {
|
|
console.log(item);
|
|
if(e.currentTarget.dataset.set==i){
|
|
item.select= item.select==false?true:false
|
|
}
|
|
return item
|
|
})
|
|
// console.log(e.currentTarget.dataset.set);
|
|
this.setData({
|
|
shigongList:m
|
|
})
|
|
},
|
|
// 点击让模块隐藏
|
|
onClick(e){
|
|
console.log(e.currentTarget.dataset.set);
|
|
const m= this.data.shigongList.map(function (item,i) {
|
|
console.log(item);
|
|
if(e.currentTarget.dataset.set==i){
|
|
item.type= item.type==false?true:false
|
|
}
|
|
return item
|
|
})
|
|
// console.log(e.currentTarget.dataset.set);
|
|
this.setData({
|
|
shigongList:m
|
|
})
|
|
},
|
|
|
|
//项目切换 返回值
|
|
onProjectSelect(e) {
|
|
let projectId = e.detail.id;
|
|
let projectName = e.detail.text;
|
|
app.globalData.projectId = projectId;
|
|
app.globalData.projectName = projectName;
|
|
this.setData({
|
|
projectId: projectId,
|
|
projectName: projectName
|
|
})
|
|
this.onLoad()
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad(options) {
|
|
var that = this
|
|
//获取项目缓存数据
|
|
wx.getStorage({
|
|
key: 'userinfo',
|
|
success:function(res){
|
|
that.setData({
|
|
loginName:res.data.loginName,
|
|
userName:res.data.userName,
|
|
projectId:app.globalData.projectId,
|
|
projectName:app.globalData.projectName,
|
|
initData:{text:app.globalData.projectName,id:app.globalData.projectId}
|
|
})
|
|
}
|
|
})
|
|
that.getProjectCorrespondence(app.globalData.projectId);
|
|
|
|
this.oneComponent = this.selectComponent('#mychart-dom');
|
|
this.twoComponent = this.selectComponent('#mychart-dom1');
|
|
|
|
|
|
},
|
|
|
|
/**
|
|
* 项目对应关系
|
|
*/
|
|
getProjectCorrespondence(projectId) {
|
|
var that = this;
|
|
wx.request({
|
|
url: app.globalData.reqUrl + '/weixin/training/getProjectCorrespondence',
|
|
data: {
|
|
"projectId": projectId,
|
|
},
|
|
method: "get",
|
|
success: function (res) {
|
|
that.setData({
|
|
projectData: res.data
|
|
})
|
|
|
|
that.gainProgressLog()
|
|
that.gainVideoUrl()
|
|
that.gainBaseInfo()
|
|
|
|
}
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage() {
|
|
|
|
},
|
|
|
|
gainProgressLog() {
|
|
var that = this;
|
|
//日志
|
|
if(this.data.projectData.szh == '132') {
|
|
wx.request({
|
|
url: app.globalData.szhUrl+'/api/wei/gainWeiListFloorInfo',
|
|
data:{
|
|
"projectId":this.data.projectData.szh
|
|
},
|
|
method:"GET",
|
|
success:function(res){
|
|
that.setData({
|
|
shigongList:res.data.data
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
that.setData({
|
|
shigongList:[]
|
|
})
|
|
}
|
|
},
|
|
|
|
gainVideoUrl() {
|
|
var that = this;
|
|
if(this.data.projectData.szh == '132') {
|
|
//视频
|
|
wx.request({
|
|
url: app.globalData.szhUrl+'/api/check/gainUrl',
|
|
data:{
|
|
"projectId":this.data.projectData.szh
|
|
},
|
|
method:"GET",
|
|
success:function(res){
|
|
that.setData({
|
|
video:res.data.data.httpHlss
|
|
})
|
|
}
|
|
|
|
})
|
|
} else {
|
|
that.setData({
|
|
video:''
|
|
})
|
|
}
|
|
|
|
},
|
|
|
|
getDateDiff(dateTime) { // 将年月日转换为几小时前,几天前等等
|
|
let dateTimeStamp = new Date(dateTime).getTime();
|
|
let result = '';
|
|
let minute = 1000 * 60;
|
|
let hour = minute * 60;
|
|
let day = hour * 24;
|
|
let halfamonth = day * 15;
|
|
let month = day * 30;
|
|
let year = day * 365;
|
|
let now = new Date().getTime();
|
|
let diffValue = now - dateTimeStamp;
|
|
if (diffValue < 0) {
|
|
return;
|
|
}
|
|
let monthEnd = diffValue / month;
|
|
let weekEnd = diffValue / (7 * day);
|
|
let dayEnd = diffValue / day;
|
|
let hourEnd = diffValue / hour;
|
|
let minEnd = diffValue / minute;
|
|
let yearEnd = diffValue / year;
|
|
if (yearEnd >= 1) {
|
|
result = dateTime;
|
|
} else if (monthEnd >= 1) {
|
|
result = "" + parseInt(monthEnd) + "月前";
|
|
} else if (weekEnd >= 1) {
|
|
result = "" + parseInt(weekEnd) + "周前";
|
|
} else if (dayEnd >= 1) {
|
|
result = "" + parseInt(dayEnd) + "天前";
|
|
} else if (hourEnd >= 1) {
|
|
result = "" + parseInt(hourEnd) + "小时前";
|
|
} else if (minEnd >= 1) {
|
|
result = "" + parseInt(minEnd) + "分钟前";
|
|
} else {
|
|
result = "刚刚";
|
|
}
|
|
return result;
|
|
},
|
|
|
|
initChartA(A1) {
|
|
this.oneComponent.init((canvas, width, height, dpr) => {
|
|
chart=echarts.init(canvas,null,{
|
|
width:width,
|
|
height:height,
|
|
devicePixelRatio:dpr
|
|
})
|
|
canvas.setChart(chart)
|
|
let option=getOption(A1)
|
|
chart.setOption(option)
|
|
return chart
|
|
})
|
|
|
|
},
|
|
|
|
initChartB(A2) {
|
|
this.twoComponent.init((canvas, width, height, dpr) => {
|
|
chart1=echarts.init(canvas,null,{
|
|
width:width,
|
|
height:height,
|
|
devicePixelRatio:dpr
|
|
})
|
|
canvas.setChart(chart1)
|
|
let option1=getOption1(A2)
|
|
chart1.setOption(option1)
|
|
return chart1
|
|
})
|
|
|
|
},
|
|
|
|
gainBaseInfo() {
|
|
//基本进度百分比
|
|
var that = this;
|
|
wx.request({
|
|
url: app.globalData.szhUrl+'/api/building/proBaseInfo',
|
|
data:{
|
|
"projectId":this.data.projectData.szh
|
|
},
|
|
method:"GET",
|
|
success:function(res){
|
|
that.setData({
|
|
num:res.data.data.contract_monery,
|
|
startEnd:(res.data.data.plan_start_date.split(" "))[0] + " 至 " + (res.data.data.plan_end_date.split(" "))[0],
|
|
jinduStr:(res.data.data.kailei_money / 67640 * 100).toFixed(0),
|
|
timeStr:(that.getDateDiff(res.data.data.actual_start_date) / 720 * 100).toFixed(0)
|
|
})
|
|
|
|
that.initChartA((res.data.data.kailei_money / 67640 * 100).toFixed(0) )
|
|
that.initChartB(((parseInt(new Date() - new Date(res.data.data.actual_start_date)) / (1000 * 60 * 60 * 24)).toFixed(0) / 720 * 100).toFixed(0) )
|
|
}
|
|
})
|
|
|
|
},
|
|
|
|
goGCLB:function(){
|
|
wx.redirectTo({
|
|
url: '../../pages/gengduogongneng/index'
|
|
})
|
|
},
|
|
|
|
}) |