diff --git a/src/views/businessManagement/ordinary.vue b/src/views/businessManagement/ordinary.vue index 5574204..fb75cd8 100644 --- a/src/views/businessManagement/ordinary.vue +++ b/src/views/businessManagement/ordinary.vue @@ -3,7 +3,7 @@ + @size-change="sizeChange" @refresh-change="refreshChange" @selection-change="selectSection" @sort-change="sortChange"> @@ -89,7 +90,7 @@ -
+
- + - + - +
关闭 - {{ detailForm.approveResult1 == 0 ? '提交' : '评价并签字' }} + {{ detailForm.approveResult1 == 0 ? '提交' : + '评价并签字' }} 提交 @@ -444,6 +456,93 @@ 确定 + +
+
+ +
+
+
    +
  • +
    +
    +
    + +
    +
    + 2024-12-13 16:40:46 +
    +
    +
    +
    +

    维修人员提交需求工单维修方案

    +
    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    + 2024-12-13 16:38:46 +
    +
    +
    +
    +

    维修人员接单

    +
    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    + 2024-12-13 16:38:46 +
    +
    +
    +
    +

    客服接单

    +
    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    + 2024-12-13 16:39:43 +
    +
    +
    +
    +

    山东烁今实验室提报需求工单

    +
    +
    +
    +
    +
  • +
