diff --git a/api/api.js b/api/api.js index fb6761b..39a8252 100644 --- a/api/api.js +++ b/api/api.js @@ -85,7 +85,7 @@ const install = (Vue, vm) => { isparams: false }) - + // 获取人员列表 let getUserList = (params) => http.get('/blade-system/user/page', { ...params }, { @@ -215,8 +215,8 @@ const install = (Vue, vm) => { authorizations: true, isparams: false }) - // 巡检计划列表 / - let getDictionaryList = (params) => http.get('/lab-ops/maintenance/plan-page', params, { + // 巡检计划列表 / + let getDictionaryList = (params) => http.get('/lab-ops/maintenance/plan-page', params, { authorizations: true, isparams: false }) @@ -250,9 +250,90 @@ const install = (Vue, vm) => { authorizations: true, isparams: false }) - + + // 巡检维修列表 + let getRepairPage = (params) => http.get('/lab-ops/maintenance/repair-page', params, { + authorizations: true, + isparams: false + }) + + // 维修人员 更新明细接口 + let updateDetaile = (params) => http.post('/lab-ops/maintenance/task-serviceman-update-detail', params, { + authorizations: true, + isparams: true + }) + // 巡检完成 + let taskServicemanSubmit = (params) => http.post('/lab-ops/maintenance/task-serviceman-submit', params, { + authorizations: true, + isparams: false + }) + + // 客户确认巡检完成 + let taskCustomerConfirm = (params) => http.post('/lab-ops/maintenance/task-customer-confirm', params, { + authorizations: true, + isparams: false + }) + // 客户确认未巡检完成 + let taskCustomerRefuse = (params) => http.post('/lab-ops/maintenance/task-customer-refuse', params, { + authorizations: true, + isparams: false + }) + + // 维修人员 保存维修方案 + let taskSolutionSave = (params) => http.post('/lab-ops/maintenance/repair-solution-save', params, { + authorizations: true, + isparams: false + }) + // 维修人员 提交维修方案 + let taskSolutionSubmit = (params) => http.post('/lab-ops/maintenance/repair-solution-submit', params, { + authorizations: true, + isparams: false + }) + + // 维修主管 审批维修方案 通过 + let repairSolutionSupervisor = (params) => http.post('/lab-ops/maintenance/repair-solution-supervisor-confirm', params, { + authorizations: true, + isparams: false + }) + // 维修主管 审批维修方案 驳回 + let repairSolutionRefuse = (params) => http.post('/lab-ops/maintenance/repair-solution-supervisor-refuse', params, { + authorizations: true, + isparams: false + }) + + // 客户 确认巡检维修方案 通过 + let repairSolutionCustomer = (params) => http.post('/lab-ops/maintenance/repair-solution-customer-confirm', params, { + authorizations: true, + isparams: false + }) + // 客户 确认巡检维修方案 驳回 + let repairCustomerRefuse = (params) => http.post('/lab-ops/maintenance/repair-solution-customer-refuse', params, { + authorizations: true, + isparams: false + }) + + // 维修人员 确认维修是否完成 + let repairServicemanSubmit = (params) => http.post('/lab-ops/maintenance/repair-serviceman-submit', params, { + authorizations: true, + isparams: false + }) + // 客户 确认完成 lab-ops/maintenance/repair-custome-refuse-finish + let repairConfirmFinish = (params) => http.post('/lab-ops/maintenance/repair-custome-confirm-finish', params, { + authorizations: true, + isparams: false + }) + // 客户 确认未完成 + let repairRefuseFinish = (params) => http.post('/lab-ops/maintenance/repair-custome-refuse-finish', params, { + authorizations: true, + isparams: false + }) + // 客服 确认付款 lab-ops/maintenance/repair-service-confirm-invoic + let confirmInvoic = (params) => http.post('/lab-ops/maintenance/repair-service-confirm-invoic', params, { + authorizations: true, + isparams: false + }) // 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下 - vm.$u.api = { getTenantInfo, login, logout, registerUser, getworkbench, getLoginRecords, getEditRecords, subEditRecords, getChildList, getDeviceList, workOrderSave, getWorkOrderRecords, getBreakdownInfo, workOrderupdate, evaluateSign, getRepairPersons, getGoodsList, getDictionaryList, getUserList, workList, deviceList, upkeepStat, pieStat, getUserInfo, overview, sendOrders, cloneOrder, editData, repairReject, applySave, sendVerify, serviceman, servicemanReceive, servicemanSubmit, supervisorReject, supervisorconfirm, customerConfirm, customerReject, servicemanRepairSubmit, evaluateRepairReject, getDeviceDetail, getTaskPage, getTaskDetail,taskSupervisorconfirm,taskServicemanreceive,updateCoordinate ,taskServicemanUpdateTime,getPlanDetail}; + vm.$u.api = { getTenantInfo, login, logout, registerUser, getworkbench, getLoginRecords, getEditRecords, subEditRecords, getChildList, getDeviceList, workOrderSave, getWorkOrderRecords, getBreakdownInfo, workOrderupdate, evaluateSign, getRepairPersons, getGoodsList, getDictionaryList, getUserList, workList, deviceList, upkeepStat, pieStat, getUserInfo, overview, sendOrders, cloneOrder, editData, repairReject, applySave, sendVerify, serviceman, servicemanReceive, servicemanSubmit, supervisorReject, supervisorconfirm, customerConfirm, customerReject, servicemanRepairSubmit, evaluateRepairReject, getDeviceDetail, getTaskPage, getTaskDetail, taskSupervisorconfirm, taskServicemanreceive, updateCoordinate, taskServicemanUpdateTime, getPlanDetail, getRepairPage, updateDetaile, taskServicemanSubmit, taskCustomerConfirm, taskCustomerRefuse, taskSolutionSave, taskSolutionSubmit, repairSolutionSupervisor, repairSolutionRefuse, repairSolutionCustomer, repairCustomerRefuse, repairServicemanSubmit,repairConfirmFinish,repairRefuseFinish ,confirmInvoic}; } export default { diff --git a/common/betone_components/betone-list.vue b/common/betone_components/betone-list.vue index 620bd54..e51769d 100644 --- a/common/betone_components/betone-list.vue +++ b/common/betone_components/betone-list.vue @@ -4,7 +4,7 @@ + > @@ -541,7 +541,7 @@ export default { padding: 0; .page-search-top { - background-color: rgba(248, 248, 248, 1); + background-color: #fff; padding: 0 40rpx 0; } diff --git a/pages.json b/pages.json index 5e3bd1d..9929350 100644 --- a/pages.json +++ b/pages.json @@ -148,7 +148,7 @@ { "path": "pages/inspection/quest", "style": { - "navigationStyle": "custom", + "navigationStyle": "custom", "navigationBarTextStyle": "white" } }, @@ -181,14 +181,7 @@ { "path": "pages/inspection/plan", "style": { - "navigationStyle": "custom", - "navigationBarTextStyle": "white" - } - }, - { - "path": "pages/inspection/records", - "style": { - "navigationBarTitleText": "巡检计划", + "navigationBarTitleText": "巡检计划", "enablePullDownRefresh": false, "navigationBarTextStyle": "black", "navigationBarBackgroundColor": "#F8F8F8", @@ -197,6 +190,7 @@ } } }, + { "path": "pages/inspection/planDetails", "style": { diff --git a/pages/home/index.vue b/pages/home/index.vue index e62321f..5f40543 100644 --- a/pages/home/index.vue +++ b/pages/home/index.vue @@ -72,7 +72,7 @@ export default { let data_ = res.data data_.forEach(item => { if (item.name.indexOf('巡检') > 0) { - item.pagePath = '/pages/inspection/records' + item.pagePath = '/pages/inspection/plan' item.img = require("@/static/images/home/lab_xj.png") } if (item.name.indexOf('记录') > 0) { diff --git a/pages/inspection/components/detailsCollapse.vue b/pages/inspection/components/detailsCollapse.vue index d710967..f6d2325 100644 --- a/pages/inspection/components/detailsCollapse.vue +++ b/pages/inspection/components/detailsCollapse.vue @@ -3,17 +3,17 @@ - 实验室楼层:{{ item.title }} + 实验室楼层:{{ item.floorName }} - - 房间名称:{{ v.fangjianmingcheng }} - + + 房间名称:{{ v.deptName }} + 专业分类:{{ s.xitong }} - + - 各排/出水口通水顺畅 - 工艺内容工艺内容工艺内容工艺内容工艺内容工艺内容工艺内容 + {{ n.checkContent }} + {{ n.craft }} 状态: @@ -44,7 +44,7 @@ - + @@ -61,6 +61,10 @@ export default { type:{ type:String, default:'' + }, + collapseData:{ + type:Array, + default:null } }, computed: { @@ -68,6 +72,10 @@ export default { return this.type=='view' }, }, + mounted(){ + console.log(2222222,this.collapseData) + this.itemList = this.collapseData + }, data() { return { image2: '',//签字路径 @@ -83,68 +91,68 @@ export default { } ], itemList: [ - { - title: '三层', - fangjian: [ - { - fangjianmingcheng: '房间一', - neirong: [{ - xitong: '水系统', - detection: [ - { - title1: '水量水压满足用水要求1', - radioValue: null, - qianzi: '',//签字图片 - }, - { - title1: '水量水压满足用水要求2', - radioValue: null, - qianzi: '',//签字图片 - } - ] - }] - }, - { - fangjianmingcheng: '房间二', - neirong: [{ - xitong: '水系统', - detection: [ - { - title1: '水量水压满足用水要求1', - radioValue: 0 - }, - { - title1: '水量水压满足用水要求2', - radioValue: 1 - } - ] - }, { - xitong: '水系统2', - detection: [ - { - title1: '水量水压满足用水要求1', - radioValue: 0 - }, - { - title1: '水量水压满足用水要求2', - radioValue: 1 - } - ] - }] - } - ] - }, - { - title: '四层', - fangjian: [ - { - fangjianmingcheng: '房间一', - neirong: [{ - xitong: '水系统' - }] - } - ] - } + // { + // title: '三层', + // fangjian: [ + // { + // fangjianmingcheng: '房间一', + // neirong: [{ + // xitong: '水系统', + // detection: [ + // { + // title1: '水量水压满足用水要求1', + // radioValue: null, + // qianzi: '',//签字图片 + // }, + // { + // title1: '水量水压满足用水要求2', + // radioValue: null, + // qianzi: '',//签字图片 + // } + // ] + // }] + // }, + // { + // fangjianmingcheng: '房间二', + // neirong: [{ + // xitong: '水系统', + // detection: [ + // { + // title1: '水量水压满足用水要求1', + // radioValue: 0 + // }, + // { + // title1: '水量水压满足用水要求2', + // radioValue: 1 + // } + // ] + // }, { + // xitong: '水系统2', + // detection: [ + // { + // title1: '水量水压满足用水要求1', + // radioValue: 0 + // }, + // { + // title1: '水量水压满足用水要求2', + // radioValue: 1 + // } + // ] + // }] + // } + // ] + // }, + // { + // title: '四层', + // fangjian: [ + // { + // fangjianmingcheng: '房间一', + // neirong: [{ + // xitong: '水系统' + // }] + // } + // ] + // } ], } diff --git a/pages/inspection/components/plan-list.vue b/pages/inspection/components/plan-list.vue deleted file mode 100644 index 7a8c1c3..0000000 --- a/pages/inspection/components/plan-list.vue +++ /dev/null @@ -1,359 +0,0 @@ - - - - - \ No newline at end of file diff --git a/pages/inspection/plan.vue b/pages/inspection/plan.vue index 6a373bb..cf94ae1 100644 --- a/pages/inspection/plan.vue +++ b/pages/inspection/plan.vue @@ -1,48 +1,327 @@ \ No newline at end of file diff --git a/pages/inspection/planDetails.vue b/pages/inspection/planDetails.vue index 278e3e0..24b9011 100644 --- a/pages/inspection/planDetails.vue +++ b/pages/inspection/planDetails.vue @@ -14,7 +14,6 @@ 巡检任务 - @@ -22,44 +21,37 @@ 房间名称:{{ v.deptName }} - - 专业分类:{{ s.checkContent }} - - - - 各排/出水口通水顺畅 - 工艺内容工艺内容工艺内容工艺内容工艺内容工艺内容工艺内容 - - 状态: - - - 正常 - 异常 - - - - - - 现场照片: - - 上传照片 - - - - 使用人签字: - - - 签字 - - - - - 备注: - - - - + + + + 设备: + + {{ s.deviceName }} + + + + 巡检内容: + + {{ s.checkContent }} + + + + 工艺要求: + + {{ s.craft }} + + + + 巡检周期: + + {{ periodName(s.period) }} + + + + 开始时间: + + {{ s.startTime }} + @@ -101,6 +93,17 @@ export default { this.detailForm = res.data } }) + }, + periodName(value){ + if(value == 1){ + return '月' + } + if(value == 2){ + return '季度' + } + if(value == 3){ + return '半年' + } } } } @@ -183,89 +186,90 @@ export default { color: rgba(0, 0, 0, 1); } - .collapse-major { - margin: 0 32rpx 20rpx; - color: rgba(0, 0, 0, 1); - margin: 12rpx 24rpx 12rpx; + // .collapse-major { + // margin: 0 32rpx 20rpx; + // color: rgba(0, 0, 0, 1); + // margin: 12rpx 24rpx 12rpx; - .n-box { - border: 1px solid rgba(239, 239, 239, 1); - padding: 32rpx 54rpx 0; - margin-top: 24rpx; - margin-bottom: 24rpx; - position: relative; + .n-box { + border: 1px solid rgba(239, 239, 239, 1); + padding: 32rpx 54rpx 0; + margin-top: 24rpx; + margin-bottom: 24rpx; + position: relative; - .right-tag { - position: absolute; - right: 0; - top: 0; - } + .right-tag { + position: absolute; + right: 0; + top: 0; + } - .left-tag { - position: absolute; - left: 0; - top: 0; - padding-left: 10rpx; - padding-right: 10rpx; - } + .left-tag { + position: absolute; + left: 0; + top: 0; + padding-left: 10rpx; + padding-right: 10rpx; + } - .n-box-title { - color: rgba(0, 0, 0, 1); + .n-box-title { + color: rgba(0, 0, 0, 1); + font-size: 28rpx; + text-align: left; + } + + .n-box-info { + line-height: 32rpx; + color: rgba(154, 154, 154, 1); + font-size: 24rpx; + padding-top: 12rpx; + padding-bottom: 12rpx; + } + + .info_item { + width: 100%; + display: flex; + flex-direction: row; + margin: 24rpx 0 24rpx; + + .item_left_txt { + color: rgba(108, 108, 108, 1); font-size: 28rpx; text-align: left; + width: 170rpx; + margin-right: 20rpx; + line-height: 60rpx; } - .n-box-info { - line-height: 32rpx; - color: rgba(154, 154, 154, 1); - font-size: 24rpx; - padding-top: 12rpx; - padding-bottom: 12rpx; - } - - .info_item { - width: 100%; - display: flex; - flex-direction: row; - margin: 24rpx 0 24rpx; + .item_right_txt { + flex: 1; + max-width: calc(100% - 220rpx); + color: rgba(0, 0, 0, 1); + font-size: 28rpx; + // text-align: left; + text-align: justify; + font-family: SourceHanSansSC-regular; - .item_left_txt { - color: rgba(108, 108, 108, 1); - font-size: 28rpx; - text-align: left; - width: 170rpx; - margin-right: 20rpx; - line-height: 60rpx; + /deep/.u-radio-group { + flex-wrap: nowrap; + padding-right: 48rpx; } - .item_right_txt { - flex: 1; - max-width: calc(100% - 220rpx); - color: rgba(0, 0, 0, 1); + .btn { + width: 260rpx; + height: 60rpx; + line-height: 60rpx; + border-radius: 8rpx; + background-color: rgba(255, 255, 255, 1); + color: rgba(58, 98, 215, 1); font-size: 28rpx; - // text-align: left; - text-align: justify; - font-family: SourceHanSansSC-regular; - - /deep/.u-radio-group { - flex-wrap: nowrap; - padding-right: 48rpx; - } - - .btn { - width: 260rpx; - height: 60rpx; - line-height: 60rpx; - border-radius: 8rpx; - background-color: rgba(255, 255, 255, 1); - color: rgba(58, 98, 215, 1); - font-size: 28rpx; - text-align: center; - border: 2rpx dashed rgba(58, 98, 215, 1); - } + text-align: center; + border: 2rpx dashed rgba(58, 98, 215, 1); } } } } + + // } } \ No newline at end of file diff --git a/pages/inspection/quest.vue b/pages/inspection/quest.vue index d6a27fd..271003f 100644 --- a/pages/inspection/quest.vue +++ b/pages/inspection/quest.vue @@ -1,42 +1,88 @@ - - \ No newline at end of file diff --git a/pages/my/my.vue b/pages/my/my.vue index 9ab707f..8f86e7b 100644 --- a/pages/my/my.vue +++ b/pages/my/my.vue @@ -127,7 +127,7 @@ export default { .info-top { min-height: 210rpx; - background-color: rgba(248, 248, 248, 1); + background-color: #fff; display: flex; flex-direction: row; diff --git a/pages/submission/evaluate.vue b/pages/submission/evaluate.vue index 44c7b1e..ff9b814 100644 --- a/pages/submission/evaluate.vue +++ b/pages/submission/evaluate.vue @@ -84,12 +84,15 @@ export default { value: 2 } ], + istask: null,//是否是巡检维修过来的 } }, onLoad(options) { this.id = options.id - + if (options.istask == true) { + this.istask = options.istask + } }, onShow() { this.userInfo = uni.getStorageSync('loginInfo') @@ -97,9 +100,6 @@ export default { methods: { submitBreakdown() { - - let timeNow = new Date().toLocaleDateString() - let query_ = { id: this.id, //需求id // isOkQuality: this.questionList[0].type, //质量是否满意 0-不满意 1-满意 @@ -109,7 +109,7 @@ export default { // signaturePerson: this.userInfo.user_name, //签名人 // signatureTime: this.$u.timeFrom(timeNow, 'yyyy-mm-dd hh:MM:ss'), //签名时间 } - this.BetLoading.show() + this.BetLoading.show() if (this.completeValue == 1) {//已完成 for (let i = 0; i < this.questionList.length; i++) { if (this.questionList[i].type == null) { @@ -119,17 +119,32 @@ export default { this.uploadFile(this.image2) } else {//未完成 evaluateRepairReject - this.$u.api.evaluateRepairReject(query_).then(res => { - if (res.code == 200) { - this.BetLoading.hide() - uni.showToast({ title: "提交成功", icon: "none" }); + if (this.istask == true) { + this.$u.api.repairRefuseFinish(query_).then(res => { + if (res.code == 200) { + this.BetLoading.hide() + uni.showToast({ title: "提交成功", icon: "none" }); + + // 评价成功 返回上一级 + uni.navigateBack({ + delta: 1 // 默认值是1,表示返回的页面层数 + }) + } + }) + } else { + this.$u.api.evaluateRepairReject(query_).then(res => { + if (res.code == 200) { + this.BetLoading.hide() + uni.showToast({ title: "提交成功", icon: "none" }); + + // 评价成功 返回上一级 + uni.navigateBack({ + delta: 1 // 默认值是1,表示返回的页面层数 + }) + } + }) + } - // 评价成功 返回上一级 - uni.navigateBack({ - delta: 1 // 默认值是1,表示返回的页面层数 - }) - } - }) } }, @@ -166,20 +181,34 @@ export default { signaturePerson: this.userInfo.user_name, //签名人 signatureTime: dateFormat("yyyy-MM-dd hh:mm:ss", new Date()), //签名时间 } - this.$u.api.evaluateSign(query_).then(res => { - if (res.code == 200) { - this.BetLoading.hide() - uni.showToast({ title: "评价成功", icon: "none" }); - // 评价成功 返回上一级 - uni.navigateBack({ - delta: 1 // 默认值是1,表示返回的页面层数 - }) - } - }) + if (this.istask == true) { + this.$u.api.repairConfirmFinish(query_).then(res => { + if (res.code == 200) { + this.BetLoading.hide() + uni.showToast({ title: "评价成功", icon: "none" }); + // 评价成功 返回上一级 + uni.navigateBack({ + delta: 1 // 默认值是1,表示返回的页面层数 + }) + } + }) + } else { + this.$u.api.evaluateSign(query_).then(res => { + if (res.code == 200) { + this.BetLoading.hide() + uni.showToast({ title: "评价成功", icon: "none" }); + // 评价成功 返回上一级 + uni.navigateBack({ + delta: 1 // 默认值是1,表示返回的页面层数 + }) + } + }) + } + }, error: (uploadFileRes) => { console.log("上传失败", uploadFileRes.data); // 上传成功后的操作 - this.BetLoading.hide() + this.BetLoading.hide() }, }); } diff --git a/static/scss/index.scss b/static/scss/index.scss index 25c497a..dc111b1 100644 --- a/static/scss/index.scss +++ b/static/scss/index.scss @@ -20,7 +20,7 @@ .page-header-txt { height: 88rpx; - background-color: rgba(248, 248, 248, 1); + background-color: #fff; color: rgba(16, 16, 16, 1); font-size: 32rpx; text-align: left; diff --git a/static/scss/sp-components/index.scss b/static/scss/sp-components/index.scss index 4416db3..e714ddc 100644 --- a/static/scss/sp-components/index.scss +++ b/static/scss/sp-components/index.scss @@ -72,7 +72,7 @@ /* #ifdef H5 */ .page-css { - min-height: calc(100vh - 44px - env(safe-area-inset-top)); + min-height: calc(100vh - env(safe-area-inset-top)); } diff --git a/utils/util.js b/utils/util.js index bcb8b78..094f714 100644 --- a/utils/util.js +++ b/utils/util.js @@ -425,4 +425,4 @@ export const dateFormat=(fmt, date)=> { } } return fmt; -} \ No newline at end of file +} diff --git a/utils/website.js b/utils/website.js index ab08ea9..c890557 100644 --- a/utils/website.js +++ b/utils/website.js @@ -3,7 +3,8 @@ */ export default { // baseUrl: 'http://124.221.142.15:8088/lab', - baseUrl:'http://192.168.0.111:80', + // baseUrl:'http://192.168.0.111:80', + baseUrl:'http://192.168.0.109:80', indexTitle: "科研医疗建筑运维平台", clientId: "saber", // 客户端id clientSecret: "saber_secret", // 客户端密钥