diff --git a/miniprogram/api/projectAttendance.js b/miniprogram/api/projectAttendance.js new file mode 100644 index 0000000..93f62c3 --- /dev/null +++ b/miniprogram/api/projectAttendance.js @@ -0,0 +1,63 @@ +import {request} from '../utils/request' + +// 统计劳务人员信息 +export function groupAllByParams(data){ + return request({ + url: '/wechat/attendance/v1/groupAllByParams', + method: 'post', + data: data + }) +} + +// 统计最近出勤信息 +export function findGroupAllByDays(data){ + return request({ + url: '/wechat/attendance/v1/findGroupAllByDays', + method: 'post', + data: data + }) +} + +// 统计劳务人员信息 +export function groupUserByParams(data){ + return request({ + url: '/wechat/attendance/v1/groupUserByParams', + method: 'post', + data: data + }) +} + +// 劳务人员详情 +export function attendanceUser(id){ + return request({ + url: '/wechat/attendance/v1/attendanceUser/'+id, + method: 'get' + }) +} + +// 劳务人员列表 +export function attendanceUserList(data){ + return request({ + url: '/wechat/attendance/v1/attendanceUserList', + method: 'get', + data: data + }) +} + +// 统计人员出勤信息 +export function groupDataByParams(data){ + return request({ + url: '/wechat/attendance/v1/groupDataByParams', + method: 'post', + data: data + }) +} + +// 出勤数据列表 +export function attendanceDataList(data){ + return request({ + url: '/wechat/attendance/v1/attendanceDataList', + method: 'get', + data: data + }) +} \ No newline at end of file diff --git a/miniprogram/app.js b/miniprogram/app.js index b47fde9..de68e76 100644 --- a/miniprogram/app.js +++ b/miniprogram/app.js @@ -34,7 +34,7 @@ App({ reqUrl:'https://szgcwx.jhncidg.com', //reqUrl:'http://127.0.0.1:8091', uploadUrl:"https://szgcwx.jhncidg.com/wechat", - //uploadUrl:'http://127.0.0.1:8091/wechat', + //uploadUrl:'http://127.0.0.1:8082/wechat', //御景路数字化集成管控平台接口访问域名 szhUrl:'https://szh.makalu.cc', diff --git a/miniprogram/app.json b/miniprogram/app.json index 3f737fc..356651c 100644 --- a/miniprogram/app.json +++ b/miniprogram/app.json @@ -105,8 +105,9 @@ "project_insurance/add/index", "project_insurance/info/index", "project_insurance/list/index", - "project_deptWorks/add/index", - "project_deptWorks/list/index", + "project_attendance/project_attendanceUser/list/index", + "project_attendance/project_attendanceUser/info/index", + "project_attendance/project_attendanceData/list/index", "project_standard/list/index", "project_standard/add/index", "project_standard/info/index", diff --git a/miniprogram/app.wxss b/miniprogram/app.wxss index c18b197..00ac752 100644 --- a/miniprogram/app.wxss +++ b/miniprogram/app.wxss @@ -1385,11 +1385,19 @@ swiper-item video { color: #fd8401; } +.color_orange { + color: #fd8401; +} + .color_green { color: #1ab400; font-weight: 800; } +.color_red { + color: #fd6060; +} + .color_blue { color: #45affb; } diff --git a/miniprogram/newComponents/safety-bar-chart/index.js b/miniprogram/newComponents/safety-bar-chart/index.js index c9dc4f4..41bdf88 100644 --- a/miniprogram/newComponents/safety-bar-chart/index.js +++ b/miniprogram/newComponents/safety-bar-chart/index.js @@ -67,9 +67,11 @@ Component({ }) }, getData() { + var max=0; var data = this.data.data - - var max = data[0].total + for (let i = data.length-1; i >=0 ; i--) { + max += data[i].total; + } var nameData = []; var totalData = [] var background = [] @@ -101,18 +103,18 @@ Component({ bottom: "-12%", containLabel: true, }, - legend: { - top: "0", - //icon: "circle", - itemWidth: 10, - itemHeight:10, - itemGap: 8, - textStyle: { - fontSize: 12, - color:'#c6d9fa' - }, - data: legend, - }, + // legend: { + // top: "0", + // //icon: "circle", + // itemWidth: 10, + // itemHeight:10, + // itemGap: 8, + // textStyle: { + // fontSize: 12, + // color:'#c6d9fa' + // }, + // data: legend, + // }, xAxis: [{ show: false, }, diff --git a/miniprogram/pageage/project_attendance/project_attendanceData/list/index.js b/miniprogram/pageage/project_attendance/project_attendanceData/list/index.js new file mode 100644 index 0000000..b15882b --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceData/list/index.js @@ -0,0 +1,298 @@ +import { + groupDataByParams, + attendanceDataList +} from '../../../../api/projectAttendance' +const app = getApp() +Page({ + + /** + * 页面的初始数据 + */ + data: { + maxDate: new Date(2088, 1, 1).getTime(), + type: "3", + initData: {}, + projectId: "", + companyTypeId: "101", + listData: [], + pageNum: 1, + pageSize: 50, + lastDataSize: 50, + list: [], + request: app.globalData.reqUrl, + nactive: 0, + labourTypeList: [{ + name: "总包人员", + total: 0, + }, { + name: "监理人员", + total: 0, + }, { + name: "劳务人员", + total: 0, + }], + search: "", + searchDate: "", + choiceShow: false, + workerId: "", + reId: "", + rdsDate:"rdsDate" + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + let { + id, + workerId + } = options + if (workerId === undefined) { + workerId = ""; + } + this.setData({ + reId: id, + workerId, + projectId: app.globalData.projectId, + initData: { + text: app.globalData.projectName, + id: app.globalData.projectId + }, + search: "", + pageNum: 1, + pageSize: 50, + lastDataSize: 50, + listData: [] + }) + this.getListData(); + }, + + // 事件委托 + selected(e) { + let nav = e.target.dataset.set; + let companyTypeId = ""; + if (nav == 0) { + companyTypeId = "101"; + } else if (nav == 1) { + companyTypeId = "102"; + } else { + companyTypeId = "103"; + } + this.setData({ + pageNum: 1, + pageSize: 50, + lastDataSize: 50, + listData: [], + companyTypeId, + nactive: nav + }) + this.getListData(); + }, + + /** + * 条件筛选 + * @param {*} options + */ + onInputSearch: function (options) { + this.setData({ + search: options.detail.value, + }) + }, + + /** + * 立即查询 + */ + onQueryData:function(){ + this.setData({ + workerId: "", + pageNum: 1, + pageSize: 50, + lastDataSize: 50, + listData: [] + }) + this.setData({ + choiceShow: false + }) + this.getListData(); + }, + + //考勤日期 + onInputTime(e) { + this.setData({ + searchDate: e.detail, + pageNum: 1, + pageSize: 50, + lastDataSize: 50, + listData: [] + }) + this.setData({ + choiceShow: false + }) + this.getListData(); + }, + + /** + * 查询项目质量隐患排查数据 + */ + getListData() { + //进入这里说明数据加载完毕 + if (this.data.lastDataSize < this.data.pageSize) { + //app.toast("已经到底了,暂无可继续加载数据!") + return; + } + let params = { + "companyTypeId": this.data.workerId ? 999 : this.data.companyTypeId, + "projectId": this.data.projectId, + pageNum: this.data.pageNum, + pageSize: this.data.pageSize, + workerId: this.data.workerId, + workerName: this.data.search, + attendanceTime: this.data.searchDate + } + var that = this; + this.initGroupDataByParams(); + attendanceDataList(params).then(res => { + //这里处理this.data.lastDataSize=this.data.pageSize + if (that.data.list.length > 0 && res.rows.length > 0 && that.data.list[0].id == res.rows[0].id) { + that.setData({ + lastDataSize: 0, + }) + } else { + res.rows.forEach(item =>{ + if(item.vendorsCode!='yanzhu'){ + if(item.attendanceTime==item.attendanceOutTime){ + if(item.remark=="L"){ + item.attendanceTime=""; + }else{ + item.attendanceOutTime=""; + } + } + } + }); + that.setData({ + pageNum: that.data.pageNum + 1, + lastDataSize: res.rows.length, + list: res.rows, + listData: that.data.listData.concat(res.rows) + }) + } + }); + }, + + /** + * 初始化考勤信息 + */ + initGroupDataByParams() { + let zb = 0; + let jl = 0; + let lw = 0; + groupDataByParams({ + projectId: app.globalData.projectId, + workerName: this.data.search, + attendanceTime: this.data.searchDate + }).then(res => { + if (res.data.length > 0) { + res.data.forEach(item => { + if (item.companyTypeId == 8) { + jl += item.total; + } else if (item.companyTypeId == 1 || item.companyTypeId == 6) { + zb += item.total; + } else { + lw += item.total; + } + }); + } + this.setData({ + "labourTypeList[0].total": zb, + "labourTypeList[1].total": jl, + "labourTypeList[2].total": lw, + }) + }); + }, + + returnToPage: function () { + if (this.data.reType) { + wx.redirectTo({ + url: '../../project_attendanceUser/info/index?id=' + this.data.reId, + }) + } else { + wx.redirectTo({ + url: '../../../../pages/xiangmugaikuang/index', + }) + } + }, + + //项目切换 返回值 + onProjectSelect(e) { + let projectId = e.detail.id; + let projectName = e.detail.text; + app.globalData.projectId = projectId; + app.globalData.projectName = projectName; + this.onLoad({}); + }, + + onScrollToLower() { + console.log("滚动条到底了,开始加载新数据"); + this.getListData(); + }, + + choice() { + this.setData({ + choiceShow: true + }); + }, + onCloseTest() { + this.setData({ + choiceShow: false + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceData/list/index.json b/miniprogram/pageage/project_attendance/project_attendanceData/list/index.json new file mode 100644 index 0000000..c2a7241 --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceData/list/index.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "van-overlay": "@vant/weapp/overlay/index" , + "van-popup": "@vant/weapp/popup/index" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "考勤信息管理" +} \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceData/list/index.wxml b/miniprogram/pageage/project_attendance/project_attendanceData/list/index.wxml new file mode 100644 index 0000000..825b51d --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceData/list/index.wxml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + 人员考勤管理 + + + + + + + + + {{item.name}}({{item.total}}) + + + + + 未筛选时间,默认展示当天考勤数据! + + + + + + {{index < 9 ?'0'+(index+1):(index+1)}} + 考勤时间:{{format.dateStrEv(item.attendanceTime,item.attendanceOutTime)}} + + + + + + + + + + 人员姓名:{{item.workerName}} + 入场时间: + {{format.timeStr(item.attendanceTime)}} + 未打卡 + + 离场时间: + {{format.timeStr(item.attendanceOutTime)}} + 未打卡 + + + + + 单位名称:{{item.companyName}} + + + + + + + + 暂无数据 + + + + + + + + 人员筛选 + + + + + 立即查询 + + + 出勤时间 + + + + \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceData/list/index.wxss b/miniprogram/pageage/project_attendance/project_attendanceData/list/index.wxss new file mode 100644 index 0000000..b1fa9cb --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceData/list/index.wxss @@ -0,0 +1,67 @@ +.information-review-tab{ + display: flex; + justify-content: space-around; + align-items: center; + height: 80rpx; + color: #92a1ca; +} +.information-review-tab .active{ + color: #87e3fa; + padding-left: 40rpx; + background: url("https://szgcwx.jhncidg.com/staticFiles/icon/utilization.png") no-repeat left/35rpx; +} +.choice_max{ + width: 500rpx; + background: #232a44; + padding:40rpx; + } + .choice_tltie{ + text-align: center; + color: #00e3fe; + font-size: 28rpx; + padding: 0 0 20rpx 0; + } + .choice_input input{ + border: 1px solid #00e3fe; + width: 100%; + height:60rpx; + border-radius: 50rpx; + font-size: 28rpx; + color: #00e3fe; + padding-left: 30rpx; + box-sizing: border-box; + } + + .choice_btn{ + margin-top: 20rpx; + width: 100% !important; + text-align: center; + } + + .choice_date{ + margin-top: 60rpx; + width: 100% !important; + } + + .choice_date_date input{ + width: 100% !important; + height:60rpx !important; + border-radius: 8rpx !important; + font-size: 28rpx !important; + color: #00e3fe !important; + padding-left: 15rpx !important; + box-sizing: border-box !important; + } + .summury{ + margin-left: 35rpx; + } + + .problem_submit_to_btn { + margin-left: auto; + margin-right: auto; + width: 100%; + border-radius: 50rpx; + height: 30rpx; + background-color: #3b426f; + color: #00e3fe; + } \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.js b/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.js new file mode 100644 index 0000000..4355798 --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.js @@ -0,0 +1,124 @@ +import { + attendanceUser +} from '../../../../api/projectAttendance' +const app = getApp() +Page({ + /** + * 页面的初始数据 + */ + data: { + id: "", + infoData: {}, + projectName:"", + request: app.globalData.reqUrl, + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + let { + id + } = options + this.setData({ + id, + projectName:app.globalData.projectName + }) + this.getInfo(); + }, + + /** + * 获取详情信息 + * + */ + getInfo() { + attendanceUser(this.data.id).then(res => { + if (res.code == 200) { + this.setData({ + infoData: res.data + }) + } + }); + }, + + /** + * 查看考勤信息 + */ + onQueryData() { + wx.redirectTo({ + url: '../../project_attendanceData/list/index?workerId='+this.data.infoData.workerId+"&id="+this.data.id + }) + }, + + //展示图片 + showImg: function (e) { + let path = e.currentTarget.dataset.set + let urls = []; + if (path.indexOf('http:')>-1 || path.indexOf('https:')>-1) { + urls.push(path); + } else { + urls.push(this.data.request + path); + } + debugger + wx.previewImage({ + urls: urls, + current: urls[0] + }) + }, + + returnToPage: function () { + /*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/ + wx.redirectTo({ + url: '../list/index' + }) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.json b/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.json new file mode 100644 index 0000000..ef67f38 --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "van-popup": "@vant/weapp/popup/index" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "形象进度详情" +} \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.wxml b/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.wxml new file mode 100644 index 0000000..dfe5198 --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.wxml @@ -0,0 +1,120 @@ + + + + + + + + + + + 项目人员详情 + + + + + + + + + {{projectName}} + + + + + 人员近照 + + + + + + + + + + 人员姓名 + {{infoData.name}} + + + + + 人员性别 + + + + + + + + + 人员民族 + + {{infoData.ethnic}} + + + + + + 出生日期 + {{format.birthDate(infoData.birthDate)}} + + + + + 联系电话 + {{infoData.phone}} + + + + + 籍贯地址 + {{infoData.nativePlace}} + + + + + 人员类型 + + 总包人员 + 劳务人员 + 监理人员 + + + + + + 单位名称 + {{infoData.degreeName}} + + + + + 班组名称 + {{infoData.groupName}} + + + + + 工种名称 + {{infoData.workTypeName}} + + + + + 进场时间 + {{format.birthDate(infoData.enterDate)}} + + + + + 退场时间 + {{format.birthDate(infoData.exitDate)}} + + + + + + + 查 看 考 勤 信 息 + + \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.wxss b/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.wxss new file mode 100644 index 0000000..c156642 --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceUser/info/index.wxss @@ -0,0 +1,33 @@ +/* pageage/project_checking/info/index.wxss */ +.in-img-max:after{ + display:block; + clear:both; + content:""; + visibility:hidden; + height:0 + } + .in-img-max{ + width: auto; + zoom:1 + } + .in-img-div{ + position: relative; + margin: 0 8px 8px 0; + float: left; + } + .in-img-div image{ + width: 180rpx; + height: 180rpx; + border-radius: 15rpx; + position: relative; + } + .problem_submit_to_btn { + padding: 20rpx 0; + width: 320rpx; + text-align: center; + border-radius: 10rpx; + background: #3e4148; +} +.problem_submit_to_save { + background: #3ea79d; +} \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.js b/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.js new file mode 100644 index 0000000..99197c7 --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.js @@ -0,0 +1,265 @@ +import { + groupUserByParams, + attendanceUserList +} from '../../../../api/projectAttendance' +const app = getApp() +Page({ + + /** + * 页面的初始数据 + */ + data: { + type: "1", + initData: {}, + projectId: "", + companyTypeId: "101", + listData: [], + pageNum: 1, + pageSize: 50, + lastDataSize: 50, + list: [], + request: app.globalData.reqUrl, + nactive: 0, + labourTypeList: [{ + name: "总包人员", + total: 0, + }, { + name: "监理人员", + total: 0, + }, { + name: "劳务人员", + total: 0, + }], + search: "", + choiceShow: false + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + let { + type + } = options + this.setData({ + type, + typeName: type == "1" ? "在岗" : "离岗", + projectId: app.globalData.projectId, + initData: { + text: app.globalData.projectName, + id: app.globalData.projectId + }, + search: "", + pageNum: 1, + pageSize: 50, + lastDataSize: 50, + listData: [] + }) + this.getListData(); + }, + + // 事件委托 + selected(e) { + let nav = e.target.dataset.set; + let companyTypeId = ""; + if (nav == 0) { + companyTypeId = "101"; + } else if (nav == 1) { + companyTypeId = "102"; + } else { + companyTypeId = "103"; + } + this.setData({ + pageNum: 1, + pageSize: 50, + lastDataSize: 50, + listData: [], + companyTypeId, + nactive: nav + }) + this.getListData(); + }, + + /** + * 条件筛选 + * @param {*} options + */ + onInputSearch: function (options) { + this.setData({ + search: options.detail.value, + }) + }, + + onQueryData: function(){ + this.setData({ + pageNum: 1, + pageSize: 50, + lastDataSize: 50, + listData: [] + }) + this.setData({ + choiceShow:false + }) + this.getListData(); + }, + + /** + * 查看人员详情 + */ + getInfo(e) { + let { + id + } = e.currentTarget.dataset.set + wx.redirectTo({ + url: `../info/index?id=${id}` + }) + }, + + /** + * 查询项目质量隐患排查数据 + */ + getListData() { + //进入这里说明数据加载完毕 + if (this.data.lastDataSize < this.data.pageSize) { + //app.toast("已经到底了,暂无可继续加载数据!") + return; + } + let params = { + "companyTypeId": this.data.companyTypeId, + "projectId": this.data.projectId, + "state": this.data.type == "1" ? 0 : 1, + pageNum: this.data.pageNum, + pageSize: this.data.pageSize, + name: this.data.search + } + this.initGroupAllByParams(); + var that = this; + attendanceUserList(params).then(res => { + //这里处理this.data.lastDataSize=this.data.pageSize + if (that.data.list.length > 0 && res.rows.length > 0 && that.data.list[0].id == res.rows[0].id) { + that.setData({ + lastDataSize: 0, + }) + } else { + that.setData({ + pageNum: that.data.pageNum + 1, + lastDataSize: res.rows.length, + list: res.rows, + listData: that.data.listData.concat(res.rows) + }) + } + }); + }, + + /** + * 初始化考勤信息 + */ + initGroupAllByParams() { + let zb = 0; + let jl = 0; + let lw = 0; + groupUserByParams({ + projectId: app.globalData.projectId, + name: this.data.search + }).then(res => { + if (res.data.length > 0) { + res.data.forEach(item => { + if (item.type == this.data.type) { + if (item.companyTypeId == 8) { + jl += item.total; + } else if (item.companyTypeId == 1 || item.companyTypeId == 6) { + zb += item.total; + } else { + lw += item.total; + } + } + }); + } + this.setData({ + "labourTypeList[0].total": zb, + "labourTypeList[1].total": jl, + "labourTypeList[2].total": lw, + }) + }); + }, + + returnToPage: function () { + wx.redirectTo({ + url: '../../../../pages/xiangmugaikuang/index', + }) + }, + + //项目切换 返回值 + onProjectSelect(e) { + let projectId = e.detail.id; + let projectName = e.detail.text; + app.globalData.projectId = projectId; + app.globalData.projectName = projectName; + this.onLoad({}); + }, + + onScrollToLower() { + console.log("滚动条到底了,开始加载新数据"); + this.getListData(); + }, + + choice() { + this.setData({ + choiceShow: true + }); + }, + onCloseTest() { + this.setData({ + choiceShow: false + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.json b/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.json new file mode 100644 index 0000000..6527941 --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "van-overlay": "@vant/weapp/overlay/index" , + "van-popup": "@vant/weapp/popup/index" + }, + "navigationStyle":"custom", + "navigationBarTitleText": "劳务人员管理" +} \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.wxml b/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.wxml new file mode 100644 index 0000000..4939ddc --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.wxml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + {{typeName}}人员管理 + + + + + + + + + {{item.name}}({{item.total}}) + + + + + + + + {{index < 9 ?'0'+(index+1):(index+1)}} + {{item.degreeName}} + + + + + + + + + 姓名:{{item.name}} + 班组:{{item.groupName}} + 工种:{{item.workTypeName}} + + + + 籍贯:{{item.nativePlace}} + + + + + + + + 暂无数据 + + + + + + + + 人员筛选 + + + + + 立即查询 + + + \ No newline at end of file diff --git a/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.wxss b/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.wxss new file mode 100644 index 0000000..b142133 --- /dev/null +++ b/miniprogram/pageage/project_attendance/project_attendanceUser/list/index.wxss @@ -0,0 +1,48 @@ +.information-review-tab{ + display: flex; + justify-content: space-around; + align-items: center; + height: 80rpx; + color: #92a1ca; +} +.information-review-tab .active{ + color: #87e3fa; + padding-left: 40rpx; + background: url("https://szgcwx.jhncidg.com/staticFiles/icon/utilization.png") no-repeat left/35rpx; +} +.choice_max{ + width: 500rpx; + background: #232a44; + padding:40rpx; + } + .choice_tltie{ + text-align: center; + color: #00e3fe; + font-size: 28rpx; + padding: 0 0 20rpx 0; + } + .choice_input input{ + border: 1px solid #00e3fe; + width: 100%; + height:60rpx; + border-radius: 50rpx; + font-size: 28rpx; + color: #00e3fe; + padding-left: 30rpx; + box-sizing: border-box; + } + + .choice_btn{ + margin-top: 20rpx; + width: 100% !important; + text-align: center; + } + .problem_submit_to_btn { + margin-left: auto; + margin-right: auto; + width: 100%; + border-radius: 50rpx; + height: 30rpx; + background-color: #3b426f; + color: #00e3fe; + } \ No newline at end of file diff --git a/miniprogram/pageage/project_deptWorks/add/index.js b/miniprogram/pageage/project_deptWorks/add/index.js deleted file mode 100644 index ced8ba5..0000000 --- a/miniprogram/pageage/project_deptWorks/add/index.js +++ /dev/null @@ -1,219 +0,0 @@ -// pageage/safetyManagement/addSafetyInspect/index.js -const app = getApp() -Page({ - - /** - * 页面的初始数据 - */ - data: { - deptId:"", - projectId:"", - projectName:"", - loginName:"", - servicePersonnel:0, - supervisorPersonnel:0, - contractorPersonnel:0 - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad(options) { - let {projectId,projectName} = options - //获取缓存数据 - wx.getStorage({ - key: 'userinfo', - success:res=>{ - this.setData({ - projectId, - projectName, - deptId:res.data.deptId, - loginName:res.data.loginName - }) - this.getLastData(); - } - }) - }, - - //获取数据 - getLastData(){ - let that = this - wx.request({ - url: app.globalData.reqUrl+'/wechat/projectDeptWroks/list', - method:"get", - data:{ - projectId:this.data.projectId, - deptId:this.data.deptId - }, - success(res){ - res = res.data - if(res.code == 200){ - if(res.data){ - this.setData({ - servicePersonnel:res.data[0].servicePersonnel, - supervisorPersonnel:res.data[0].servicePersonnel, - contractorPersonnel:res.data[0].contractorPersonnel - }); - } - } - } - }) - }, - - //取消页面 - cancelSaveView(){ - /*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/ - wx.redirectTo({ - url: '../list/index' - }) - }, - - //保存 - onSave(){ - this.setData({ - loadShow:true - }) - let that = this - let {projectId,deptId,loginName,servicePersonnel, - supervisorPersonnel, - contractorPersonnel} = that.data; - //数据效验 - if(projectId==""||loginName==""||deptId==""){ - app.toast("数据异常,请刷新页面重试!") - that.setData({ - loadShow:false - }) - return; - } - if(servicePersonnel==""){ - app.toast("请填写劳务人员数!") - that.setData({ - loadShow:false - }) - return; - } - if(supervisorPersonnel==""){ - app.toast("请填写监理人员数!") - that.setData({ - loadShow:false - }) - return; - } - if(contractorPersonnel==""){ - app.toast("请填写总包人员数!") - that.setData({ - loadShow:false - }); - return; - } - let params = { - projectId, - deptId, - servicePersonnel, - supervisorPersonnel, - contractorPersonnel, - createBy:loginName - } - wx.request({ - url: app.globalData.reqUrl + "/wechat/projectDeptWroks/add", - method:"POST", - data:params, - header: { - "Username": loginName, - "Content-Type": "application/json" - }, - success(res){ - that.setData({ - loadShow:false - }) - res = res.data - if(res.code == 200){ - if(res.data==-1){ - app.toast("办理失败,当前单位已办理此类保险!") - }else{ - app.toast("添加成功!") - setTimeout(()=>{ - wx.redirectTo({ - url: '../list/index', - }) - },200) - } - } - } - }) - }, - - servicePersonnelAction: function (options) { - let value = options.detail.value; - value = value.replace(/[^0-9]/g, ''); // 正则表达式替换非数字为空 - this.data.servicePersonnel = value; - }, - - supervisorPersonnelAction: function (options) { - let value = options.detail.value; - value = value.replace(/[^0-9]/g, ''); // 正则表达式替换非数字为空 - this.data.supervisorPersonnel = value; - }, - - contractorPersonnelAction: function (options) { - let value = options.detail.value; - value = value.replace(/[^0-9]/g, ''); // 正则表达式替换非数字为空 - this.data.contractorPersonnel = value; - }, - - returnToPage: function () { - /*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/ - wx.redirectTo({ - url: '../list/index', - }) - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady() { - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow() { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom() { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { - - } -}) \ No newline at end of file diff --git a/miniprogram/pageage/project_deptWorks/add/index.json b/miniprogram/pageage/project_deptWorks/add/index.json deleted file mode 100644 index aeb0384..0000000 --- a/miniprogram/pageage/project_deptWorks/add/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "usingComponents": { - "van-overlay": "@vant/weapp/overlay/index" - }, - "navigationStyle":"custom" -} \ No newline at end of file diff --git a/miniprogram/pageage/project_deptWorks/add/index.wxml b/miniprogram/pageage/project_deptWorks/add/index.wxml deleted file mode 100644 index 2fc675d..0000000 --- a/miniprogram/pageage/project_deptWorks/add/index.wxml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - 新增在岗人员 - - - - - - - - {{projectName}} - - - 劳务人员 - - - - - - 监理人员 - - - - - - 总包人员 - - - - - - - 取消 - 保存 - - - - - - 数据加载中!请稍后... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/miniprogram/pageage/project_deptWorks/add/index.wxss b/miniprogram/pageage/project_deptWorks/add/index.wxss deleted file mode 100644 index 6a3c08a..0000000 --- a/miniprogram/pageage/project_deptWorks/add/index.wxss +++ /dev/null @@ -1,36 +0,0 @@ -/* pageage/safetyManagement/addSafetyInspect/index.wxss */ -.van-popup{ - background: none !important; -} -.van-image__img{ - border-radius: 10rpx !important; -} -.radio_custom_class{ - padding: 10rpx 100rpx 10rpx 0; -} -.radio_label_class{ - color: #ffffff !important; -} -.max_tab_name{ - padding: 0 40rpx; - font-size:30rpx; - height: 460rpx; - overflow: auto; - margin-top: 20rpx; - text-align: center; - } - .van-popup.van-popup--bottom{ - background: #232a44; - } - .van-popup { - background-color: var(--popup-background-color,#232a44) !important; - } - .font_color{ - padding: 15rpx 0; - color: #157dd2; - } - .active{ - font-size:30rpx; - font-weight: 600; - color: #14feff - } diff --git a/miniprogram/pageage/project_deptWorks/list/index.js b/miniprogram/pageage/project_deptWorks/list/index.js deleted file mode 100644 index 6df016b..0000000 --- a/miniprogram/pageage/project_deptWorks/list/index.js +++ /dev/null @@ -1,161 +0,0 @@ -// pageage/safetyManagement/securityCheckGR/index.js -const app = getApp() -Page({ - - /** - * 页面的初始数据 - */ - data: { - deptId:"", - loginName:"", - userName:"", - projectId:"", - projectData:{}, - projectNameArgs:"", - initData: {}, - show:false, - listData:[], - request:app.globalData.reqUrl - }, - - onClose(){ - this.setData({ show: false }); - }, - showPopup() { - this.setData({ show: true }); - }, - - skipAdd(){ - wx.redirectTo({ - url: `../add/index?projectId=${this.data.initData.id}&projectName=${this.data.initData.text}`, - }) - }, - - getInfo(e){ - let {id} = e.currentTarget.dataset.set; - if(!id){ - app.toast("当前合同未办理,不能查看详情!"); - return; - } - wx.redirectTo({ - url: `../info/index?id=${id}`, - }) - }, - - /** - * 生命周期函数--监听页面加载 - */ - onLoad(options) { - //获取缓存数据 - wx.getStorage({ - key: 'userinfo', - success:res=>{ - this.setData({ - deptId:res.data.deptId, - loginName:res.data.loginName, - userName:res.data.userName, - projectId:app.globalData.projectId, - projectNameArgs:app.globalData.projectName, - minRoleId:res.data.minRoleId, - initData:{text:app.globalData.projectName,id:app.globalData.projectId} - }) - this.getListData(app.globalData.projectId,res.data.deptId,res.data.minRoleId); - } - }) - }, - - /** - * 查询项目特种人员数据 - */ - getListData(projectId,deptId,minRoleId) { - var that = this; - //判断角色, - if(minRoleId==2||minRoleId==3||minRoleId==4){ - deptId=0; - } - wx.request({ - url: app.globalData.reqUrl + '/wechat/projectDeptWroks/list', - data: { - "deptId":deptId, - "projectId": projectId - }, - method: "get", - success: function (res) { - that.setData({ - listData:res.data.data - }) - } - }) - }, - - returnToPage: function () { - /*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/ - if(wx.getStorageSync('nav-menu')=="gd"){ - wx.redirectTo({ - url: '../../../pages/gengduogongneng/index', - }) - }else{ - wx.redirectTo({ - url: '../../../pages/safety_manage/index', - }) - } - }, - - //项目切换 返回值 - onProjectSelect(e){ - let projectId = e.detail.id; - let projectName = e.detail.text; - app.globalData.projectId = projectId; - app.globalData.projectName = projectName; - this.onLoad(); - }, - - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady() { - - }, - - /** - * 生命周期函数--监听页面显示 - */ - onShow() { - - }, - - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom() { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { - - } -}) \ No newline at end of file diff --git a/miniprogram/pageage/project_deptWorks/list/index.json b/miniprogram/pageage/project_deptWorks/list/index.json deleted file mode 100644 index c38e268..0000000 --- a/miniprogram/pageage/project_deptWorks/list/index.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "usingComponents": { - "van-overlay": "@vant/weapp/overlay/index" , - "van-popup": "@vant/weapp/popup/index" - }, - "navigationStyle":"custom" -} \ No newline at end of file diff --git a/miniprogram/pageage/project_deptWorks/list/index.wxml b/miniprogram/pageage/project_deptWorks/list/index.wxml deleted file mode 100644 index 14f4df0..0000000 --- a/miniprogram/pageage/project_deptWorks/list/index.wxml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - 在岗人员管理 - - - - - - - - - - - - - {{index < 9 ?'0'+(index+1):(index+1)}} - {{item.deptName}} - - - - - - 劳务人员:{{item.servicePersonnel}} - - 监理人员:{{item.supervisorPersonnel}} - - 总包人员:{{item.contractorPersonnel}} - - 提交用户:{{item.createBy}} - 提交时间:{{item.createTime}} - - - - - - - - - - 暂无数据 - - - - - - - - 变更 - - - - - - - - - diff --git a/miniprogram/pageage/project_deptWorks/list/index.wxss b/miniprogram/pageage/project_deptWorks/list/index.wxss deleted file mode 100644 index f370194..0000000 --- a/miniprogram/pageage/project_deptWorks/list/index.wxss +++ /dev/null @@ -1 +0,0 @@ -/* pageage/project_checking_list/project_checking_list.wxss */ diff --git a/miniprogram/pageage/project_measure/add/index.js b/miniprogram/pageage/project_measure/add/index.js index 0ec062e..811bcf5 100644 --- a/miniprogram/pageage/project_measure/add/index.js +++ b/miniprogram/pageage/project_measure/add/index.js @@ -498,7 +498,7 @@ Page({ let list = []; if (e.detail.id == 6) { this.data.infoTypeList.forEach(item => { - if (item.remark == "gjgc") { + if (item.remark == "gjgc" || item.remark == "all") { list.push({ "id": item.dictValue, "text": item.dictLabel @@ -507,7 +507,7 @@ Page({ }) } else { this.data.infoTypeList.forEach(item => { - if (!item.remark) { + if (!item.remark || item.remark == "all") { list.push({ "id": item.dictValue, "text": item.dictLabel diff --git a/miniprogram/pageage/project_measure/edit/index.js b/miniprogram/pageage/project_measure/edit/index.js index 3ca992f..fff5933 100644 --- a/miniprogram/pageage/project_measure/edit/index.js +++ b/miniprogram/pageage/project_measure/edit/index.js @@ -543,7 +543,7 @@ Page({ let list = []; if (e.detail.id == 6) { this.data.infoTypeList.forEach(item => { - if (item.remark == "gjgc") { + if (item.remark == "gjgc" || item.remark == "all") { list.push({ "id": item.dictValue, "text": item.dictLabel @@ -552,7 +552,7 @@ Page({ }) } else { this.data.infoTypeList.forEach(item => { - if (!item.remark) { + if (!item.remark || item.remark == "all") { list.push({ "id": item.dictValue, "text": item.dictLabel diff --git a/miniprogram/pageage/project_problemmodify/quality/draft/index.js b/miniprogram/pageage/project_problemmodify/quality/draft/index.js index 7c80b6e..13fa5db 100644 --- a/miniprogram/pageage/project_problemmodify/quality/draft/index.js +++ b/miniprogram/pageage/project_problemmodify/quality/draft/index.js @@ -6,24 +6,40 @@ Page({ * 页面的初始数据 */ data: { - maxDate:new Date(2088,1,1).getTime(), - minDate:new Date().getTime()+(3600*48*1000), - projectId:"", - projectName:"", - loginName:"", - userName:"", - rectifierData:[], - loadShow:false, - showHis:false, - inspectInfoData:[ - { - image_upload:[] - } - ], - lordSent:"", - lordSentUser:"", - flowNodes:[{text:'开始'},{text:'提交隐患'},{text:'隐患整改'},{text:'隐患复检'},{text:'结束'}], - active: 0 + maxDate: new Date(2088, 1, 1).getTime(), + minDate: new Date().getTime() + (3600 * 48 * 1000), + projectId: "", + projectName: "", + loginName: "", + userName: "", + rectifierData: [], + loadShow: false, + showHis: false, + inspectInfoData: [{ + image_upload: [] + }], + lordSent: "", + lordSentUser: "", + flowNodes: [{ + text: '开始' + }, { + text: '提交隐患' + }, { + text: '隐患整改' + }, { + text: '隐患复检' + }, { + text: '结束' + }], + active: 0, + problemType: "1", + problemTypeList: [{ + id: 1, + text: '常规检查' + }, { + id: 2, + text: '专项检查' + }] }, /** @@ -32,65 +48,65 @@ Page({ onLoad(options) { //获取缓存数据 wx.getStorage({ - key: 'userinfo', - success:res=>{ - this.setData({ - projectId:app.globalData.projectId, - projectName:app.globalData.projectName, - loginName:res.data.loginName, - userName:res.data.nickName - }) - this.getAllProjectUserData(); - this.getHisInfo(); - } - }) + key: 'userinfo', + success: res => { + this.setData({ + projectId: app.globalData.projectId, + projectName: app.globalData.projectName, + loginName: res.data.loginName, + userName: res.data.nickName + }) + this.getAllProjectUserData(); + this.getHisInfo(); + } + }) }, //查询项目人员数据 - getAllProjectUserData(){ + getAllProjectUserData() { let that = this wx.request({ - url: app.globalData.reqUrl+'/wechat/projectuserinfo/selectProjectUnitUser', - method:"get", - data:{ - projectId:that.data.projectId, - loginName:that.data.loginName + url: app.globalData.reqUrl + '/wechat/projectuserinfo/selectProjectUnitUser', + method: "get", + data: { + projectId: that.data.projectId, + loginName: that.data.loginName }, - header:{ - 'content-type': 'application/x-www-form-urlencoded' + header: { + 'content-type': 'application/x-www-form-urlencoded' }, - success(res){ + success(res) { res = res.data - if(res.code == 200){ + if (res.code == 200) { that.setData({ - rectifierData:res.data + rectifierData: res.data }) } } }) }, - getHisInfo(){ + getHisInfo() { //这里查询当前登录人上次提交隐患,自动填充整改人,复检人,抄送人 let that = this wx.request({ - url: app.globalData.reqUrl+'/wechat/projectProblemmodify/findDraftLastDataByParams', - method:"get", - data:{ - projectId:that.data.projectId, - createUser:that.data.loginName, - infoType:1 + url: app.globalData.reqUrl + '/wechat/projectProblemmodify/findDraftLastDataByParams', + method: "get", + data: { + projectId: that.data.projectId, + createUser: that.data.loginName, + infoType: 1 }, - header:{ - 'content-type': 'application/x-www-form-urlencoded' + header: { + 'content-type': 'application/x-www-form-urlencoded' }, - success(res){ + success(res) { res = res.data - if(res.code == 200 && res.data){ + if (res.code == 200 && res.data) { that.setData({ - showHis:true, - lordSent:res.data.lordSent, - lordSentUser:res.data.lordSentUser + showHis: true, + lordSent: res.data.lordSent, + lordSentUser: res.data.lordSentUser }) } } @@ -98,102 +114,118 @@ Page({ }, // list 上传图片 - onImagesArr(e){ + onImagesArr(e) { var index = e.currentTarget.dataset.index var data = this.data.inspectInfoData data[index].image_upload = e.detail this.setData({ - inspectInfoData:data + inspectInfoData: data }) }, //添加整改人 - onAddLordSent(e){ - if(e.detail.length>0){ + onAddLordSent(e) { + if (e.detail.length > 0) { this.setData({ - lordSent:e.detail[0].userName, - lordSentUser:e.detail[0].phoneNumber + lordSent: e.detail[0].userName, + lordSentUser: e.detail[0].phoneNumber }) } }, //取消页面 - cancelSaveView(){ + cancelSaveView() { this.returnToPage() }, //保存 - onProblemSubmitSave(){ + onProblemSubmitSave() { this.setData({ - loadShow:true + loadShow: true }) let that = this - let {projectId,projectName,lordSent,lordSentUser,loginName,inspectInfoData} = that.data; + let { + projectId, + projectName, + problemType, + lordSent, + lordSentUser, + loginName, + inspectInfoData + } = that.data; //数据效验 - if(projectId==""||loginName==""){ + if (projectId == "" || loginName == "") { app.toast("数据异常,请刷新页面重试!") that.setData({ - loadShow:false + loadShow: false }) return; } - if(lordSent==""||lordSentUser==""){ + if (problemType == "") { + app.toast("请选择问题类型!") + that.setData({ + loadShow: false + }) + return; + } + if (lordSent == "" || lordSentUser == "") { app.toast("请选择整改人!") that.setData({ - loadShow:false + loadShow: false }) return; } let fileUrls = []; - inspectInfoData.forEach(async (item)=>{ - let beforeCheckUrl = []; - item.image_upload.forEach(async (it)=>{ - let uploadUrl = app.globalData.uploadUrl+'/common/upload' + inspectInfoData.forEach(async (item) => { + let beforeCheckUrl = []; + item.image_upload.forEach(async (it) => { + let uploadUrl = app.globalData.uploadUrl + '/common/upload' let name = "file"; //这里复杂的图片上传,改为同步上传,因为小程序只能上传一张图片 - let obj = await that.syncUploadImage(uploadUrl,it,name); + let obj = await that.syncUploadImage(uploadUrl, it, name); beforeCheckUrl.push(obj.data.fileName); - if(beforeCheckUrl.length >= item.image_upload.length){ + if (beforeCheckUrl.length >= item.image_upload.length) { fileUrls.push(beforeCheckUrl); } - //验证图片上传完毕 - if(fileUrls.length >= inspectInfoData.length){ + //验证图片上传完毕 + if (fileUrls.length >= inspectInfoData.length) { let params = { projectId, - infoType:"1", - problemArea:projectName, + infoType: "1", + problemArea: projectName, + problemType, lordSent, lordSentUser, - checkState:0, - fileUrls:fileUrls, - createUser:loginName + checkState: 0, + fileUrls: fileUrls, + createUser: loginName } wx.request({ url: app.globalData.reqUrl + '/wechat/projectProblemmodify/addQualityDraft', - method:"POST", - data:params, + method: "POST", + data: params, header: { "Username": loginName, "Content-Type": "application/json" }, - success(res){ + success(res) { that.setData({ - loadShow:false + loadShow: false }) res = res.data - if(res.code == 200){ + if (res.code == 200) { app.toast("添加成功!") - setTimeout(()=>{ - if(wx.getStorageSync('nav-menu')=="list"){ + setTimeout(() => { + if (wx.getStorageSync('nav-menu') == "list") { wx.redirectTo({ url: '../list/index', }) - }else{ + } else { wx.redirectTo({ url: '../../../../pages/quality_manage/index', }) } - },200); + }, 200); } } }) @@ -205,74 +237,84 @@ Page({ /** * 这里考虑上传图片异步问题,封装为同步 */ - syncUploadImage(url,uploadFile,name) { + syncUploadImage(url, uploadFile, name) { return new Promise((resolve, reject) => { wx.uploadFile({ - url, // 上传的服务器接口地址 - filePath: uploadFile, - header: { - "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" - }, - name, //上传的所需字段,后端提供 - formData: { user: 'test' }, - success: (res) => { - // 上传完成操作 - const data = JSON.parse(res.data) - resolve({ - data: data - }) - }, - fail: (err) => { - //上传失败:修改pedding为reject - console.log("访问接口失败", err); - wx.showToast({ - title: "网络出错,上传失败", - icon: 'none', - duration: 1000 - }); - reject(err) - } + url, // 上传的服务器接口地址 + filePath: uploadFile, + header: { + "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" + }, + name, //上传的所需字段,后端提供 + formData: { + user: 'test' + }, + success: (res) => { + // 上传完成操作 + const data = JSON.parse(res.data) + resolve({ + data: data + }) + }, + fail: (err) => { + //上传失败:修改pedding为reject + console.log("访问接口失败", err); + wx.showToast({ + title: "网络出错,上传失败", + icon: 'none', + duration: 1000 + }); + reject(err) + } }); }) }, - returnToPage: function () { - /*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/ - if(wx.getStorageSync('nav-menu')=="list"){ - wx.redirectTo({ - url: '../list/index', + /** + * 选择问题类型 + * @param {*} e + */ + onSelectProblemType(e) { + this.setData({ + problemType: e.detail.id, }) - }else{ - wx.redirectTo({ - url: '../../../../pages/quality_manage/index', - }) - } - }, + }, + + returnToPage: function () { + /*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/ + if (wx.getStorageSync('nav-menu') == "list") { + wx.redirectTo({ + url: '../list/index', + }) + } else { + wx.redirectTo({ + url: '../../../../pages/quality_manage/index', + }) + } + }, //新增问题 - onNewIssues(){ + onNewIssues() { var data = this.data.inspectInfoData - if(data.length==5){ + if (data.length == 5) { app.toast("一次最多只能提交5个问题!"); return false; } - data.push( - { - image_upload:[] - } - ) + data.push({ + image_upload: [] + }) this.setData({ - inspectInfoData:data + inspectInfoData: data }) }, //删除 - onNewIssuesDelete(e){ + onNewIssuesDelete(e) { var index = e.currentTarget.dataset.index var data = this.data.inspectInfoData - data.splice(index, 1)  + data.splice(index, 1) this.setData({ - inspectInfoData:data + inspectInfoData: data }) }, diff --git a/miniprogram/pageage/project_problemmodify/quality/draft/index.wxml b/miniprogram/pageage/project_problemmodify/quality/draft/index.wxml index 3086307..f41dd7d 100644 --- a/miniprogram/pageage/project_problemmodify/quality/draft/index.wxml +++ b/miniprogram/pageage/project_problemmodify/quality/draft/index.wxml @@ -17,6 +17,12 @@ {{projectName}} + + 问题类型 + + + + 整改人员 diff --git a/miniprogram/pageage/project_problemmodify/quality/info/index.wxml b/miniprogram/pageage/project_problemmodify/quality/info/index.wxml index f44f7d4..2851170 100644 --- a/miniprogram/pageage/project_problemmodify/quality/info/index.wxml +++ b/miniprogram/pageage/project_problemmodify/quality/info/index.wxml @@ -78,19 +78,32 @@ 整改人 - {{infoData.lordSent}} + + {{infoData.lordSent}} + 集团公司 + 子公司 + 总包单位 + 分包单位 + 监理单位 + 抄送人 - {{infoData.copySend}} + {{infoData.copySend}} 复检人 - {{infoData.recheckSend}} + {{infoData.recheckSend}} + 集团公司 + 子公司 + 总包单位 + 分包单位 + 监理单位 + diff --git a/miniprogram/pageage/project_problemmodify/security/draft/index.js b/miniprogram/pageage/project_problemmodify/security/draft/index.js index 18a5a28..1e15eaa 100644 --- a/miniprogram/pageage/project_problemmodify/security/draft/index.js +++ b/miniprogram/pageage/project_problemmodify/security/draft/index.js @@ -23,7 +23,15 @@ Page({ lordSent:"", lordSentUser:"", flowNodes:[{text:'开始'},{text:'提交隐患'},{text:'隐患整改'},{text:'隐患复检'},{text:'结束'}], - active: 0 + active: 0, + problemType: "1", + problemTypeList: [{ + id: 1, + text: '常规检查' + }, { + id: 2, + text: '专项检查' + }] }, /** @@ -128,7 +136,7 @@ Page({ loadShow:true }) let that = this - let {projectId,projectName,lordSent,lordSentUser,loginName,inspectInfoData} = that.data; + let {projectId,projectName,problemType,lordSent,lordSentUser,loginName,inspectInfoData} = that.data; //数据效验 if(projectId==""||loginName==""){ app.toast("数据异常,请刷新页面重试!") @@ -137,6 +145,13 @@ Page({ }) return; } + if (problemType == "") { + app.toast("请选择问题类型!") + that.setData({ + loadShow: false + }) + return; + } if(lordSent==""||lordSentUser==""){ app.toast("请选择整改人!") that.setData({ @@ -162,6 +177,7 @@ Page({ projectId, infoType:"0", problemArea:projectName, + problemType, lordSent, lordSentUser, checkState:0, @@ -249,6 +265,16 @@ Page({ } }, + /** + * 选择问题类型 + * @param {*} e + */ + onSelectProblemType(e) { + this.setData({ + problemType: e.detail.id, + }) + }, + //新增问题 onNewIssues(){ var data = this.data.inspectInfoData diff --git a/miniprogram/pageage/project_problemmodify/security/draft/index.wxml b/miniprogram/pageage/project_problemmodify/security/draft/index.wxml index 8c1ace9..727cf84 100644 --- a/miniprogram/pageage/project_problemmodify/security/draft/index.wxml +++ b/miniprogram/pageage/project_problemmodify/security/draft/index.wxml @@ -17,6 +17,12 @@ {{projectName}} + + 问题类型 + + + + 整改人员 diff --git a/miniprogram/pageage/project_problemmodify/security/info/index.wxml b/miniprogram/pageage/project_problemmodify/security/info/index.wxml index 4cb5223..1a0de11 100644 --- a/miniprogram/pageage/project_problemmodify/security/info/index.wxml +++ b/miniprogram/pageage/project_problemmodify/security/info/index.wxml @@ -78,7 +78,13 @@ 整改人 - {{infoData.lordSent}} + {{infoData.lordSent}} + 集团公司 + 子公司 + 总包单位 + 分包单位 + 监理单位 + @@ -90,7 +96,13 @@ 复检人 - {{infoData.recheckSend}} + {{infoData.recheckSend}} + 集团公司 + 子公司 + 总包单位 + 分包单位 + 监理单位 + diff --git a/miniprogram/pageage/project_problemmodify/security/modify/index.wxml b/miniprogram/pageage/project_problemmodify/security/modify/index.wxml index 0f43043..09ebcaa 100644 --- a/miniprogram/pageage/project_problemmodify/security/modify/index.wxml +++ b/miniprogram/pageage/project_problemmodify/security/modify/index.wxml @@ -135,7 +135,7 @@ 整改后图片 - + diff --git a/miniprogram/pageage/project_standard/list/index.js b/miniprogram/pageage/project_standard/list/index.js index ad437bd..d20ec49 100644 --- a/miniprogram/pageage/project_standard/list/index.js +++ b/miniprogram/pageage/project_standard/list/index.js @@ -38,13 +38,13 @@ Page({ count: 0, }, { id: 4, - name: '设备管理标准', - icon: config.baseUrl + '/staticFiles/img/sbglbzh.png', + name: '文明施工标准', + icon: config.baseUrl + '/staticFiles/img/wmsgbzh.png', count: 0, }, { id: 5, - name: '文明施工标准', - icon: config.baseUrl + '/staticFiles/img/wmsgbzh.png', + name: '设备管理标准', + icon: config.baseUrl + '/staticFiles/img/sbglbzh.png', count: 0, }, { id: 6, diff --git a/miniprogram/pages/components/voucher-date/index.js b/miniprogram/pages/components/voucher-date/index.js index 8d3484b..8b2bea7 100644 --- a/miniprogram/pages/components/voucher-date/index.js +++ b/miniprogram/pages/components/voucher-date/index.js @@ -30,6 +30,10 @@ Component({ currentDate:{ type:Number, value:new Date().getTime() + }, + classStr:{ + type:String, + value:'' } }, /**数据监听 */ diff --git a/miniprogram/pages/components/voucher-date/index.wxml b/miniprogram/pages/components/voucher-date/index.wxml index 6961baf..a016469 100644 --- a/miniprogram/pages/components/voucher-date/index.wxml +++ b/miniprogram/pages/components/voucher-date/index.wxml @@ -1,8 +1,8 @@ - + - + diff --git a/miniprogram/pages/components/voucher-date/index.wxss b/miniprogram/pages/components/voucher-date/index.wxss index 90cfa54..b54ad38 100644 --- a/miniprogram/pages/components/voucher-date/index.wxss +++ b/miniprogram/pages/components/voucher-date/index.wxss @@ -51,11 +51,27 @@ background: none !important; color: #546696 !important; } - - - - - +.rdsDate{ + padding: 0rpx !important; +} +.rdsDate .voucher_select_min{ + width:100% !important; + padding-left: 0rpx !important; +} +.rdsDate .voucher_select_icon{ + position:absolute !important; + right: 65rpx !important; +} +.rdsDate .voucher_select_min input{ + width: 100% !important; + height:60rpx !important; + border-radius: 50rpx !important; + font-size: 28rpx !important; + color: #00e3fe !important; + border: 1px solid #00e3fe; + box-sizing: border-box !important; + padding-left: 32rpx !important; +} diff --git a/miniprogram/pages/project_flowable/await/index.js b/miniprogram/pages/project_flowable/await/index.js index d888f30..5898abb 100644 --- a/miniprogram/pages/project_flowable/await/index.js +++ b/miniprogram/pages/project_flowable/await/index.js @@ -64,11 +64,6 @@ Page({ name: '专项验收审批', icon: config.baseUrl + '/staticFiles/img/zxyssp.png', todoDB:0, - }, { - id: 9, - name: '分包资质审批', - icon: config.baseUrl + '/staticFiles/img/tzl.png', - todoDB:0, } ], }, diff --git a/miniprogram/pages/project_flowable/await/index.wxml b/miniprogram/pages/project_flowable/await/index.wxml index 27c663c..d4a5bb8 100644 --- a/miniprogram/pages/project_flowable/await/index.wxml +++ b/miniprogram/pages/project_flowable/await/index.wxml @@ -71,7 +71,7 @@ 项目名称:{{item.businessKeyName}} - 审批事项:{{item.procDefName}} + 申请类型:{{item.procDefName}} 接收时间:{{item.createTime}} 申请用户:{{item.startUserName}} 申请单位:{{item.startDeptName}} diff --git a/miniprogram/pages/project_flowable/initTask/index.wxml b/miniprogram/pages/project_flowable/initTask/index.wxml index 5abb7be..a893654 100644 --- a/miniprogram/pages/project_flowable/initTask/index.wxml +++ b/miniprogram/pages/project_flowable/initTask/index.wxml @@ -116,7 +116,6 @@ 审批内容 [仅可上传PDF文件] - 从相册上传图片 diff --git a/miniprogram/pages/safety_manage/index.js b/miniprogram/pages/safety_manage/index.js index 4f2545b..4a8649c 100644 --- a/miniprogram/pages/safety_manage/index.js +++ b/miniprogram/pages/safety_manage/index.js @@ -118,7 +118,7 @@ Page({ this.getTrainList(projectId, 0); this.getSecurityCheck(projectId); this.getSpecial(projectId); - this.getDeptWorks(projectId); + //this.getDeptWorks(projectId); this.getPojectInsurance(projectId); //this.getTraining(projectId); this.getTrainList(projectId, 1); @@ -266,7 +266,7 @@ Page({ */ getDeptWorks(projectId) { wx.request({ - url: app.globalData.reqUrl + '/wechat/projectDeptWroks/findSumByProjectId', + url: app.globalData.reqUrl + '/wechat/attendance/findSumByProjectId', data: { projectId: projectId }, diff --git a/miniprogram/pages/safety_manage/index.wxml b/miniprogram/pages/safety_manage/index.wxml index 7c5e490..491955a 100644 --- a/miniprogram/pages/safety_manage/index.wxml +++ b/miniprogram/pages/safety_manage/index.wxml @@ -117,7 +117,7 @@ - + 在岗人员 diff --git a/miniprogram/pages/xiangmugaikuang/index.js b/miniprogram/pages/xiangmugaikuang/index.js index c540688..3d11cee 100644 --- a/miniprogram/pages/xiangmugaikuang/index.js +++ b/miniprogram/pages/xiangmugaikuang/index.js @@ -1,8 +1,10 @@ import * as echarts from '../../ec-canvas/echarts'; - +import { + groupAllByParams, + findGroupAllByDays +} from '../../api/projectAttendance' const app = getApp(); - //加载视频监控饼图 let datas_1 = []; let formatNumber_1 = function (num) { @@ -300,7 +302,63 @@ Page({ initData: {}, todoDb: 0, approveDb: 0, - aq:0, + aq: 0, + nactive: 0, + labourData: [{ + name: "总包人员", + total: 0, + unit: "人", + yesMonitor: 180 + }, + { + name: "监理人员", + yesMonitor: 0, + total: 0, + unit: "人" + }, + { + name: "劳务人员", + yesMonitor: 0, + total: 0, + unit: "人" + }, + ], + labourDataList: [], + labourImg: "https://szgcwx.jhncidg.com/staticFiles/icon/zgry.png", + labourName: "在岗人员", + labourTotal: 0, + labourTypeList: [{ + name: "在岗人员", + total: 0, + img: "https://szgcwx.jhncidg.com/staticFiles/icon/zgry.png" + }, { + name: "离岗人员", + total: 0, + img: "https://szgcwx.jhncidg.com/staticFiles/icon/rylg.png" + }, { + name: "今日出勤", + total: 0, + img: "https://szgcwx.jhncidg.com/staticFiles/icon/dw.png" + }], + animation: true, + animationData: {}, + labourDatas:{ + unit : '人', + legend:['出勤人数', '当前在岗'], + color:['#2e6ed0','#fb9300'], + Xdata :['01-01', '01-02', '01-03', '01-04', '01-05', '01-06', '01-07'], + Ydata:[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]] + }, + switchChart:false, + }, + + // 事件委托 + selected(e) { + this.setData({ + nactive: e.target.dataset.set, + labourImg: this.data.labourTypeList[e.target.dataset.set].img, + }) + this.initDeptWroksCharts(); }, //项目切换 返回值 @@ -311,6 +369,7 @@ Page({ app.globalData.projectId = projectId; app.globalData.projectName = projectName; this.setData({ + switchChart:true, projectId: projectId, projectName: projectName }) @@ -386,6 +445,7 @@ Page({ onLoad: function (options) { this.onClickShow(); this.setData({ + labourImg: this.data.labourTypeList[this.data.nactive].img, activeName: ["1"], }); var that = this; @@ -429,12 +489,103 @@ Page({ //this.getMachineryList(app.globalData.projectId); //视频的数据 //this.getVideoList(app.globalData.projectId); + this.initAnimationData(); + this.initProjectDeptWroks(); + this.initLabourDatas(); + }, + + /** + * 初始化动画 + */ + initAnimationData() { + var animation = wx.createAnimation({ + duration: 1000, + timingFunction: 'linear', + }) + this.animation = animation; + if (this.data.animation) { + animation.translateY(-8).step(); + } else { + animation.translateY(8).step(); + } + this.setData({ + animation: this.data.animation ? false : true, + animationData: animation.export() + }) + setTimeout(() => { + this.initAnimationData(); + }, 1200) + }, + + /** + * 初始化考勤信息 + */ + initProjectDeptWroks() { + let zg = 0; + let lg = 0; + let cq = 0; + groupAllByParams({ + projectId: app.globalData.projectId + }).then(res => { + if (res.data.length > 0) { + res.data.forEach(item => { + if (item.type == "1") { + zg += item.total; + } else if (item.type == "2") { + lg += item.total; + } else { + cq += item.total; + } + }); + } + this.setData({ + "labourTypeList[0].total": zg, + "labourTypeList[1].total": lg, + "labourTypeList[2].total": cq, + labourTotal: zg, + labourDataList: res.data || [] + }) + this.initDeptWroksCharts(); + }); + }, + + /** + * 初始化统计图表 + */ + initDeptWroksCharts() { + let labourDataList = this.data.labourDataList; + let naValue = this.data.nactive + 1; + if (labourDataList.length > 0) { + let zb = 0; + let jl = 0; + let lw = 0; + labourDataList.forEach(item => { + if (item.type == naValue) { + if (item.companyTypeId == 8) { + jl += item.total; + } else if (item.companyTypeId == 1 || item.companyTypeId == 6) { + zb += item.total; + } else { + lw += item.total; + } + } + }); + this.setData({ + "labourData[0].total": zb, + "labourData[0].yesMonitor": zb, + "labourData[1].total": jl, + "labourData[1].yesMonitor": jl, + "labourData[2].total": lw, + "labourData[2].yesMonitor": lw, + labourTotal: this.data.labourTypeList[this.data.nactive].total + }) + } }, /** * 查询公众号消息授权 */ - reUserOpenMsgId(){ + reUserOpenMsgId() { let userInfos = this.selectComponent("#userInfos"); userInfos.loadUserInfo(); }, @@ -447,6 +598,44 @@ Page({ }); }, + /** + * 初始化曲线图表 + */ + initLabourDatas(){ + findGroupAllByDays({projectId:app.globalData.projectId}).then(res =>{ + if(res.code==200){ + let xd = []; + let yd1=[]; + let yd2=[]; + res.data.list.forEach(item =>{ + xd.push(item.attendanceTime); + yd1.push(item.total); + }); + if(xd.length<7){ + let n = 7-xd.length; + for(let i=0;i - + + + + + + 劳务管理 + 查看详情 + + + + + + + {{item.name}}({{item.total}}) + + + + + + + + + + + + + {{ labourTotal }} 人 + + + + + + + + + - - 劳务管理 - - {{weather}} - {{temperature}} ℃ - - - - - - 今日出勤人数:{{yangchenCount}} - - - 实时在场人数:{{monthEarlyNum}} - - - - - + + 最近出勤 + 查看详情 + + + + + + - @@ -117,88 +166,38 @@ - - + + 项目概况 - - + + 安全管理 {{aq}} - - + + 质量管理 {{approveDb}} - - - - - + + + + + 进度管理 - - + + 更多功能 {{todoDb}} - + @@ -206,4 +205,4 @@ 数据加载中!请稍后... - \ No newline at end of file + \ No newline at end of file diff --git a/miniprogram/pages/xiangmugaikuang/index.wxss b/miniprogram/pages/xiangmugaikuang/index.wxss index 83f771d..8a13f19 100644 --- a/miniprogram/pages/xiangmugaikuang/index.wxss +++ b/miniprogram/pages/xiangmugaikuang/index.wxss @@ -1,5 +1,16 @@ /* pages/xiangmugaikuang/index.wxss */ - +.information-review-tab{ + display: flex; + justify-content: space-around; + align-items: center; + height: 80rpx; + color: #92a1ca; +} +.information-review-tab .active{ + color: #87e3fa; + padding-left: 40rpx; + background: url("https://szgcwx.jhncidg.com/staticFiles/icon/utilization.png") no-repeat left/35rpx; +} /* 有赞原码修改 */ .van-collapse.van-hairline--top-bottom:after{ border-width: 0px 0; @@ -57,9 +68,9 @@ padding:0 30rpx; } .echarts_min{ - background:#1e2336 ; + background:#1e2336; font-size: 28rpx; - padding: 30rpx; + padding: 15rpx; border-radius:15rpx; } .eharts_title{ @@ -139,6 +150,58 @@ margin-right: 30rpx; } +.survey_content { + display: flex; + align-items: center; + justify-content: center; +} + +.survey_content_img { + width: 90px; + height: 90px; + text-align: center; + line-height: 90px; + position: relative; + background: url("https://szgcwx.jhncidg.com/staticFiles/icon/survey_total_icon.png") no-repeat bottom/90px 60px; +} + +.survey_content_img image{ + text-align: center; + line-height: 90px; + width: 50px; + height: 50px; +} + +.labour-survey_content_number { + color: #cbdaff; + font-size: 16px; + text-align: center; + padding-top: 25px; + padding-left: 0; +} + +.survey_content_number { + padding-left: 15px; + color: #cbdaff; + font-size: 16px; +} + +.labour-survey_content_number { + color: #cbdaff; + font-size: 16px; + text-align: center; + padding-top: 25px; + padding-left: 0; +} + +.survey_content_value text { + font-size: 25px; + font-style: italic; + font-weight: bold; + color: #87e3fa; + padding-right: 5px; +} + diff --git a/miniprogram/utils/format.wxs b/miniprogram/utils/format.wxs index 2d02e3d..ff2f7f9 100644 --- a/miniprogram/utils/format.wxs +++ b/miniprogram/utils/format.wxs @@ -54,7 +54,6 @@ var dateFormat = function (timestamp, format) { var reg1 = regYear.exec(format); // console.log(reg1[0]); if (reg1) { - format = format.replace(reg1[1], (realDate.getFullYear() + '').substring(4 - reg1[1].length)); } for (var i = 0; i < date.length; i++) { @@ -87,5 +86,47 @@ module.exports = { }, evalStr:function(str){ return eval(str); + }, + dateStrEv:function(startDate,endDate){ + if(startDate){ + return startDate.split(" ")[0]; + }else if(endDate){ + return endDate.split(" ")[0]; + }else{ + return "未找到记录"; + } + }, + dateStr:function(str){ + if(str){ + return str.split(" ")[0]; + }else{ + return ""; + } + }, + timeStr:function(str){ + if(str){ + return str.split(" ")[1]; + }else{ + return ""; + } + }, + isHttpImg:function(str){ + if(str.indexOf("http:")>-1 || str.indexOf("https:")>-1){ + return true; + }else{ + return false; + } + }, + birthDate:function(timestamp){ + var date = getDate(parseInt(timestamp)); + var mm = date.getMonth()+1; + if(mm<10){ + mm = '0'+mm; + } + var dd = date.getDate(); + if(dd<10){ + dd = '0'+dd; + } + return date.getFullYear()+"-"+mm+"-"+dd; } } \ No newline at end of file diff --git a/miniprogram/utils/json.js b/miniprogram/utils/json.js index 5eccdd4..bf114e1 100644 --- a/miniprogram/utils/json.js +++ b/miniprogram/utils/json.js @@ -2,396 +2,991 @@ module.exports = { standardTypeListNotes: [ [{ - id: 1, - text: "现场管理标准化", - children: [ - { text: "安全宣传牌", id: 101 }, - { text: "施工现场总平面布置图", id: 102 }, - { text: "工程概况", id: 103 }, - { text: "管理监督牌", id: 104 }, - { text: "安全生产纪律牌", id: 105 }, - { text: "安全生产技术牌", id: 106 }, - { text: "十项安全措施牌", id: 107 }, - { text: "消防保卫牌", id: 108 }, - { text: "卫生须知牌", id: 109 }, - { text: "管理人员岗位职责", id: 110 }, - { text: "消防管理公示牌", id: 111 }, - { text: "重大危险作业公示牌", id: 112 }, - ], - }], - [ - { - text: "地基与基础", - id: 201, - children: [ - { text: "基坑支护", id: 20101 }, - { text: "地下水控制", id: 20102 }, - { text: "地基施工", id: 20103 }, - { text: "桩基础", id: 20104 }, - { text: "土方开挖", id: 20105 }, - { text: "地基钎探", id: 20106 }, - { text: "混凝土基础", id: 20107 }, - { text: "地下防水", id: 20108 }, - { text: "土方回填", id: 20109 }, - ], - }, - { - text: "人防工程", - id: 202, - children: [ - { text: "门框墙、临空墙配筋构造", id: 20201 }, - { text: "人防梁、板钢筋", id: 20202 }, - { text: "人防工程模板", id: 20203 }, - { text: "人防工程混凝土", id: 20204 }, - { text: "人防门框安装", id: 20205 }, - ], - }, - { - text: "主体结构", - id: 203, - children: [ - { text: "钢筋工程", id: 20301 }, - { text: "模板工程", id: 20302 }, - { text: "混凝土", id: 20303 }, - { text: "装配式建筑", id: 20304 }, - { text: "钢结构", id: 20305 }, - { text: "砌体结构 ", id: 20306 }, - ], - }, - { - text: "建筑装饰装修", - id: 204, - children: [ - { text: "建筑地面", id: 20401 }, - { text: "抹灰", id: 20402 }, - { text: "室内涂饰", id: 20403 }, - { text: " 门窗", id: 20404 },{ text: "吊顶", id: 20405 }, - { text: "饰面板", id: 20406 }, - { text: "变形缝", id: 20407 }, - ], - }, - { - text: "屋面", - id: 205, - children: [ - { text: "屋面施工整体策划", id: 20501 }, - { text: "檐口防水构造", id: 20502 }, - { text: "屋面女儿墙", id: 20503 }, - { text: "女儿墙泛水", id: 20504 }, - { text: "泛水", id: 20505 }, - { text: "檐沟与天沟", id: 20506 }, - { text: "屋面排气孔", id: 20507 }, - { text: "出屋面管道", id: 20508 }, - { text: "水落口", id: 20509 }, - { text: "设施基座", id: 20510 }, - { text: " 过水孔", id: 20511 }, - { text: "屋面变形缝", id: 20512 }, - { text: "屋面爬梯、出入口", id: 20513 }, - { text: "屋面分格缝", id: 20514 }, - { text: "屋面造型", id: 20515 }, - { text: "排烟风道", id: 20516 }, - { text: "屋面栈桥", id: 20517 }, - { text: "屋面水簸箕", id: 20518 }, - ], - }, - { - text: "建筑给排水及供暖", - id: 206, - children: [ - { text: "管道支吊架", id: 20601 }, - { text: "管道连接", id: 20602 }, - { text: "管道套管及封堵", id: 20603 }, - { text: "散热器安装", id: 20604 }, - { text: "水泵房、换热站", id: 20605 }, - { text: "消火栓及消防水泵接合器", id: 20606 }, - { text: " 报警阀安装", id: 20607 }, - { text: "设备减震", id: 20608 }, - { text: "消防水泵房", id: 20609 }, - ], - }, - { - text: "通风与空调", - id: 207, - children: [ - { text: "防腐和绝热", id: 20701 }, - { text: "屋面冷却塔、排烟风机安装", id: 20702 }, - { text: "太阳能、多联机、空气源及风冷热泵", id: 20703 }, - { text: "空气处理机组、风机安装", id: 20704 }, - { text: "风管制作安装", id: 20705 }, - { text: "空调主机房", id: 20706 }, - ], - }, - { - text: "建筑电气", - id: 208, - children: [ - { text: "变配电室安装", id: 20801 }, - { text: " 配电柜安装", id: 20802 }, - { text: "控制柜安装", id: 20803 }, - { text: "配电箱安装", id: 20804 }, - { text: "箱柜内配线", id: 20805 }, - { text: "箱柜内电器接地", id: 20806 }, - { text: "低压封闭母线安装", id: 20807 }, - { text: "桥架敷设", id: 20808 }, - { text: "电缆敷设", id: 20809 }, - { text: "支架安装、三通安装", id: 20810 }, - { text: "补偿装置", id: 20811 }, - { text: " 电线、电缆中间头、端头制作与安装", id: 20812 }, - { text: "开关面板安装", id: 20813 }, - { text: "灯具安装", id: 20814 }, - { text: "防雷引下线及接闪器安装", id: 20815 }, - { text: "等电位联结", id: 20816 }, - { text: "屋面金属物防雷接地", id: 20817 }, - { text: "水管井、金属门等电位安装", id: 20818 }, - { text: "灯具防护及接地", id: 20819 }, - { text: "接地测试点", id: 20820 }, - ], - }, - { - text: "智能建筑", - id: 209, - children: [ - { text: "机房设备安装", id: 20901 }, - { - text: "信息插座安装、卫星通讯系统、公共广播系统、火灾自动报警系统 ", - id: 20902, + id: 1, + text: "现场管理标准化", + children: [{ + text: "安全宣传牌", + id: 101 }, - { text: "数字会议系统、综合布线系统", id: 20903 }, - { text: "建筑监控系统", id: 20904 }, - { text: "信息化应用系统", id: 20905 }, - ], + { + text: "施工现场总平面布置图", + id: 102 + }, + { + text: "工程概况", + id: 103 + }, + { + text: "管理监督牌", + id: 104 + }, + { + text: "安全生产纪律牌", + id: 105 + }, + { + text: "安全生产技术牌", + id: 106 + }, + { + text: "十项安全措施牌", + id: 107 + }, + { + text: "消防保卫牌", + id: 108 + }, + { + text: "卫生须知牌", + id: 109 + }, + { + text: "管理人员岗位职责", + id: 110 + }, + { + text: "消防管理公示牌", + id: 111 + }, + { + text: "重大危险作业公示牌", + id: 112 + }, + ], + }], + [{ + text: "地基与基础", + id: 201, + children: [{ + text: "基坑支护", + id: 20101 + }, + { + text: "地下水控制", + id: 20102 + }, + { + text: "地基施工", + id: 20103 + }, + { + text: "桩基础", + id: 20104 + }, + { + text: "土方开挖", + id: 20105 + }, + { + text: "地基钎探", + id: 20106 + }, + { + text: "混凝土基础", + id: 20107 + }, + { + text: "地下防水", + id: 20108 + }, + { + text: "土方回填", + id: 20109 + }, + ], }, { - text: "建筑节能", - id: 210, - children: [ - { text: "外墙保模一体化", id: 21001 }, - { text: "外墙保温板粘贴", id: 21002 }, - { text: "防火隔离带", id: 21003 }, - ], + text: "人防工程", + id: 202, + children: [{ + text: "门框墙、临空墙配筋构造", + id: 20201 + }, + { + text: "人防梁、板钢筋", + id: 20202 + }, + { + text: "人防工程模板", + id: 20203 + }, + { + text: "人防工程混凝土", + id: 20204 + }, + { + text: "人防门框安装", + id: 20205 + }, + ], }, { - text: "电梯", - id: 211, - children: [ - { text: "电梯机房", id: 21101 }, - { text: "机房吊钩", id: 21102 }, - { text: "曳引机安装 ", id: 21103 }, - { text: "曳引机、导轨接地", id: 21104 }, - { text: "电梯缓冲器", id: 21105 }, - { text: "层门、地坎安装", id: 21106 }, - ], + text: "主体结构", + id: 203, + children: [{ + text: "钢筋工程", + id: 20301 + }, + { + text: "模板工程", + id: 20302 + }, + { + text: "混凝土", + id: 20303 + }, + { + text: "装配式建筑", + id: 20304 + }, + { + text: "钢结构", + id: 20305 + }, + { + text: "砌体结构 ", + id: 20306 + }, + ], }, { - text: "室外工程", - id: 212, - children: [ - { text: "散水", id: 21201 }, - { text: "室外台阶、坡道", id: 21202 }, - { text: "车库出入口", id: 21203 }, - { text: "室外雨、污水井和阀门井", id: 21204 }, - { text: "室外金属构件", id: 21205 }, - { text: "室外地面", id: 21206 }, - { text: "内部道路", id: 21207 }, - { text: "细部要求", id: 21208 }, - { text: "室外绿化 ", id: 21209 }, - { text: "室外环境", id: 21210 }, - ], - }, - ], - [ - { - text: "基坑工程", - id: 301, - children: [ - { text: "土方开挖", id: 30101 }, - { text: "基坑支护", id: 30102 }, - { text: "基坑安全防护", id: 30103 }, - { text: "基坑防排水", id: 30104 }, - { text: "基坑周边堆载控制", id: 30105 }, - { text: "基坑监测", id: 30106 }, - { text: "基坑通道", id: 30107 }, - { text: "厚大钢筋底板钢筋支架", id: 30108 }, - ], + text: "建筑装饰装修", + id: 204, + children: [{ + text: "建筑地面", + id: 20401 + }, + { + text: "抹灰", + id: 20402 + }, + { + text: "室内涂饰", + id: 20403 + }, + { + text: " 门窗", + id: 20404 + }, { + text: "吊顶", + id: 20405 + }, + { + text: "饰面板", + id: 20406 + }, + { + text: "变形缝", + id: 20407 + }, + ], }, { - text: "脚手架工程", - id: 302, - children: [ - { text: "落地式钢管脚手架", id: 30201 }, - { text: "悬挑脚手架", id: 30202 }, - { text: "附着式升降脚手架", id: 30203 }, - { text: "吊篮", id: 30204 }, - ], + text: "屋面", + id: 205, + children: [{ + text: "屋面施工整体策划", + id: 20501 + }, + { + text: "檐口防水构造", + id: 20502 + }, + { + text: "屋面女儿墙", + id: 20503 + }, + { + text: "女儿墙泛水", + id: 20504 + }, + { + text: "泛水", + id: 20505 + }, + { + text: "檐沟与天沟", + id: 20506 + }, + { + text: "屋面排气孔", + id: 20507 + }, + { + text: "出屋面管道", + id: 20508 + }, + { + text: "水落口", + id: 20509 + }, + { + text: "设施基座", + id: 20510 + }, + { + text: " 过水孔", + id: 20511 + }, + { + text: "屋面变形缝", + id: 20512 + }, + { + text: "屋面爬梯、出入口", + id: 20513 + }, + { + text: "屋面分格缝", + id: 20514 + }, + { + text: "屋面造型", + id: 20515 + }, + { + text: "排烟风道", + id: 20516 + }, + { + text: "屋面栈桥", + id: 20517 + }, + { + text: "屋面水簸箕", + id: 20518 + }, + ], }, { - text: "模板支撑体系", - id: 303, - children: [ - { text: "承插型盘扣支撑", id: 30301 }, - { text: "扣件式钢管支撑", id: 30302 }, - { text: "铝模支撑", id: 30303 }, - { text: "特殊部位支撑", id: 30304 }, - ], + text: "建筑给排水及供暖", + id: 206, + children: [{ + text: "管道支吊架", + id: 20601 + }, + { + text: "管道连接", + id: 20602 + }, + { + text: "管道套管及封堵", + id: 20603 + }, + { + text: "散热器安装", + id: 20604 + }, + { + text: "水泵房、换热站", + id: 20605 + }, + { + text: "消火栓及消防水泵接合器", + id: 20606 + }, + { + text: " 报警阀安装", + id: 20607 + }, + { + text: "设备减震", + id: 20608 + }, + { + text: "消防水泵房", + id: 20609 + }, + ], }, { - text: "道路工程", - id: 304, - children: [ - { text: "施工围挡", id: 30401 }, - { text: "交通警示及疏导", id: 30402 }, - { text: "出入口", id: 30403 }, - { text: "场内便道", id: 30404 }, - { text: "人行便桥", id: 30405 }, - { text: "路面施工", id: 30406 }, - ], + text: "通风与空调", + id: 207, + children: [{ + text: "防腐和绝热", + id: 20701 + }, + { + text: "屋面冷却塔、排烟风机安装", + id: 20702 + }, + { + text: "太阳能、多联机、空气源及风冷热泵", + id: 20703 + }, + { + text: "空气处理机组、风机安装", + id: 20704 + }, + { + text: "风管制作安装", + id: 20705 + }, + { + text: "空调主机房", + id: 20706 + }, + ], }, { - text: "管道工程", - id: 305, - children: [ - { text: "沟槽土方开挖、支护", id: 30501 }, - { text: "开槽施工管道主体结构", id: 30502 }, - { text: "开槽施工管道回填", id: 30503 }, - { text: "顶管基坑开挖、支护", id: 30504 }, - { text: "顶管施工梯道与平台", id: 30505 }, - { text: "基坑监测与管线保护", id: 30506 }, - { text: "顶管施工一般规定", id: 30507 }, - { text: "顶管设备安装", id: 30508 }, - { text: "顶管顶进", id: 30509 }, - ], + text: "建筑电气", + id: 208, + children: [{ + text: "变配电室安装", + id: 20801 + }, + { + text: " 配电柜安装", + id: 20802 + }, + { + text: "控制柜安装", + id: 20803 + }, + { + text: "配电箱安装", + id: 20804 + }, + { + text: "箱柜内配线", + id: 20805 + }, + { + text: "箱柜内电器接地", + id: 20806 + }, + { + text: "低压封闭母线安装", + id: 20807 + }, + { + text: "桥架敷设", + id: 20808 + }, + { + text: "电缆敷设", + id: 20809 + }, + { + text: "支架安装、三通安装", + id: 20810 + }, + { + text: "补偿装置", + id: 20811 + }, + { + text: " 电线、电缆中间头、端头制作与安装", + id: 20812 + }, + { + text: "开关面板安装", + id: 20813 + }, + { + text: "灯具安装", + id: 20814 + }, + { + text: "防雷引下线及接闪器安装", + id: 20815 + }, + { + text: "等电位联结", + id: 20816 + }, + { + text: "屋面金属物防雷接地", + id: 20817 + }, + { + text: "水管井、金属门等电位安装", + id: 20818 + }, + { + text: "灯具防护及接地", + id: 20819 + }, + { + text: "接地测试点", + id: 20820 + }, + ], }, { - text: "桥梁工程", - id: 306, - children: [ - { text: "基础防护施工 ", id: 30601 }, - { text: "下部结构防护施工", id: 30602 }, - { text: "上部结构防护施工", id: 30603 }, - ], + text: "智能建筑", + id: 209, + children: [{ + text: "机房设备安装", + id: 20901 + }, + { + text: "信息插座安装、卫星通讯系统、公共广播系统、火灾自动报警系统 ", + id: 20902, + }, + { + text: "数字会议系统、综合布线系统", + id: 20903 + }, + { + text: "建筑监控系统", + id: 20904 + }, + { + text: "信息化应用系统", + id: 20905 + }, + ], }, { - text: "特种作业", - id: 307, - children: [ - { text: "受限空间", id: 30701 }, - { text: "动火作业", id: 30702 }, - { text: "临时用电", id: 30703 }, - { text: "高处作业", id: 30704 }, - { text: "吊装作业", id: 30705 }, - { text: "破土作业", id: 30706 }, - { text: "断路作业", id: 30707 }, - ], + text: "建筑节能", + id: 210, + children: [{ + text: "外墙保模一体化", + id: 21001 + }, + { + text: "外墙保温板粘贴", + id: 21002 + }, + { + text: "防火隔离带", + id: 21003 + }, + ], }, { - text: "临时用电", - id: 308, - children: [ - { text: "外电防护", id: 30801 }, - { text: "总配电室", id: 30802 }, - { text: "电缆敷设", id: 30803 }, - { text: " 配电箱及开关箱", id: 30804 }, - { text: "电箱及围栏", id: 30805 }, - { text: "重复接地和防雷", id: 30806 }, - { text: "照明", id: 30807 }, - { text: "电焊机", id: 30808 }, - ], + text: "电梯", + id: 211, + children: [{ + text: "电梯机房", + id: 21101 + }, + { + text: "机房吊钩", + id: 21102 + }, + { + text: "曳引机安装 ", + id: 21103 + }, + { + text: "曳引机、导轨接地", + id: 21104 + }, + { + text: "电梯缓冲器", + id: 21105 + }, + { + text: "层门、地坎安装", + id: 21106 + }, + ], }, { - text: "临时用水及消防", - id: 309, - children: [ - { text: "消防总平面布置图", id: 30901 }, - { text: "消防管线布置", id: 30902 }, - { text: "楼层内消防水系统", id: 30903 }, - { text: "消防泵房", id: 30904 }, - { text: "灭火器", id: 30905 }, - { text: "微型消防站", id: 30906 }, - ], + text: "室外工程", + id: 212, + children: [{ + text: "散水", + id: 21201 + }, + { + text: "室外台阶、坡道", + id: 21202 + }, + { + text: "车库出入口", + id: 21203 + }, + { + text: "室外雨、污水井和阀门井", + id: 21204 + }, + { + text: "室外金属构件", + id: 21205 + }, + { + text: "室外地面", + id: 21206 + }, + { + text: "内部道路", + id: 21207 + }, + { + text: "细部要求", + id: 21208 + }, + { + text: "室外绿化 ", + id: 21209 + }, + { + text: "室外环境", + id: 21210 + }, + ], + }, + ], + [{ + text: "基坑工程", + id: 301, + children: [{ + text: "土方开挖", + id: 30101 + }, + { + text: "基坑支护", + id: 30102 + }, + { + text: "基坑安全防护", + id: 30103 + }, + { + text: "基坑防排水", + id: 30104 + }, + { + text: "基坑周边堆载控制", + id: 30105 + }, + { + text: "基坑监测", + id: 30106 + }, + { + text: "基坑通道", + id: 30107 + }, + { + text: "厚大钢筋底板钢筋支架", + id: 30108 + }, + ], }, { - text: "安全防护", - id: 310, - children: [ - { text: "个体防护", id: 31001 }, - { text: "安全标志", id: 31002 }, - { text: "洞口防护", id: 31003 }, - { text: "临边防护", id: 31004 }, - { text: "安全防护棚", id: 31005 }, - { text: "操作平台", id: 31006 }, - { text: "钢结构施工安全防护", id: 31007 }, - { text: "易燃易爆危险品库房", id: 31008 }, - { text: "气瓶使用", id: 31009 }, - ], + text: "脚手架工程", + id: 302, + children: [{ + text: "落地式钢管脚手架", + id: 30201 + }, + { + text: "悬挑脚手架", + id: 30202 + }, + { + text: "附着式升降脚手架", + id: 30203 + }, + { + text: "吊篮", + id: 30204 + }, + ], + }, + { + text: "模板支撑体系", + id: 303, + children: [{ + text: "承插型盘扣支撑", + id: 30301 + }, + { + text: "扣件式钢管支撑", + id: 30302 + }, + { + text: "铝模支撑", + id: 30303 + }, + { + text: "特殊部位支撑", + id: 30304 + }, + ], + }, + { + text: "道路工程", + id: 304, + children: [{ + text: "施工围挡", + id: 30401 + }, + { + text: "交通警示及疏导", + id: 30402 + }, + { + text: "出入口", + id: 30403 + }, + { + text: "场内便道", + id: 30404 + }, + { + text: "人行便桥", + id: 30405 + }, + { + text: "路面施工", + id: 30406 + }, + ], + }, + { + text: "管道工程", + id: 305, + children: [{ + text: "沟槽土方开挖、支护", + id: 30501 + }, + { + text: "开槽施工管道主体结构", + id: 30502 + }, + { + text: "开槽施工管道回填", + id: 30503 + }, + { + text: "顶管基坑开挖、支护", + id: 30504 + }, + { + text: "顶管施工梯道与平台", + id: 30505 + }, + { + text: "基坑监测与管线保护", + id: 30506 + }, + { + text: "顶管施工一般规定", + id: 30507 + }, + { + text: "顶管设备安装", + id: 30508 + }, + { + text: "顶管顶进", + id: 30509 + }, + ], + }, + { + text: "桥梁工程", + id: 306, + children: [{ + text: "基础防护施工 ", + id: 30601 + }, + { + text: "下部结构防护施工", + id: 30602 + }, + { + text: "上部结构防护施工", + id: 30603 + }, + ], + }, + { + text: "特种作业", + id: 307, + children: [{ + text: "受限空间", + id: 30701 + }, + { + text: "动火作业", + id: 30702 + }, + { + text: "临时用电", + id: 30703 + }, + { + text: "高处作业", + id: 30704 + }, + { + text: "吊装作业", + id: 30705 + }, + { + text: "破土作业", + id: 30706 + }, + { + text: "断路作业", + id: 30707 + }, + ], + }, + { + text: "临时用电", + id: 308, + children: [{ + text: "外电防护", + id: 30801 + }, + { + text: "总配电室", + id: 30802 + }, + { + text: "电缆敷设", + id: 30803 + }, + { + text: " 配电箱及开关箱", + id: 30804 + }, + { + text: "电箱及围栏", + id: 30805 + }, + { + text: "重复接地和防雷", + id: 30806 + }, + { + text: "照明", + id: 30807 + }, + { + text: "电焊机", + id: 30808 + }, + ], + }, + { + text: "临时用水及消防", + id: 309, + children: [{ + text: "消防总平面布置图", + id: 30901 + }, + { + text: "消防管线布置", + id: 30902 + }, + { + text: "楼层内消防水系统", + id: 30903 + }, + { + text: "消防泵房", + id: 30904 + }, + { + text: "灭火器", + id: 30905 + }, + { + text: "微型消防站", + id: 30906 + }, + ], + }, + { + text: "安全防护", + id: 310, + children: [{ + text: "个体防护", + id: 31001 + }, + { + text: "安全标志", + id: 31002 + }, + { + text: "洞口防护", + id: 31003 + }, + { + text: "临边防护", + id: 31004 + }, + { + text: "安全防护棚", + id: 31005 + }, + { + text: "操作平台", + id: 31006 + }, + { + text: "钢结构施工安全防护", + id: 31007 + }, + { + text: "易燃易爆危险品库房", + id: 31008 + }, + { + text: "气瓶使用", + id: 31009 + }, + ], }, { text: "安全技术标准化", id: 3, - children: [ - { text: "防汛管控", id: 311 }, - { text: "高温管控", id: 312 }, - { text: "严寒管控", id: 313 }, - { text: "应急物资", id: 314 }, + children: [{ + text: "防汛管控", + id: 311 + }, + { + text: "高温管控", + id: 312 + }, + { + text: "严寒管控", + id: 313 + }, + { + text: "应急物资", + id: 314 + }, ] - } - ], - [{ - id: 4, - text: "文明施工标准化", - children: [ - { text: "材料堆放", id: 403 }, - { text: "人车分流", id: 404 }, - ] - }, - { - text: "大门视觉系统", - id: 401, - children: [ - { text: "项目大门", id: 40101 }, - { text: "围墙及围挡", id: 40102 }, - { text: "门禁", id: 40103 }, - ], - }, - { - text: "场地及临建布置", - id: 402, - children: [ - { text: "办公生活区", id: 40201 }, - { text: "施工区", id: 40202 }, - ], - }, + } ], - [ - { - id: 5, - text: "设备管理标准化", - children: [ - { text: "塔式起重机", id: 501 }, - { text: "施工升降机", id: 502 }, - { text: "汽车吊", id: 503 }, - { text: "履带吊", id: 504 }, - { text: "高空作业车", id: 505 }, - { text: "叉车", id: 506 }, - { text: " 桩机", id: 507 }, - { text: "中小型机械", id: 508 }, - { text: "其他机械", id: 509 }, - ], + [{ + id: 4, + text: "文明施工标准化", + children: [{ + text: "材料堆放", + id: 403 + }, + { + text: "人车分流", + id: 404 + }, + ] + }, + { + text: "大门视觉系统", + id: 401, + children: [{ + text: "项目大门", + id: 40101 + }, + { + text: "围墙及围挡", + id: 40102 + }, + { + text: "门禁", + id: 40103 + }, + ], + }, + { + text: "场地及临建布置", + id: 402, + children: [{ + text: "办公生活区", + id: 40201 + }, + { + text: "施工区", + id: 40202 + }, + ], + }, + ], + [{ + id: 5, + text: "设备管理标准化", + children: [{ + text: "塔式起重机", + id: 501 + }, + { + text: "施工升降机", + id: 502 + }, + { + text: "汽车吊", + id: 503 + }, + { + text: "履带吊", + id: 504 + }, + { + text: "高空作业车", + id: 505 + }, + { + text: "叉车", + id: 506 + }, + { + text: " 桩机", + id: 507 + }, + { + text: "中小型机械", + id: 508 + }, + { + text: "其他机械", + id: 509 + }, + ], }], [{ - id: 6, - text: "环境保护标准化", - children: [ - { text: "硬化保洁", id: 601 }, - { text: "车辆冲洗", id: 602 }, - { text: "覆盖苫盖", id: 603 }, - { text: "湿法作业", id: 604 }, - { text: "主体施工", id: 605 }, - { text: "土方回填、管网及绿化施工", id: 606 }, - { text: "现场喷淋设施", id: 607 }, - { text: "扬尘监测仪", id: 608 }, - { text: "环境保护监督牌", id: 609 }, - { text: "应急响应公示牌", id: 610 }, - ], + id: 6, + text: "环境保护标准化", + children: [{ + text: "硬化保洁", + id: 601 + }, + { + text: "车辆冲洗", + id: 602 + }, + { + text: "覆盖苫盖", + id: 603 + }, + { + text: "湿法作业", + id: 604 + }, + { + text: "主体施工", + id: 605 + }, + { + text: "土方回填、管网及绿化施工", + id: 606 + }, + { + text: "现场喷淋设施", + id: 607 + }, + { + text: "扬尘监测仪", + id: 608 + }, + { + text: "环境保护监督牌", + id: 609 + }, + { + text: "应急响应公示牌", + id: 610 + }, + ], }], - ] + ] }; \ No newline at end of file