+
+
+
+
+
@@ -458,10 +557,11 @@ import moment from "moment"; import { dateFormat } from "../../util/date"; import requestSub from '../components/requestSub.vue' import requirement from '../components/requirement.vue' -import { getList, getDetail, evaluateSign, addFile, saveData,customerConfirm,customerReject,customerRepairConfirm,customerRepairReject,serviceInvoice } from '@/api/operation/hand' +import { getList, getDetail, evaluateSign, addFile, saveData, customerConfirm, customerReject, customerRepairConfirm, customerRepairReject, serviceInvoice } from '@/api/operation/hand' import { getDeviceList } from '@/api/device/device' import { getChildList } from '@/api/system/dictbiz' import statusData from "@/assets/json/status.json"; // 引入状态数据 +import { color } from "echarts"; let action = "https://api.avuejs.com/imgupload"; export default { @@ -473,10 +573,11 @@ export default { // directives: { print }, data() { return { + infoDialog: false, searchForm: { timeRange: [] }, - requireForm:{}, + requireForm: {}, showPrint: false, dialogTitle: "需求填报", dialogVisible: false, @@ -533,6 +634,7 @@ export default { labelWidth: 120, prop: "requirementCode", overHidden: true, + search:true }, { label: "设备名称", @@ -547,7 +649,7 @@ export default { // type: "select", overHidden: true, // hide: true, - search: true, + // search: true, // viewDisplay: false, // dicUrl: '/lab/blade-system/dict-biz/get-hc-project', // props: { @@ -563,7 +665,7 @@ export default { type: "input", searchLabelWidth: 100, // hide: true, - search: true, + // search: true, viewDisplay: false, // dicUrl: '/lab/blade-system/dict-biz/get-hc-project', props: { @@ -719,13 +821,13 @@ export default { requestForm: {}, viewType: '', selectionList: [], - printVisible:false, - assignVisible:false, - tableData:[], - isFinish:'', - role_id:'', - isClear:false, - htmlTitle:'需求单报告' + printVisible: false, + assignVisible: false, + tableData: [], + isFinish: '', + role_id: '', + isClear: false, + htmlTitle: '需求单报告' }; }, @@ -739,22 +841,24 @@ export default { editBtn: this.vaildData(this.permission.notice_edit, false), }; }, - getStatus(){ - return (type,id,status) =>{ - for(let i in statusData[type]){ - let val - statusData[type][id].map(item =>{ - if(item.status == status){ - val = item - } - }) - return val + getStatus() { + return (type, id, status) => { + for (let i in statusData[type]) { + let val + statusData[type][id].map(item => { + if (item.status == status) { + val = item + } + }) + return val } } }, }, created() { console.log('userInfo--------->', this.userInfo) + console.log('route---------->',this.$route) + this.searchForm.requirementCode = this.$route.query.requirementCode this.role_id = this.userInfo.role_id // 获取设备列表 // getDeviceList({ current: 1, size: 100 }).then(res => { @@ -770,7 +874,7 @@ export default { mounted() { }, methods: { // 点击签名 - clickAssign(){ + clickAssign() { this.assignVisible = true }, // 多选选择 @@ -778,19 +882,19 @@ export default { this.selectionList = val }, // 客户选择是否维修完成 - changeResult(val){ + changeResult(val) { this.isFinish = val console.log(this.isFinish) }, // 开具发票 clickInvoice() { - if(this.selectionList.length == 0){ + if (this.selectionList.length == 0) { this.$message.warning('请至少选择一条数据') - }else{ + } else { let tmp = this.selectionList.find(item => item.status != 8) - if(tmp){ + if (tmp) { this.$message.warning('请选择状态为待开发票的数据') - }else{ + } else { this.$confirm('请确认是否为已选择数据开具发票?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', @@ -802,11 +906,11 @@ export default { id: item.id }) }) - serviceInvoice(queryData).then(res=>{ + serviceInvoice(queryData).then(res => { this.$message.success('发票开具成功') this.onLoad() }) - }).catch(() =>{ + }).catch(() => { }) } @@ -854,7 +958,7 @@ export default { picAttaches: form.picAttaches, faultDescribe: form.faultDescribe, submitType: 1, - id:form.id + id: form.id }) console.log('data---------->', data) saveData(data).then(res => { @@ -900,16 +1004,16 @@ export default { } }, confirmName() { - console.log('name===========>',this.nameImg) - if(this.isClear){ + console.log('name===========>', this.nameImg) + if (this.isClear) { this.nameImg = '' - }else{ + } else { this.nameImg = this.$refs.sign.submit(80, 50); } this.assignVisible = false }, - closeName(){ - if(this.nameImg == ''){ + closeName() { + if (this.nameImg == '') { this.$refs.sign.clear() } this.assignVisible = false @@ -938,8 +1042,8 @@ export default { return file }, // 客户确认方案 - confirmOrder(row){ - getDetail({id:row.id}).then(res =>{ + confirmOrder(row) { + getDetail({ id: row.id }).then(res => { this.rowStatus = res.data.data.status this.viewType = 'confirm' this.detailVisible = true @@ -982,33 +1086,33 @@ export default { this.discountPrice = res.data.data.discountPrice }) }, - handleExport(row){ - getDetail({id:row.id}).then(res =>{ + handleExport(row) { + getDetail({ id: row.id }).then(res => { this.requireForm = res.data.data - setTimeout(() =>{ + setTimeout(() => { this.getPdf() - },100) + }, 100) }) }, // 评价并签字提交 handleConfirm() { - console.log('this.detailForm.approveResult1',this.detailForm.approveResult1) - if(this.detailForm.approveResult1 == 0){ + console.log('this.detailForm.approveResult1', this.detailForm.approveResult1) + if (this.detailForm.approveResult1 == 0) { let query = { - id:this.detailForm.id, - approveResult:this.detailForm.approveResult1, - approvePerson:this.userInfo.user_id, - approveTime:moment().format('YYYY-MM-DD HH:mm:ss'), - approveRemark:this.detailForm.approveRemark + id: this.detailForm.id, + approveResult: this.detailForm.approveResult1, + approvePerson: this.userInfo.user_id, + approveTime: moment().format('YYYY-MM-DD HH:mm:ss'), + approveRemark: this.detailForm.approveRemark } - customerRepairReject(query).then(res =>{ - if(res.data.code == 200){ + customerRepairReject(query).then(res => { + if (res.data.code == 200) { this.$message.success('提交成功') this.detailVisible = false this.onLoad() } }) - }else{ + } else { if (this.nameImg != '') { const formData = new FormData(); formData.append('file', this.base64toFile(this.nameImg)); @@ -1043,24 +1147,24 @@ export default { }, // 客户方案确认 - confirmWork(){ + confirmWork() { let query = { - id:this.detailForm.id, - approvePerson:this.userInfo.user_id, - approveResult:this.detailForm.approveResult, - approveTime:moment().format('YYYY-MM-DD HH:mm:ss'), - approveRemark:this.detailForm.approveRemark + id: this.detailForm.id, + approvePerson: this.userInfo.user_id, + approveResult: this.detailForm.approveResult, + approveTime: moment().format('YYYY-MM-DD HH:mm:ss'), + approveRemark: this.detailForm.approveRemark } - if(query.approveResult == 0){ - customerReject(query).then(res =>{ + if (query.approveResult == 0) { + customerReject(query).then(res => { if (res.data.code == 200) { this.$message.success('审批成功') this.detailVisible = false this.onLoad() } }) - }else{ - customerConfirm(query).then(res =>{ + } else { + customerConfirm(query).then(res => { if (res.data.code == 200) { this.$message.success('审批成功') this.detailVisible = false @@ -1089,6 +1193,7 @@ export default { url: item.link }) }) + this.nameImg = '' if (this.rowStatus == 3) { this.isOkValidity = 1 this.isOkQuality = 1 @@ -1137,7 +1242,8 @@ export default { endTime: this.searchForm.timeRange && this.searchForm.timeRange.length != 0 ? this.searchForm.timeRange[1].toString() + ' 23:59:59' : '', //结束时间 faultLocation: this.searchForm.faultLocation ? this.searchForm.faultLocation : '', //设备位置 faultType: this.searchForm.faultType ? this.searchForm.faultType : '', //故障类型 - dataType: 1 + dataType: 1, + requirementCode:this.searchForm.requirementCode } console.log('query--------->', query) getList(query).then(res => { diff --git a/src/views/workbench/index.vue b/src/views/workbench/index.vue index 2c71806..a47dd40 100644 --- a/src/views/workbench/index.vue +++ b/src/views/workbench/index.vue @@ -23,17 +23,23 @@ index == 2 ? require('@/assets/images/alarm.png') : index == 3 ? require('@/assets/images/full.png') : ''" alt="">
-
{{ item.num }}
+
+
{{ item.name }}
+
{{ item.num }}
+
-
{{ item.name }}
+
+
+
其他
+
-
其他
+
@@ -80,6 +86,28 @@ +
+
实验室维修
+
+ +
+
+
+
{{ item.requirementCode }}
+
+
{{ status }}
+
+
+
{{ item.faultDescribe }}
+
+ +
+
+ +
+
@@ -157,7 +185,6 @@
工作台 -
9
@@ -250,6 +277,7 @@ import { mapGetters } from "vuex"; import Map from './map.vue' import vueSeamless from 'vue-seamless-scroll' import { getUserInfo } from "@/api/system/user"; +import { getList } from '@/api/operation/hand' import { overview, workList, deviceList, upkeepStat, pieStat, mapAddress, limsInspecList, overviewList, limsInspecChart, faultRatio } from '@/api/workbench/workbench' import { color } from 'echarts'; @@ -260,6 +288,7 @@ export default { }, data() { return { + requirementList:[], role_id: '', isShowOther: false, isShowMask:false, @@ -393,6 +422,7 @@ export default { this.getbackGroundPic() this.getUpkeepStat() this.getPieStat() + this.getRequirement() this.alarmOption = { "step": 0.2, // 数值越大速度滚动越快 "limitMoveNum": 3, // 开始无缝滚动的数据量 this.dataList.length @@ -433,6 +463,23 @@ export default { } }, methods: { + clickReqiure(item){ + console.log('item----------->',item) + this.$router.push({ + path:'/operation/hand', + query:item + }) + }, + getRequirement(){ + getList({ + current:1, + size:10, + dataType: 1,//数据权限 + statusSearch: '1,2,3,4,6,20,7',//状态5报错 + }).then(res =>{ + this.requirementList = res.data.data.records + }) + }, // 获取实验室角色下的背景图 getbackGroundPic() { getUserInfo().then(res => { @@ -582,7 +629,7 @@ export default { top: '15%', left: '5%', right: '5%', - bottom: '15%' + bottom: '10%' }, yAxis: {}, series: [ @@ -592,7 +639,7 @@ export default { data: this.totalBardata, itemStyle: { // color: '#2478f2' - color:'#035cdd' + color:'#2148D1' } }, { @@ -601,7 +648,7 @@ export default { data: this.completedBardata, itemStyle: { // color: '#84b7f9' - color:'#98c2f7' + color:'#5E8CFF' } }, { @@ -610,7 +657,7 @@ export default { data: this.unCompletedBardata, itemStyle: { // color: '#5f9cf8' - color:'#5470c6' + color:'#B0CCFF' } }, ] @@ -798,7 +845,7 @@ export default { .container { width: 99%; height: 95%; - background: #fff; + //background: #fff; margin: 0 auto; .mask{ @@ -817,10 +864,11 @@ export default { } .top_box { - width: calc(100% - 40px); - height: 47%; + width: 100%; + height: 51%; margin: 0 auto; - padding: 20px; + margin-top: 5px; + // padding: 20px; display: -webkit-box; display: -ms-flexbox; display: flex; @@ -833,13 +881,13 @@ export default { } .top_right { - width: 48%; + width: 49%; height: 100%; .work_box { - width: 95%; - height: 45%; - margin-left: 5%; + width: 98%; + height: 30%; + // margin-left: 5%; .work_tit { font-weight: 550; @@ -848,33 +896,45 @@ export default { .work_con { width: 100%; height: 80%; - margin-top: 2.4%; + margin-top: 10px; display: flex; align-items: center; justify-content: space-between; .work_item { - width: 148px; - height: 100%; + width: 23%; + height:78px; border-radius: 10px; position: relative; display: flex; align-items: center; justify-content: center; - flex-direction: column; + + // flex-direction: column; + .item_top { width: 100%; - height: 104px; + height: 100%; background: #3a62d791; border-radius: 10px; position: relative; display: flex; align-items: center; justify-content: center; - flex-direction: column; + // flex-direction: column; color: white; font-size: 22px; + background: linear-gradient( 90deg, #375DF9 0%, #6DB5FF 100%); + box-shadow: 0px 5px 5px 0px #B6D8FF; + + + + .right_item{ + display: flex; + flex-direction: column; + margin-left: 20px; + } // .item_num { // // position: absolute; @@ -896,26 +956,41 @@ export default { height: 100%; } } + .item_name { + // width: 148px; + // margin-top: 10px; + // display: flex; + // align-items: center; + // -ms-flex-pack: center; + // justify-content: center; + font-size: 14px; + margin-bottom: 5px; + } } - .item_name { - width: 148px; - height: 18%; - margin-top: 10px; - display: flex; - align-items: center; - -ms-flex-pack: center; - justify-content: center; + &:nth-child(2) .item_top{ + background: linear-gradient( 270deg, #41D9A5 0%, #0BC478 100%); + box-shadow: 0px 10px 10px 0px #BDE7E2; + } + + &:nth-child(3) .item_top{ + background: linear-gradient( 90deg, #F36656 0%, #FF8043 100%); + box-shadow: 0px 10px 10px 0px #FED1D0; } + + &:nth-child(4) .item_top{ + background: linear-gradient( 90deg, #F3AC56 0%, #FFCA68 100%); + box-shadow: 0px 10px 10px 0px #FEEED0; + } + } } } .xj_box { - width: 95%; - height: 52%; + width: 98%; + height:30%; margin-top: 20px; - margin-left: 5%; .xj_tit { font-weight: 550; @@ -932,12 +1007,16 @@ export default { .xj_con_box { width: 100%; height: 100%; - background: #efefef; + background: #fff; border-radius: 10px; overflow: hidden; ::v-deep .el-empty__image{ - width: 75px !important; + width: 55px !important; + } + + ::v-deep .el-empty__description{ + margin-top: none !important; } ::v-deep.el-carousel__container { @@ -1004,10 +1083,9 @@ export default { } .bottom_box { - width: calc(100% - 40px); - height: 42%; - // margin-top: 1%; - padding: 20px; + width: 100%; + height: 46%; + margin-top: 1%; display: flex; align-items: center; justify-content: space-between; @@ -1015,19 +1093,28 @@ export default { .bottom_left { width: 25%; height: 100%; + background: #FFFFFF; + border-radius: 4px; + border: 1px solid #EBEEF5; + .left_tit { font-weight: 550; + margin-top: 15px; + margin-left: 15px; } .left_con { width: 100%; height: 88%; - background: #efefef; + // background: #efefef; margin-top: 20px; border-radius: 10px; display: flex; flex-direction: column; + // background: #FFFFFF; + // border-radius: 4px; + // border: 1px solid #EBEEF5; .nodata{ // width: 100%; @@ -1137,28 +1224,39 @@ export default { .bottom_right { width: 74%; height: 100%; + background: #FFFFFF; + border-radius: 4px; + border: 1px solid #EBEEF5; .right_tit { font-weight: 550; + margin-top: 15px; + margin-left: 15px; } .right_con { width: 100%; height: 88%; - background: #efefef; - margin-top: 20px; + // background: #efefef; + margin-top: 10px; border-radius: 10px; display: flex; align-items: center; + // background: #FFFFFF; + // border-radius: 4px; + // border: 1px solid #EBEEF5; .bar_box { - width: 47%; - height: 86%; - background: #fff; - margin-left: 2%; + width: 49%; + height: 100%; + // background: #fff; border-radius: 10px; + margin-left: 15px; display: flex; flex-direction: column; + // background: #FFFFFF; + // border-radius: 4px; + // border: 1px solid #EBEEF5; .bar_top { margin: 10px; @@ -1172,11 +1270,13 @@ export default { } .pie_box { - width: 47%; - height: 86%; - background: #fff; + width: 49%; + height: 100%; margin-left: 2%; border-radius: 10px; + // background: #FFFFFF; + // border-radius: 4px; + // border: 1px solid #EBEEF5; .pie_top { margin: 10px;