优化控制台消息推送
This commit is contained in:
parent
481dd4af44
commit
c174f3df6a
@ -2,6 +2,13 @@ export default {
|
||||
state: {
|
||||
main_order_count:[],
|
||||
repair_count:[],
|
||||
|
||||
home_msg:{
|
||||
briefing:[],
|
||||
workOrder:[],
|
||||
spareParts:[],
|
||||
reachStandard:[]
|
||||
}
|
||||
},
|
||||
mutations: {
|
||||
set_list_count_info(state, list){
|
||||
@ -10,6 +17,21 @@ export default {
|
||||
set_repair_count(state, list){
|
||||
state.repair_count = list;
|
||||
},
|
||||
set_home_msg(state,key){
|
||||
if(key.data && (key.data.type==21 || key.data.type==24 || key.data.type == 25 || key.data.type == 26))
|
||||
if(key.data.type == 21){
|
||||
state.home_msg.briefing = key;
|
||||
|
||||
}else if(key.data.type == 24){
|
||||
state.home_msg.workOrder = key;
|
||||
|
||||
}else if(key.data.type == 25){
|
||||
state.home_msg.spareParts = key;
|
||||
|
||||
}else if(key.data.type == 26){
|
||||
state.home_msg.reachStandard = key;
|
||||
}
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
|
||||
|
||||
@ -87,6 +87,10 @@
|
||||
text-align: left;
|
||||
color: #333;
|
||||
font-weight: initial;
|
||||
.text{
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
.seq{flex-basis: 50px;overflow: hidden;}
|
||||
}
|
||||
@ -108,12 +112,25 @@
|
||||
font-size: 12px;
|
||||
.el-row{
|
||||
margin-bottom: 6px;
|
||||
.el-col{
|
||||
display: flex;
|
||||
}
|
||||
.name{
|
||||
width: 65px;
|
||||
flex-basis: 65px;
|
||||
display: inline-block;
|
||||
text-align: right;
|
||||
margin-right: 12px;
|
||||
}
|
||||
.text{
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
.orderInfoRepair{
|
||||
.el-row{
|
||||
.name{
|
||||
flex-basis: 90px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.componentBox{
|
||||
|
||||
@ -5,8 +5,8 @@ import systemConfig from '@/config';
|
||||
import router from "@/router";
|
||||
import {ElNotification} from 'element-plus';
|
||||
import {eventBus} from "./eventBus"
|
||||
import store from "../store";
|
||||
// import api from '../api';
|
||||
// import store from "../store";
|
||||
|
||||
let websocket = null;
|
||||
let global_callback = function () {};
|
||||
@ -132,6 +132,7 @@ function webSocketOnMessage(msg) {
|
||||
} else {
|
||||
if(msg.type === "") return
|
||||
result = JSON.parse(msg.data);
|
||||
store.commit('set_home_msg', result);
|
||||
// if(result.type == 13){
|
||||
// store.commit("SET_WS_Msg_NUM", result.data.todo_msg_count);
|
||||
// }
|
||||
|
||||
@ -124,7 +124,7 @@ import barBox from "./components/bar";
|
||||
import ringBox from "./components/ring";
|
||||
import pointBox from "./components/point";
|
||||
import shortcuts from "./components/shortcuts";
|
||||
import {eventBus} from "@/utils/eventBus"
|
||||
import {eventBus} from "@/utils/eventBus";
|
||||
export default {
|
||||
name: "index",
|
||||
components:{
|
||||
@ -170,11 +170,30 @@ export default {
|
||||
{date_type:'month',label:'按月'},
|
||||
{date_type:'year',label:'按年'},
|
||||
],
|
||||
dataType:"month"
|
||||
dataType:"month",
|
||||
|
||||
home_msg:this.$store.state.msg.home_msg
|
||||
}
|
||||
},
|
||||
computed:{
|
||||
|
||||
},
|
||||
watch:{
|
||||
home_msg:{
|
||||
handler(obj){
|
||||
for(let i in obj){
|
||||
if(obj[i] && obj[i].data){
|
||||
this.getWsResult(obj[i])
|
||||
}
|
||||
}
|
||||
},
|
||||
deep:true,
|
||||
immediate:true
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$emit('on-mounted');
|
||||
|
||||
// 获取新消息
|
||||
eventBus.$on('sockBack', this.getWsResult);
|
||||
},
|
||||
|
||||
@ -4,9 +4,9 @@
|
||||
<div class="searchHeaderBack">
|
||||
<el-input class="searchInput" v-focus type="text" size="large" v-model="keyword">
|
||||
<template #prepend>
|
||||
<el-dropdown class="searchDrop" trigger="click">
|
||||
<el-dropdown class="searchDrop" trigger="click" @command="dropdownChange">
|
||||
<span class="dropTitle el-dropdown-link">
|
||||
维保工单 <el-icon class="el-icon--right"><el-icon-arrow-down /></el-icon>
|
||||
{{dropdownName}} <el-icon class="el-icon--right"><el-icon-arrow-down /></el-icon>
|
||||
</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
@ -30,7 +30,12 @@
|
||||
<div class="collapseHeaderBack">
|
||||
<div class="collapseHeaderNav">
|
||||
<div class="item seq">序号</div>
|
||||
<template v-if="dropdownType=='a'">
|
||||
<div class="item" :style="{'width':item.width+'px'}" v-for="(item,index) in orderColumn" :key="index">{{item.label}}</div>
|
||||
</template>
|
||||
<template v-if="dropdownType=='b'">
|
||||
<div class="item" :style="{'width':item.width+'px'}" v-for="(item,index) in planColumn" :key="index">{{item.label}}</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<el-collapse class="collapseMain" @change="collapseChange" :accordion="true">
|
||||
@ -39,19 +44,33 @@
|
||||
<template #title>
|
||||
<div class="collapseHeader">
|
||||
<div class="item seq">{{index+1}}</div>
|
||||
<template v-if="dropdownType=='a'">
|
||||
<div class="item" :style="{'width':em.width+'px'}" v-for="(em,index) in orderColumn" :key="index">
|
||||
<!-- <el-tooltip effect="dark" :content="item[em.prop]"></el-tooltip>-->
|
||||
<span v-if="em.prop == 'business_status'">
|
||||
<span v-for="(li,ind) in statusList" :key="ind">
|
||||
<span :style="{color:li.value==1?`var(--el-order-color-1)`:li.value==2?`var(--el-order-color-2)`:li.value==3?`var(--el-order-color-3)`:li.value==4?`var(--el-order-color-4)`:`var(--el-order-color-5)`}"
|
||||
v-if="li.value == item[em.prop]">{{li.label}}</span>
|
||||
</span>
|
||||
</span>
|
||||
<!-- <el-tooltip effect="dark" :content="item[em.prop]"><span class="text">{{item[em.prop]}}</span></el-tooltip> -->
|
||||
<span v-else>{{item[em.prop]}}</span>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="dropdownType=='b'">
|
||||
<div class="item" :style="{'width':em.width+'px'}" v-for="(em,index) in planColumn" :key="index">
|
||||
<span v-if="em.prop == 'repair_status'">
|
||||
<span v-for="(li,ind) in statusList" :key="ind">
|
||||
<span :style="{color:li.value==1?`var(--el-order-color-1)`:li.value==2?`var(--el-order-color-2)`:li.value==3?`var(--el-order-color-3)`:li.value==4?`var(--el-order-color-4)`:`var(--el-order-color-5)`}"
|
||||
v-if="li.value == item[em.prop]">{{li.label}}</span>
|
||||
</span>
|
||||
</span>
|
||||
<span v-else>{{item[em.prop]}}</span>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
<div class="collapseBody">
|
||||
<!-- 维保工单 -->
|
||||
<div class="collapseBody" v-if="dropdownType=='a'">
|
||||
<div class="title">工单详情</div>
|
||||
<div class="stepView">
|
||||
<el-steps class="orderSteps" :active="item.process_num" align-center>
|
||||
@ -109,6 +128,58 @@
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 维修工单 -->
|
||||
<div class="collapseBody" v-if="dropdownType=='b'">
|
||||
<div class="title">工单详情</div>
|
||||
<div class="orderInfo orderInfoRepair">
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="name">维修单号:</span><span class="text">{{item.repair_order_no}}</span>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="name">PE确认时间:</span><span class="text">{{item.maintenance_order.pe_confirmation_time}}</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="name">故障描述:</span><span class="text">{{item.maintenance_order.fault_description}}</span>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="name">保修期结束:</span><span class="text">{{item.maintenance_order.warranty_end_date}}</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="name">维修动作:</span><span class="text"></span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="name">不良原因:</span><span class="text"></span>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="name">不良现象:</span><span class="text"></span>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="name">现场步骤分析:</span><span class="text"></span>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="name">SLA不达标原因:</span><span class="text"></span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="componentBox">
|
||||
<el-table :data="item.maintenance_order.component_info" :size="size" stripe :header-cell-style="{'background': '#1367C1','color':'#fff'}">
|
||||
<el-table-column type="index" label="序号" align="center"></el-table-column>
|
||||
<el-table-column prop="component_serial_no" show-overflow-tooltip label="部件SN/Sp" width="160"></el-table-column>
|
||||
<el-table-column prop="component_manufacturer" show-overflow-tooltip label="部件厂商" width="130"></el-table-column>
|
||||
<el-table-column prop="component_model" show-overflow-tooltip label="部件型号" width="160"></el-table-column>
|
||||
<el-table-column prop="component_pn" show-overflow-tooltip label="部件PN/Sp" width="150"></el-table-column>
|
||||
<el-table-column prop="bd_backup_count" show-overflow-tooltip label="剩余BD数" width="120"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</template>
|
||||
</el-collapse>
|
||||
@ -124,15 +195,17 @@ export default {
|
||||
return{
|
||||
size:'small',
|
||||
loading:false,
|
||||
keyword:"Z240919004",
|
||||
keyword:"",
|
||||
dropdownName:"维保工单",
|
||||
dropdownType:'a',
|
||||
params:{
|
||||
repair_order_no:{
|
||||
operator:"like",
|
||||
value:"%Z240919004%"
|
||||
value:""
|
||||
},
|
||||
component_serial_no:{
|
||||
operator:"like",
|
||||
value:"%Z240919004%"
|
||||
value:""
|
||||
},
|
||||
},
|
||||
activeNames:[],
|
||||
@ -151,12 +224,12 @@ export default {
|
||||
],
|
||||
planColumn:[
|
||||
{label:"工单号",prop:"repair_order_no",width:160},
|
||||
{label:"外发日期",prop:"repair_order_no",width:160},
|
||||
{label:"外发日期",prop:"created_at",width:160},
|
||||
{label:"维保商场",prop:"repair_order_no",width:160},
|
||||
{label:"计划时间",prop:"repair_order_no",width:160},
|
||||
{label:"完成时间",prop:"repair_order_no",width:160},
|
||||
{label:"故障类型",prop:"repair_order_no",width:160},
|
||||
{label:"状态",prop:"repair_order_no",width:160},
|
||||
{label:"计划时间",prop:"created_at",width:160},
|
||||
{label:"完成时间",prop:"updated_at",width:160},
|
||||
{label:"故障类型",prop:"fault_type",width:160},
|
||||
{label:"状态",prop:"repair_status",width:160},
|
||||
],
|
||||
rows:[],
|
||||
statusList:[],
|
||||
@ -170,7 +243,12 @@ export default {
|
||||
async searchClick() {
|
||||
let params = this.setObj();
|
||||
this.loading = true;
|
||||
const res = await this.$API.orders.order.maintenance.search.post(params);
|
||||
let res;
|
||||
if(this.dropdownType === 'a'){
|
||||
res = await this.$API.orders.order.maintenance.search.post(params);
|
||||
}else if(this.dropdownType === 'b'){
|
||||
res = await this.$API.orders.order.repair.search.post(params);
|
||||
}
|
||||
this.loading = false;
|
||||
if(res.code == 200){
|
||||
res.data.forEach(item=>{
|
||||
@ -179,6 +257,17 @@ export default {
|
||||
item.process_engine = obj.processedList;
|
||||
item.process_num = obj.num;
|
||||
}
|
||||
if(item.maintenance_order && item.maintenance_order.component_info && item.maintenance_order.component_info==0){
|
||||
item.maintenance_order.component_info = [
|
||||
{
|
||||
component_serial_no:item.maintenance_order.component_serial_no,
|
||||
component_manufacturer:item.maintenance_order.component_manufacturer,
|
||||
component_model:item.maintenance_order.component_model,
|
||||
component_pn:item.maintenance_order.component_pn,
|
||||
bd_backup_count:item.maintenance_order.bd_backup_count
|
||||
}
|
||||
]
|
||||
}
|
||||
if(item.component_info && item.component_info.length===0){
|
||||
item.component_info = [
|
||||
{
|
||||
@ -191,7 +280,6 @@ export default {
|
||||
]
|
||||
}
|
||||
})
|
||||
console.log(res.data,788)
|
||||
this.rows = res.data;
|
||||
}
|
||||
},
|
||||
@ -227,6 +315,15 @@ export default {
|
||||
if (foundNodeTrue && obj.processedList[i].node !== true) break;
|
||||
}
|
||||
return obj;
|
||||
},
|
||||
dropdownChange(e){
|
||||
this.dropdownType = e;
|
||||
this.rows = [];
|
||||
if(e === "a"){
|
||||
this.dropdownName = '维保工单';
|
||||
}else if(e === 'b'){
|
||||
this.dropdownName = '维修工单'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
mode: "add",
|
||||
titleMap: {
|
||||
add: '新增部件信息',
|
||||
edit: '编辑部件信息',
|
||||
},
|
||||
visible: false,
|
||||
isSave: false,
|
||||
@ -79,7 +80,7 @@
|
||||
this.form.num = data.num;
|
||||
}
|
||||
this.form.component_serial_no = data.component_serial_no;
|
||||
this.form.component_manufacturer = data.component_serial_no;
|
||||
this.form.component_manufacturer = data.component_manufacturer;
|
||||
this.form.component_model = data.component_model;
|
||||
this.form.component_pn = data.component_pn;
|
||||
}
|
||||
|
||||
@ -286,8 +286,11 @@ export default {
|
||||
if(this.info.component_info.length>0){
|
||||
this.info.component_info.forEach((item,index)=>{
|
||||
if(index == data.num || (data.id && item.id == data.id)){
|
||||
item = data;
|
||||
item.num = index;
|
||||
item.component_manufacturer = data.component_manufacturer;
|
||||
item.component_model = data.component_model;
|
||||
item.component_pn = data.component_pn;
|
||||
item.component_serial_no = data.component_serial_no;
|
||||
}
|
||||
})
|
||||
}else{
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<div class="status">
|
||||
<span class="name">当前状态:</span>
|
||||
<span class="text">
|
||||
<span v-for="(item,ind) in statusList" :key="ind">
|
||||
<span v-for="(item,ind) in setMap.statusList" :key="ind">
|
||||
<span :style="{color:item.value==1?`var(--el-order-color-1)`:item.value==2?`var(--el-order-color-2)`:item.value==3?`var(--el-order-color-3)`:item.value==4?`var(--el-order-color-4)`:`var(--el-order-color-5)`}"
|
||||
v-if="item.value == info.business_status">{{item.label}}</span>
|
||||
</span>
|
||||
@ -16,7 +16,11 @@
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="label">报修客户:</span>
|
||||
<span class="text">{{info.customer_name}}</span>
|
||||
<span class="text">
|
||||
<span v-for="(item,index) in setMap.customerList" :key="index">
|
||||
<span v-if="item.id == info.customer_id">{{item.customer_name}}</span>
|
||||
</span>
|
||||
</span>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="label">标准机型:</span>
|
||||
@ -155,17 +159,34 @@ export default {
|
||||
info:{
|
||||
component_info:[]
|
||||
},
|
||||
statusList:[]
|
||||
setMap:{
|
||||
statusList:[],
|
||||
customerList:[]
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getStatusList();
|
||||
this.getCustomerSelect();
|
||||
},
|
||||
methods:{
|
||||
async getStatusList() {
|
||||
const res = await this.$API.orders.order.maintenance.status.post();
|
||||
if (res.code == 200) {
|
||||
this.statusList = res.data;
|
||||
this.setMap['statusList'] = res.data;
|
||||
}
|
||||
},
|
||||
async getCustomerSelect(){
|
||||
let params = {
|
||||
field:"customer_name",
|
||||
id:{
|
||||
operator:"in",
|
||||
value:""
|
||||
}
|
||||
}
|
||||
const res = await this.$API.setup.customer.select.post(params);
|
||||
if(res.code == 200){
|
||||
this.setMap['customerList'] = res.data;
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
@ -128,7 +128,7 @@ export default {
|
||||
const params = {
|
||||
order_ids: [this.params.order_id],
|
||||
is_verify_erp_inventory:this.info.is_verify_erp_inventory,
|
||||
component_info:this.info.component_info
|
||||
component_info:this.info.component_info.filter(em=>!em.id)
|
||||
};
|
||||
this.saveLoading = true;
|
||||
const res = await this.$API.orders.order.maintenance.submit.post(params);
|
||||
@ -157,8 +157,11 @@ export default {
|
||||
if(this.info.component_info.length>0){
|
||||
this.info.component_info.forEach((item,index)=>{
|
||||
if(index == data.num || (data.id && item.id == data.id)){
|
||||
item = data;
|
||||
item.num = index;
|
||||
item.component_manufacturer = data.component_manufacturer;
|
||||
item.component_model = data.component_model;
|
||||
item.component_pn = data.component_pn;
|
||||
item.component_serial_no = data.component_serial_no;
|
||||
}
|
||||
})
|
||||
}else{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user