修改维保计划
This commit is contained in:
parent
e174feeb7d
commit
856dbfe26e
@ -212,6 +212,13 @@ export default {
|
|||||||
post: async function (params) {
|
post: async function (params) {
|
||||||
return await http.post(this.url,params);
|
return await http.post(this.url,params);
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
confirm:{
|
||||||
|
url: `${config.API_URL}/repair.order.confirm`,
|
||||||
|
name: "维保计划确认",
|
||||||
|
post: async function (params) {
|
||||||
|
return await http.post(this.url,params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sock: {
|
sock: {
|
||||||
|
|||||||
@ -94,7 +94,7 @@ export default {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
let data = {
|
let data = {
|
||||||
column_config:column,
|
column_config:[],
|
||||||
save_column:false,
|
save_column:false,
|
||||||
page:1,
|
page:1,
|
||||||
pageSize:this.pageSize
|
pageSize:this.pageSize
|
||||||
|
|||||||
@ -20,6 +20,9 @@
|
|||||||
</el-icon>
|
</el-icon>
|
||||||
</el-badge>
|
</el-badge>
|
||||||
<el-drawer title="新消息" v-model="msg" :size="400" append-to-body destroy-on-close>
|
<el-drawer title="新消息" v-model="msg" :size="400" append-to-body destroy-on-close>
|
||||||
|
<template #title>
|
||||||
|
<span class="msgTitle">新消息 <span class="msg-tag">{{unreadMsgNum.length>99?'99+':unreadMsgNum.length}}</span></span>
|
||||||
|
</template>
|
||||||
<el-container>
|
<el-container>
|
||||||
<el-main class="nopadding" v-loading="msgLoading" element-loading-text="加载中...">
|
<el-main class="nopadding" v-loading="msgLoading" element-loading-text="加载中...">
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
@ -369,6 +372,20 @@
|
|||||||
font-weight: inherit;
|
font-weight: inherit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.msgTitle{
|
||||||
|
display: flex;align-items: center;
|
||||||
|
}
|
||||||
|
.msg-tag{
|
||||||
|
height: 18px;
|
||||||
|
line-height: 18px;
|
||||||
|
padding: 0 6px;
|
||||||
|
border-radius: 18px;
|
||||||
|
background: var(--el-color-danger);
|
||||||
|
color: var(--el-color-white);
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: initial;
|
||||||
|
margin-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
.dark .msg-list__main h2 {
|
.dark .msg-list__main h2 {
|
||||||
color: #d0d0d0;
|
color: #d0d0d0;
|
||||||
|
|||||||
@ -279,24 +279,39 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getWsResult(res){
|
getWsResult(res){
|
||||||
if(res.data && res.data.type == 21){
|
if(res.data && (res.data.type == 21 || res.data.type == 23)){
|
||||||
if(res.data.list_count_info && res.data.list_count_info.main_order_count.length>0){
|
if(res.data.list_count_info && res.data.list_count_info.main_order_count.length>0){
|
||||||
this.$store.commit("set_list_count_info", res.data.list_count_info.main_order_count);
|
this.$store.commit("set_list_count_info", res.data.list_count_info.main_order_count);
|
||||||
}
|
}
|
||||||
|
if(res.data.list_repair_info && res.data.list_repair_info.repair_count.length>0){
|
||||||
|
this.$store.commit("set_repair_count", res.data.list_repair_info.repair_count);
|
||||||
|
}
|
||||||
let apiMenu = tool.objCopy(tool.data.get("MENU"));
|
let apiMenu = tool.objCopy(tool.data.get("MENU"));
|
||||||
apiMenu.forEach(item=>{
|
apiMenu.forEach(item=>{
|
||||||
if(item.name == 'order'){
|
if(item.name == 'order'){
|
||||||
item.meta.tag = null;
|
item.meta.tag = 0;
|
||||||
if(item.children && item.children.length>0){
|
if(item.children && item.children.length>0){
|
||||||
item.children.forEach(em=>{
|
item.children.forEach(em=>{
|
||||||
if(em.name == "orderList"){
|
if(em.name == "orderList" && res.data.type == 21){
|
||||||
em.meta.tag = 0;
|
let tag = 0;
|
||||||
if(res.data.list_count_info && res.data.list_count_info.main_order_count && res.data.list_count_info.main_order_count.length>0){
|
if(res.data.list_count_info && res.data.list_count_info.main_order_count && res.data.list_count_info.main_order_count.length>0){
|
||||||
res.data.list_count_info.main_order_count.forEach(li=>{
|
res.data.list_count_info.main_order_count.forEach(li=>{
|
||||||
em.meta.tag += li.value;
|
tag += li.value;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
item.meta.tag = em.meta.tag;
|
em.meta.tag = tag;
|
||||||
|
}
|
||||||
|
if(em.name == 'repairList' && res.data.type == 23){
|
||||||
|
let tag = 0;
|
||||||
|
if(res.data.list_repair_info && res.data.list_repair_info.repair_count && res.data.list_repair_info.repair_count.length>0){
|
||||||
|
res.data.list_repair_info.repair_count.forEach(li=>{
|
||||||
|
tag += li.value;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
em.meta.tag = tag;
|
||||||
|
}
|
||||||
|
if(em.meta.tag){
|
||||||
|
item.meta.tag += em.meta.tag
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,15 @@
|
|||||||
export default {
|
export default {
|
||||||
state: {
|
state: {
|
||||||
main_order_count:[]
|
main_order_count:[],
|
||||||
|
repair_count:[],
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
set_list_count_info(state, list){
|
set_list_count_info(state, list){
|
||||||
state.main_order_count = list;
|
state.main_order_count = list;
|
||||||
},
|
},
|
||||||
|
set_repair_count(state, list){
|
||||||
|
state.repair_count = list;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
|
||||||
|
|||||||
@ -68,10 +68,10 @@ a,button,input,textarea{-webkit-tap-highlight-color:rgba(0,0,0,0);box-sizing: bo
|
|||||||
.adminui-side-bottom i {font-size: 16px;}
|
.adminui-side-bottom i {font-size: 16px;}
|
||||||
.adminui-side-bottom:hover {color: var(--el-color-primary);}
|
.adminui-side-bottom:hover {color: var(--el-color-primary);}
|
||||||
.aminui-side.isCollapse {width: 65px;}
|
.aminui-side.isCollapse {width: 65px;}
|
||||||
.el-menu .menu-tag {position: absolute;height: 15px;line-height: 15px;background: var(--el-color-danger);font-size: 10px;color: #fff;right: 20px;border-radius:14px;padding:0 4px;}
|
.el-menu .menu-tag {position: absolute;height: 15px;line-height: 15px;background: var(--el-color-danger);font-size: 10px;color: #fff;right: 20px;border-radius:14px;padding:0 5px;}
|
||||||
.el-menu .el-sub-menu__title .menu-tag {right: 40px;top: 10px;}
|
.el-menu .el-sub-menu__title .menu-tag {right: 40px;top: 10px;}
|
||||||
.el-menu--horizontal > li .menu-tag {display: none;}
|
.el-menu--horizontal > li .menu-tag {display: none;}
|
||||||
.aminui-side.isCollapse .el-menu > li .menu-tag{display: inline-block;width: auto;height: 15px;line-height: 15px;padding: 0 4px;visibility: initial;right: 18px;top: 4px;}
|
.aminui-side.isCollapse .el-menu > li .menu-tag{display: inline-block;width: auto;height: 15px;line-height: 15px;padding: 0 5px;visibility: initial;right: 18px;top: 4px;}
|
||||||
|
|
||||||
/* 右侧内容 */
|
/* 右侧内容 */
|
||||||
.aminui-body {flex: 1;display: flex;flex-flow: column;}
|
.aminui-body {flex: 1;display: flex;flex-flow: column;}
|
||||||
|
|||||||
@ -13,12 +13,9 @@
|
|||||||
<el-form-item label="部件PN/Sp" prop="component_pn">
|
<el-form-item label="部件PN/Sp" prop="component_pn">
|
||||||
<el-input class="input" v-model="form.component_pn" type="text" placeholder="请输入部件SN/Sp"></el-input>
|
<el-input class="input" v-model="form.component_pn" type="text" placeholder="请输入部件SN/Sp"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="SLA截止时间" prop="sla_expiration">
|
<!-- <el-form-item label="SLA截止时间" prop="sla_expiration">-->
|
||||||
<el-date-picker class="input" v-model="form.sla_expiration" type="date" value-format="YYYY-MM-DD" placeholder="请选择SLA截止时间" style="width: 100%"></el-date-picker>
|
<!-- <el-date-picker class="input" v-model="form.sla_expiration" type="date" value-format="YYYY-MM-DD" placeholder="请选择SLA截止时间" style="width: 100%"></el-date-picker>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="剩余BD数" prop="bd_backup_count">
|
|
||||||
<el-input class="input" v-model="form.bd_backup_count" type="text" placeholder="请输入剩余BD数"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button @click="visible=false" >取 消</el-button>
|
<el-button @click="visible=false" >取 消</el-button>
|
||||||
@ -76,7 +73,15 @@
|
|||||||
},
|
},
|
||||||
//表单注入数据
|
//表单注入数据
|
||||||
setData(data){
|
setData(data){
|
||||||
this.form.id = data.id
|
if(data.id){
|
||||||
|
this.form.id = data.id;
|
||||||
|
}else{
|
||||||
|
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_model = data.component_model;
|
||||||
|
this.form.component_pn = data.component_pn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,6 +36,11 @@
|
|||||||
<el-date-picker class="input" v-model="form.warranty_end_date" type="date" value-format="YYYY-MM-DD" placeholder="请选择过保时间"></el-date-picker>
|
<el-date-picker class="input" v-model="form.warranty_end_date" type="date" value-format="YYYY-MM-DD" placeholder="请选择过保时间"></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="8" :lg="6">
|
||||||
|
<el-form-item label="SLA截止时间" prop="sla_expiration">
|
||||||
|
<el-date-picker class="input" v-model="form.sla_expiration" type="date" value-format="YYYY-MM-DD" placeholder="请选择SLA截止时间" style="width: 100%"></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -165,7 +170,6 @@
|
|||||||
<sc-table-column prop="component_manufacturer" label="部件厂商"></sc-table-column>
|
<sc-table-column prop="component_manufacturer" label="部件厂商"></sc-table-column>
|
||||||
<sc-table-column prop="component_model" label="部件型号"></sc-table-column>
|
<sc-table-column prop="component_model" label="部件型号"></sc-table-column>
|
||||||
<sc-table-column prop="component_pn" label="部件PN/Sp"></sc-table-column>
|
<sc-table-column prop="component_pn" label="部件PN/Sp"></sc-table-column>
|
||||||
<sc-table-column prop="sla_expiration" label="SLA截止时间"></sc-table-column>
|
|
||||||
<sc-table-column prop="bd_backup_count" label="甚于BD数"></sc-table-column>
|
<sc-table-column prop="bd_backup_count" label="甚于BD数"></sc-table-column>
|
||||||
<sc-table-column label="操作" fixed="right" width="120">
|
<sc-table-column label="操作" fixed="right" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@ -227,14 +231,7 @@ export default {
|
|||||||
warranty_end_date: "", // 保修期结束
|
warranty_end_date: "", // 保修期结束
|
||||||
maintenance_plan: '', // 维保等级:1-铜牌;常量维护项
|
maintenance_plan: '', // 维保等级:1-铜牌;常量维护项
|
||||||
is_verify_erp_inventory:true,
|
is_verify_erp_inventory:true,
|
||||||
component_info:[
|
component_info:[]
|
||||||
// {
|
|
||||||
// component_serial_no:"",
|
|
||||||
// component_manufacturer:"",
|
|
||||||
// component_model:"",
|
|
||||||
// component_pn:""
|
|
||||||
// }
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
rules:{
|
rules:{
|
||||||
fault_description:[{required:true,trigger:"blur",message:"故障描述不能为空"}],
|
fault_description:[{required:true,trigger:"blur",message:"故障描述不能为空"}],
|
||||||
@ -281,8 +278,22 @@ export default {
|
|||||||
this.$refs.saveDialog.open()
|
this.$refs.saveDialog.open()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleSaveSuccess(data){
|
handleSaveSuccess(data,mode){
|
||||||
|
if(mode == 'add'){
|
||||||
this.form.component_info.push(data);
|
this.form.component_info.push(data);
|
||||||
|
}
|
||||||
|
if(mode == 'edit'){
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
this.info.component_info.push(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
deleteOrder(row,num){
|
deleteOrder(row,num){
|
||||||
this.form.component_info.forEach((em,index)=>{
|
this.form.component_info.forEach((em,index)=>{
|
||||||
|
|||||||
@ -2,7 +2,33 @@
|
|||||||
<el-container>
|
<el-container>
|
||||||
<el-main class="orderMain" v-loading="loading" element-loading-text="加载中...">
|
<el-main class="orderMain" v-loading="loading" element-loading-text="加载中...">
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<detailView :data="info"></detailView>
|
<detailView :data="info">
|
||||||
|
<template #submit>
|
||||||
|
<div class="cardItem">
|
||||||
|
<div class="title titleFlex">
|
||||||
|
<span class="name">维保部件信息</span>
|
||||||
|
</div>
|
||||||
|
<div class="cardBody">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24" :lg="24" class="colFlex">
|
||||||
|
<span class="label labelText">验证ERP库存:</span>
|
||||||
|
<span class="text">{{info.is_verify_erp_inventory?'是':'否'}}</span>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
<div class="cardBody">
|
||||||
|
<sc-table ref="table" :data="info.component_info" style="width: 100%;" :hidePagination="true" :hideDo="true" :hideEmpty="true" :size="size">
|
||||||
|
<sc-table-column type="index" label="序号" width="65"></sc-table-column>
|
||||||
|
<sc-table-column prop="component_serial_no" label="部件SN/Sp" :show-overflow-tooltip="true" width="160"></sc-table-column>
|
||||||
|
<sc-table-column prop="component_manufacturer" label="部件厂商" :show-overflow-tooltip="true" width="130"></sc-table-column>
|
||||||
|
<sc-table-column prop="component_model" label="部件型号" :show-overflow-tooltip="true" width="160"></sc-table-column>
|
||||||
|
<sc-table-column prop="component_pn" label="部件PN/Sp" :show-overflow-tooltip="true" width="150"></sc-table-column>
|
||||||
|
<sc-table-column prop="bd_backup_count" label="甚于BD数" :show-overflow-tooltip="true" width="120"></sc-table-column>
|
||||||
|
</sc-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</detailView>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</el-main>
|
</el-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
@ -17,12 +43,15 @@ export default {
|
|||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
|
size:'small',
|
||||||
loading:false,
|
loading:false,
|
||||||
params:{
|
params:{
|
||||||
order_id:Number(this.$route.query.id)
|
order_id:Number(this.$route.query.id)
|
||||||
},
|
},
|
||||||
info:{}
|
info:{
|
||||||
|
is_verify_erp_inventory:false,
|
||||||
|
component_info:[]
|
||||||
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -39,6 +68,17 @@ export default {
|
|||||||
res.data.process_num = obj.num;
|
res.data.process_num = obj.num;
|
||||||
}
|
}
|
||||||
this.info = res.data;
|
this.info = res.data;
|
||||||
|
if(res.data.component_info.length==0){
|
||||||
|
this.info.component_info = [
|
||||||
|
{
|
||||||
|
component_serial_no:res.data.component_serial_no,
|
||||||
|
component_manufacturer:res.data.component_manufacturer,
|
||||||
|
component_model:res.data.component_model,
|
||||||
|
component_pn:res.data.component_pn,
|
||||||
|
bd_backup_count:res.data.bd_backup_count
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
},
|
},
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8" :lg="6">
|
<el-col :span="8" :lg="6">
|
||||||
<span class="label">报修客户:</span>
|
<span class="label">报修客户:</span>
|
||||||
<span class="text">{{info.customer}}</span>
|
<span class="text">{{info.customer_name}}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8" :lg="6">
|
<el-col :span="8" :lg="6">
|
||||||
<span class="label">标准机型:</span>
|
<span class="label">标准机型:</span>
|
||||||
@ -36,6 +36,10 @@
|
|||||||
<span class="label">过保时间:</span>
|
<span class="label">过保时间:</span>
|
||||||
<span class="text">{{info.warranty_end_date}}</span>
|
<span class="text">{{info.warranty_end_date}}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="8" :lg="6">
|
||||||
|
<span class="label">SLA截止时间:</span>
|
||||||
|
<span class="text">{{info.sla_expiration}}</span>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -126,26 +130,8 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="cardItem">
|
<slot name="submit"></slot>
|
||||||
<div class="title">维保部件信息</div>
|
|
||||||
<div class="cardBody">
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="24" :lg="24">
|
|
||||||
<span class="label">验证ERP库存:</span>
|
|
||||||
<span class="text">{{info.is_verify_erp_inventory?'是':'否'}}</span>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<sc-table ref="table" :data="info.component_info" style="width: 100%;" :hidePagination="true" :hideDo="true" :hideEmpty="true" :size="size">
|
|
||||||
<sc-table-column type="index" label="序号" width="65"></sc-table-column>
|
|
||||||
<sc-table-column prop="component_serial_no" label="部件SN/Sp"></sc-table-column>
|
|
||||||
<sc-table-column prop="component_manufacturer" label="部件厂商"></sc-table-column>
|
|
||||||
<sc-table-column prop="component_model" label="部件型号"></sc-table-column>
|
|
||||||
<sc-table-column prop="component_pn" label="部件PN/Sp"></sc-table-column>
|
|
||||||
<sc-table-column prop="sla_expiration" label="SLA截止时间"></sc-table-column>
|
|
||||||
<sc-table-column prop="bd_backup_count" label="甚于BD数"></sc-table-column>
|
|
||||||
</sc-table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<slot name="review"></slot>
|
<slot name="review"></slot>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -166,7 +152,9 @@ export default {
|
|||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
size:'small',
|
size:'small',
|
||||||
info:{},
|
info:{
|
||||||
|
component_info:[]
|
||||||
|
},
|
||||||
statusList:[]
|
statusList:[]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,80 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog :title="titleMap[mode]" v-model="visible" :width="800" draggable destroy-on-close @closed="$emit('closed')">
|
<el-dialog :title="titleMap[mode]" v-model="visible" :width="400" draggable destroy-on-close @closed="$emit('closed')">
|
||||||
<el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="120px" label-position="right">
|
<el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="90px" label-position="right">
|
||||||
<div class="boxHeader">
|
<el-col :span="24" :sm="24">
|
||||||
<el-row :gutter="4" justify="space-between">
|
<el-form-item label="维修日期" prop="schedule_date">
|
||||||
<el-col :span="11">
|
<el-date-picker v-model="form.schedule_date" type="date" placeholder="请选择维修日期" clearable value-format="YYYY-MM-DD"></el-date-picker>
|
||||||
<el-form-item label="费用类型" prop="login_name">
|
|
||||||
<el-select v-model="form.login_name" placeholder="请填写登录账号" clearable style="width: 100%;">
|
|
||||||
<el-option></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="4" justify="space-between">
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item label="快递单号" prop="login_name">
|
|
||||||
<el-input v-model="form.login_name" placeholder="请填写快递单号" clearable></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="11" :sm="11">
|
|
||||||
<el-form-item label="快递发货日期" prop="login_name">
|
|
||||||
<el-date-picker v-model="form.login_name" type="date" placeholder="请选择发货日期" clearable value-format="YYYY-MM-DD"></el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="4" justify="space-between">
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item label="发货地址" prop="login_name">
|
|
||||||
<el-input v-model="form.login_name" placeholder="请填写发货地址" clearable></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item label="调拨地址" prop="login_name">
|
|
||||||
<el-input v-model="form.login_name" placeholder="请填写调拨地址" clearable></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
<div class="boxFooter">
|
|
||||||
<div class="title">费用项</div>
|
|
||||||
<el-row :gutter="4" justify="space-between">
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item label="运费" prop="login_name">
|
|
||||||
<el-input v-model="form.login_name" placeholder="请填写运费" clearable></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item label="备件数量" prop="login_name">
|
|
||||||
<el-input v-model="form.login_name" placeholder="请填写备件数量" clearable></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="4" justify="space-between">
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item label="税费" prop="login_name">
|
|
||||||
<el-input v-model="form.login_name" placeholder="请填写税费" clearable></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item label="备件数量" prop="login_name">
|
|
||||||
<el-input v-model="form.login_name" placeholder="请填写备件数量" clearable></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="4" justify="space-between">
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item label="仓储费" prop="login_name">
|
|
||||||
<el-input v-model="form.login_name" placeholder="请填写仓储费" clearable></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="11">
|
|
||||||
<el-form-item label="备件数量" prop="login_name">
|
|
||||||
<el-input v-model="form.login_name" placeholder="请填写备件数量" clearable></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button @click="visible=false" >取 消</el-button>
|
<el-button @click="visible=false" >取 消</el-button>
|
||||||
@ -90,87 +21,26 @@ export default {
|
|||||||
return {
|
return {
|
||||||
mode: "confirm",
|
mode: "confirm",
|
||||||
titleMap: {
|
titleMap: {
|
||||||
confirm: '数据确认费用',
|
confirm: '确认工单',
|
||||||
},
|
},
|
||||||
visible: false,
|
visible: false,
|
||||||
isSave: false,
|
isSave: false,
|
||||||
//表单数据
|
//表单数据
|
||||||
form: {
|
form: {
|
||||||
id:"",
|
order_ids:[],
|
||||||
login_name: "",
|
schedule_date: "",
|
||||||
name:"",
|
|
||||||
emp_id:"",
|
|
||||||
mobile:"",
|
|
||||||
email:"",
|
|
||||||
avatar: "",
|
|
||||||
password:"",
|
|
||||||
dept_id: "",
|
|
||||||
role_ids: []
|
|
||||||
},
|
},
|
||||||
//验证规则
|
//验证规则
|
||||||
rules: {
|
rules: {
|
||||||
avatar:[
|
schedule_date: [
|
||||||
{required: true, message: '请上传头像'}
|
{required: true, message: '请输入维修日期'}
|
||||||
],
|
],
|
||||||
login_name: [
|
|
||||||
{required: true, message: '请输入登录账号'}
|
|
||||||
],
|
|
||||||
name: [
|
|
||||||
{required: true, message: '请输入真实姓名'}
|
|
||||||
],
|
|
||||||
emp_id:[
|
|
||||||
{required: true, message: '请输入工号'}
|
|
||||||
],
|
|
||||||
mobile: [
|
|
||||||
{required: true, message: '请输入联系方式'}
|
|
||||||
],
|
|
||||||
email: [
|
|
||||||
{required: true, message: '请输入邮箱地址'}
|
|
||||||
],
|
|
||||||
password: [
|
|
||||||
{required: true, message: '请输入登录密码'},
|
|
||||||
{validator: (rule, value, callback) => {
|
|
||||||
if (this.form.password2 !== '') {
|
|
||||||
this.$refs.dialogForm.validateField('password2');
|
|
||||||
}
|
|
||||||
callback();
|
|
||||||
}}
|
|
||||||
],
|
|
||||||
password_cnf: [
|
|
||||||
{required: true, message: '请再次输入密码'},
|
|
||||||
{validator: (rule, value, callback) => {
|
|
||||||
if (value !== this.form.password) {
|
|
||||||
callback(new Error('两次输入密码不一致!'));
|
|
||||||
}else{
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
],
|
|
||||||
dept_id: [
|
|
||||||
{required: true, message: '请选择所属部门'}
|
|
||||||
],
|
|
||||||
role_ids: [
|
|
||||||
{required: true, message: '请选择所属角色', trigger: 'change'}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
//所需数据选项
|
|
||||||
groups: [],
|
|
||||||
groupsProps: {
|
|
||||||
value: "id",
|
|
||||||
multiple: true,
|
|
||||||
checkStrictly: true
|
|
||||||
},
|
|
||||||
depts: [],
|
|
||||||
deptsProps: {
|
|
||||||
value: "id",
|
|
||||||
checkStrictly: false,
|
|
||||||
emitPath:false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getGroup()
|
|
||||||
this.getDept()
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
//显示
|
//显示
|
||||||
@ -179,28 +49,12 @@ export default {
|
|||||||
this.visible = true;
|
this.visible = true;
|
||||||
return this
|
return this
|
||||||
},
|
},
|
||||||
//加载树数据
|
|
||||||
async getGroup(){
|
|
||||||
const res = await this.$API.system.role.list.get();
|
|
||||||
if(res.code == 200){
|
|
||||||
this.groups = res.data.rows;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async getDept(){
|
|
||||||
const res = await this.$API.system.dept.active.post();
|
|
||||||
if(res.code == 200){
|
|
||||||
this.depts = res.data;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
parentParams(item){
|
|
||||||
this.form.avatar = item;
|
|
||||||
},
|
|
||||||
//表单提交方法
|
//表单提交方法
|
||||||
submit(){
|
submit(){
|
||||||
this.$refs.dialogForm.validate(async (valid) => {
|
this.$refs.dialogForm.validate(async (valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.isSave = true;
|
this.isSave = true;
|
||||||
const res = await this.$API.system.user.add.post(this.form);
|
const res = await this.$API.orders.order.plan.confirm.post(this.form);
|
||||||
this.isSave = false;
|
this.isSave = false;
|
||||||
if(res.code == 200){
|
if(res.code == 200){
|
||||||
this.$emit('success', this.form, this.mode)
|
this.$emit('success', this.form, this.mode)
|
||||||
@ -214,17 +68,7 @@ export default {
|
|||||||
},
|
},
|
||||||
//表单注入数据
|
//表单注入数据
|
||||||
setData(data){
|
setData(data){
|
||||||
this.form.id = data.id
|
this.form.order_ids = data.map(em=>(em.id))
|
||||||
this.form.login_name = data.login_name
|
|
||||||
this.form.name = data.name
|
|
||||||
this.form.emp_id = data.emp_id
|
|
||||||
this.form.mobile = data.mobile
|
|
||||||
this.form.email = data.email
|
|
||||||
this.form.avatar = data.avatar
|
|
||||||
this.form.dept_id = data.dept_id
|
|
||||||
this.form.group = data.group
|
|
||||||
this.form.role_ids = data.user_roles && data.user_roles.role_ids?data.user_roles.role_ids:[]
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-container class="mainBox mainBoxHeaderNoBorder">
|
<el-container class="mainBox mainHeaderNoBorderPadding">
|
||||||
|
<el-header class="header">
|
||||||
|
<div class="left-panel">
|
||||||
|
<el-button type="primary" v-auth="'repairOrderConfirm'" :size="size" icon="sc-icon-ConfirmOrder" @click="confirmOrder">确认工单</el-button>
|
||||||
|
</div>
|
||||||
|
</el-header>
|
||||||
<el-main class="nopadding">
|
<el-main class="nopadding">
|
||||||
<div class="searchMain">
|
<div class="flowPath">
|
||||||
|
<flow :list="flowList"/>
|
||||||
|
</div>
|
||||||
|
<div class="searchMain searchMainNoTop">
|
||||||
<scSearch ref="scSearch" :searchList="searchList" @fetchSelectData="getSelectData"></scSearch>
|
<scSearch ref="scSearch" :searchList="searchList" @fetchSelectData="getSelectData"></scSearch>
|
||||||
|
|
||||||
<div class="searchItem searchBtn">
|
<div class="searchItem searchBtn">
|
||||||
@ -19,14 +27,21 @@
|
|||||||
v-if="item.value == scope.row.business_status">{{item.label}}</span>
|
v-if="item.value == scope.row.business_status">{{item.label}}</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
<template #repair_date="scope">{{scope.row.repair_order && scope.row.repair_order.repair_date?scope.row.repair_order.repair_date:''}}</template>
|
||||||
|
<template #schedule_date="scope">{{scope.row.repair_order && scope.row.repair_order.schedule_date?scope.row.repair_order.schedule_date:''}}</template>
|
||||||
|
<template #repair_status="scope">{{scope.row.repair_order && scope.row.repair_order.repair_status?scope.row.repair_order.repair_status:''}}</template>
|
||||||
<el-table-column label="操作" fixed="right" align="center" width="150">
|
<el-table-column label="操作" fixed="right" align="center" width="150">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-dropdown>
|
<el-dropdown>
|
||||||
<el-button class="noBorderBtn" icon="el-icon-more" :size="size"></el-button>
|
<el-button class="noBorderBtn" icon="el-icon-more" :size="size"></el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item icon="sc-icon-ConfirmOrder" @click="confirmOrderClick">确认工单</el-dropdown-item>
|
<div v-auth="'repairOrderConfirm'">
|
||||||
|
<el-dropdown-item icon="sc-icon-ConfirmOrder" @click="confirmOrderClick(scope.row)">确认工单</el-dropdown-item>
|
||||||
|
</div>
|
||||||
|
<div v-auth="'order_plan_detail'">
|
||||||
<el-dropdown-item @click="table_show(scope.row, 'see')" icon="sc-icon-See">工单详情</el-dropdown-item>
|
<el-dropdown-item @click="table_show(scope.row, 'see')" icon="sc-icon-See">工单详情</el-dropdown-item>
|
||||||
|
</div>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
@ -37,22 +52,27 @@
|
|||||||
</el-container>
|
</el-container>
|
||||||
|
|
||||||
<confirm-dialog v-if="dialog.confirm" ref="confirmDialog" @success="handleSaveSuccess" @closed="dialog.confirm=false"></confirm-dialog>
|
<confirm-dialog v-if="dialog.confirm" ref="confirmDialog" @success="handleSaveSuccess" @closed="dialog.confirm=false"></confirm-dialog>
|
||||||
<!-- <see-dialog v-if="dialog.show" ref="showDialog" @closed="dialog.show=false"></see-dialog>-->
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import flow from '../orderList/components/flow'
|
||||||
import confirmDialog from './confirmOrder'
|
import confirmDialog from './confirmOrder'
|
||||||
// import seeDialog from './see'
|
import {eventBus} from "@/utils/eventBus";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
flow,
|
||||||
confirmDialog,
|
confirmDialog,
|
||||||
// seeDialog,
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
size:'small',
|
size:'small',
|
||||||
|
flowList:[
|
||||||
|
{name:'执行维修',left:false,right:true},
|
||||||
|
{name:'维修中',left:true,right:true},
|
||||||
|
{name:'维修完成',left:true,right:false},
|
||||||
|
],
|
||||||
dialog: {
|
dialog: {
|
||||||
confirm: false,
|
confirm: false,
|
||||||
show: false,
|
show: false,
|
||||||
@ -111,63 +131,22 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
confirmOrder(){
|
||||||
// 数据确认
|
|
||||||
confirmOrderClick(){
|
|
||||||
this.dialog.confirm = true;
|
this.dialog.confirm = true;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.confirmDialog.open()
|
this.$refs.confirmDialog.open('confirm').setData(this.selection)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 数据确认
|
||||||
//编辑
|
confirmOrderClick(row){
|
||||||
table_edit(row){
|
this.dialog.confirm = true;
|
||||||
this.dialog.save = true
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.saveDialog.open('edit').setData(row)
|
this.$refs.confirmDialog.open('confirm').setData([row])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//查看
|
//查看
|
||||||
table_show(row){
|
table_show(row){
|
||||||
this.dialog.show = true
|
eventBus.$emit('tagClose','/order/order-info',{id:row.id});
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$refs.showDialog.open('show').setData(row);
|
|
||||||
})
|
|
||||||
},
|
|
||||||
//删除
|
|
||||||
async table_del(row){
|
|
||||||
this.$confirm(`确定删除 ${row.name} 吗?`, '提示', {
|
|
||||||
type: 'warning'
|
|
||||||
}).then(async () => {
|
|
||||||
const reqData = {id: row.id};
|
|
||||||
const res = await this.$API.system.company.delete.post(reqData);
|
|
||||||
if(res.code == 200){
|
|
||||||
this.$refs.table.refresh()
|
|
||||||
this.$message.success("删除成功")
|
|
||||||
}else{
|
|
||||||
await this.$alert(res.message, "提示", {type: 'error'})
|
|
||||||
}
|
|
||||||
}).catch(()=>{})
|
|
||||||
},
|
|
||||||
// 功能授权
|
|
||||||
table_empower(row){
|
|
||||||
this.$router.push({
|
|
||||||
path: '/setting/company/add-permission',
|
|
||||||
query: {
|
|
||||||
id: row.id,
|
|
||||||
name:row.name
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 公司用户列表
|
|
||||||
table_user_ist(row){
|
|
||||||
this.$router.push({
|
|
||||||
path: '/setting/user/company-user-list',
|
|
||||||
query: {
|
|
||||||
id: row.id,
|
|
||||||
name:row.name
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
//表格选择后回调事件
|
//表格选择后回调事件
|
||||||
selectionChange(selection){
|
selectionChange(selection){
|
||||||
@ -189,6 +168,19 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.mainBox{
|
||||||
|
padding: 0;
|
||||||
|
.header{
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
.searchMain{
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
.scTable{
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
.logoCell{
|
.logoCell{
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|||||||
@ -4,6 +4,27 @@
|
|||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<detailView :data="info">
|
<detailView :data="info">
|
||||||
<template #review>
|
<template #review>
|
||||||
|
<div class="cardItem cardItemNoBorder">
|
||||||
|
<div class="title">维保部件信息</div>
|
||||||
|
<div class="cardBody">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24" :lg="24">
|
||||||
|
<span class="label">验证ERP库存:</span>
|
||||||
|
<span class="text">{{info.is_verify_erp_inventory?'是':'否'}}</span>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
<div class="cardBody">
|
||||||
|
<sc-table ref="table" :data="info.component_info" style="width: 100%;" :hidePagination="true" :hideDo="true" :hideEmpty="true" :size="size">
|
||||||
|
<sc-table-column type="index" label="序号" width="65"></sc-table-column>
|
||||||
|
<sc-table-column prop="component_serial_no" label="部件SN/Sp" :show-overflow-tooltip="true" width="160"></sc-table-column>
|
||||||
|
<sc-table-column prop="component_manufacturer" label="部件厂商" :show-overflow-tooltip="true" width="130"></sc-table-column>
|
||||||
|
<sc-table-column prop="component_model" label="部件型号" :show-overflow-tooltip="true" width="160"></sc-table-column>
|
||||||
|
<sc-table-column prop="component_pn" label="部件PN/Sp" :show-overflow-tooltip="true" width="150"></sc-table-column>
|
||||||
|
<sc-table-column prop="bd_backup_count" label="甚于BD数" :show-overflow-tooltip="true" width="120"></sc-table-column>
|
||||||
|
</sc-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="reviewBox">
|
<div class="reviewBox">
|
||||||
<el-input type="textarea" v-model="opinion" min="4" placeholder="请填写具体原因"></el-input>
|
<el-input type="textarea" v-model="opinion" min="4" placeholder="请填写具体原因"></el-input>
|
||||||
<div class="btnView">
|
<div class="btnView">
|
||||||
@ -35,7 +56,10 @@ export default {
|
|||||||
params:{
|
params:{
|
||||||
order_id:Number(this.$route.query.id)
|
order_id:Number(this.$route.query.id)
|
||||||
},
|
},
|
||||||
info:{}
|
info:{
|
||||||
|
is_verify_erp_inventory:false,
|
||||||
|
component_info:[]
|
||||||
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -52,6 +76,17 @@ export default {
|
|||||||
res.data.process_num = obj.num;
|
res.data.process_num = obj.num;
|
||||||
}
|
}
|
||||||
this.info = res.data;
|
this.info = res.data;
|
||||||
|
if(res.data.component_info.length==0){
|
||||||
|
this.info.component_info = [
|
||||||
|
{
|
||||||
|
component_serial_no:res.data.component_serial_no,
|
||||||
|
component_manufacturer:res.data.component_manufacturer,
|
||||||
|
component_model:res.data.component_model,
|
||||||
|
component_pn:res.data.component_pn,
|
||||||
|
bd_backup_count:res.data.bd_backup_count
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
},
|
},
|
||||||
@ -101,4 +136,7 @@ export default {
|
|||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
display: flex;justify-content: flex-start;
|
display: flex;justify-content: flex-start;
|
||||||
}
|
}
|
||||||
|
.orderMain .footerCard .cardItemNoBorder{
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
<el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button>
|
<el-button :size="size" type="info" icon="el-icon-RefreshRight" @click="reset">重置</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<scTable ref="table" :apiObj="list.apiObj" :column="list.column" row-key="id" stripe :size="size" @selection-change="selectionChange">
|
<scTable ref="table" :apiObj="list.apiObj" :column="list.column" row-key="id" stripe :size="size" :hideTotal="false" @selection-change="selectionChange">
|
||||||
<el-table-column type="selection" align="center" width="40"></el-table-column>
|
<el-table-column type="selection" align="center" width="40"></el-table-column>
|
||||||
<sc-table-column label="序号" align="center" type="index"></sc-table-column>
|
<sc-table-column label="序号" align="center" type="index"></sc-table-column>
|
||||||
<template #repair_status="scope">
|
<template #repair_status="scope">
|
||||||
@ -35,6 +35,14 @@
|
|||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<template #total>
|
||||||
|
<div class="countView">
|
||||||
|
<div class="countItem" v-for="(item,index) in countParams" :key="index">
|
||||||
|
<span class="name">{{item.title}}:</span>
|
||||||
|
<span class="num">{{item.value}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
</scTable>
|
</scTable>
|
||||||
</el-main>
|
</el-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
@ -48,6 +56,7 @@
|
|||||||
// import saveDialog from './save'
|
// import saveDialog from './save'
|
||||||
// import seeDialog from './see'
|
// import seeDialog from './see'
|
||||||
import flow from '../orderList/components/flow'
|
import flow from '../orderList/components/flow'
|
||||||
|
import {eventBus} from "@/utils/eventBus";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
@ -84,12 +93,26 @@ export default {
|
|||||||
],
|
],
|
||||||
params: {},
|
params: {},
|
||||||
statusList:[],
|
statusList:[],
|
||||||
|
countParams:this.$store.state.msg.repair_count
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getStatusList();
|
this.getStatusList();
|
||||||
|
// 获取新消息
|
||||||
|
eventBus.$on('sockBack', this.getWsResult);
|
||||||
|
},
|
||||||
|
unmounted() {
|
||||||
|
// 获取新消息
|
||||||
|
eventBus.$off('sockBack', this.getWsResult);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getWsResult(res){
|
||||||
|
if(res.data && res.data.type == 23){
|
||||||
|
this.$store.commit('set_repair_count',res.data.list_repair_info.repair_count);
|
||||||
|
this.countParams = res.data.list_repair_info.repair_count;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
async getStatusList() {
|
async getStatusList() {
|
||||||
const res = await this.$API.orders.order.maintenance.status.post();
|
const res = await this.$API.orders.order.maintenance.status.post();
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
@ -138,7 +161,10 @@ export default {
|
|||||||
this.$refs.saveDialog.open()
|
this.$refs.saveDialog.open()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
//查看
|
||||||
|
// table_show(row){
|
||||||
|
// eventBus.$emit('tagClose','/order/order-info',{id:row.id});
|
||||||
|
// },
|
||||||
//编辑
|
//编辑
|
||||||
table_edit(row){
|
table_edit(row){
|
||||||
this.dialog.save = true
|
this.dialog.save = true
|
||||||
@ -146,13 +172,6 @@ export default {
|
|||||||
this.$refs.saveDialog.open('edit').setData(row)
|
this.$refs.saveDialog.open('edit').setData(row)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//查看
|
|
||||||
table_show(row){
|
|
||||||
this.dialog.show = true
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$refs.showDialog.open('show').setData(row);
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 删除
|
// 删除
|
||||||
async table_del(row){
|
async table_del(row){
|
||||||
this.$confirm(`确定删除 ${row.name} 吗?`, '提示', {
|
this.$confirm(`确定删除 ${row.name} 吗?`, '提示', {
|
||||||
|
|||||||
@ -2,145 +2,35 @@
|
|||||||
<el-container>
|
<el-container>
|
||||||
<el-main class="orderMain" v-loading="loading" element-loading-text="加载中...">
|
<el-main class="orderMain" v-loading="loading" element-loading-text="加载中...">
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<div class="cardBox">
|
<detailView :data="info">
|
||||||
<div class="headerView">
|
<template #submit>
|
||||||
<div class="title">工单时间</div>
|
|
||||||
<div class="status">
|
|
||||||
<span class="name">当前状态:</span>
|
|
||||||
<span class="text">
|
|
||||||
<span v-for="(item,ind) in 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>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cardBody">
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label">创建时间:</span>
|
|
||||||
<span class="text">{{info.created_at}}</span>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label">PE确认时间:</span>
|
|
||||||
<span class="text">{{info.pe_confirmation_time}}</span>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label">过保时间:</span>
|
|
||||||
<span class="text">{{info.warranty_end_date}}</span>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cardBox footerCard">
|
|
||||||
<div class="cardItem">
|
|
||||||
<div class="title">流程进度</div>
|
|
||||||
<div class="cardBody">
|
|
||||||
<el-steps class="orderSteps" :active="info.process_num" align-center>
|
|
||||||
<el-step :status="item.status" v-for="(item,index) in info.process_engine" :key="index" :title="item.description" />
|
|
||||||
</el-steps>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cardItem">
|
|
||||||
<div class="title">维保单号</div>
|
|
||||||
<div class="cardBody">
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label">维修单号:</span>
|
|
||||||
<span class="text">{{info.repair_order_no}}</span>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cardItem">
|
|
||||||
<div class="title">维保工单信息</div>
|
|
||||||
<div class="cardBody">
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label">维修等级:</span>
|
|
||||||
<span class="text">{{info.maintenance_plan}}</span>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label">维修分类:</span>
|
|
||||||
<span class="text">{{info.maintenance_level}}</span>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :lg="12">
|
|
||||||
<span class="label">故障内容:</span>
|
|
||||||
<span class="text">{{info.fault_description}}</span>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label">故障类型:</span>
|
|
||||||
<span class="text">{{info.fault_type}}</span>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label">维保等级:</span>
|
|
||||||
<span class="text">{{info.maintenance_plan}}</span>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label">是否关机:</span>
|
|
||||||
<span class="text">{{info.requires_shutdown}}</span>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label labelText">机房城市:</span>
|
|
||||||
<span class="text">{{info.city}}</span>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label labelText">园区:</span>
|
|
||||||
<span class="text">{{info.park_name}}</span>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label labelText">机房:</span>
|
|
||||||
<span class="text">{{info.data_center_name}}</span>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label labelText">机架位:</span>
|
|
||||||
<span class="text">{{info.rack_position}}</span>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label labelText">整机SN:</span>
|
|
||||||
<span class="text">{{info.device_sn}}</span>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label labelText">整机厂商:</span>
|
|
||||||
<span class="text">{{info.device_manufacturer}}</span>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8" :lg="6">
|
|
||||||
<span class="label labelText">整机型号:</span>
|
|
||||||
<span class="text">{{info.device_model}}</span>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cardItem">
|
<div class="cardItem">
|
||||||
<div class="title titleFlex">
|
<div class="title titleFlex">
|
||||||
<span class="name">维保部件信息</span>
|
<span class="name">维保部件信息</span>
|
||||||
<el-button type="primary" plain :size="size" icon="el-icon-Plus" @click="addOrder">添加部件信息</el-button>
|
<el-button type="primary" plain :size="size" icon="el-icon-Plus" @click="addOrder">添加部件信息</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24" :lg="24">
|
<el-col :span="24" :lg="24" class="colFlex">
|
||||||
<span class="label labelText">验证ERP库存:</span>
|
<span class="label labelText">验证ERP库存:</span>
|
||||||
<span class="text">{{info.is_verify_erp_inventory?'是':'否'}}</span>
|
<span class="text">
|
||||||
|
<el-radio-group v-model="info.is_verify_erp_inventory">
|
||||||
|
<el-radio :value="true">是</el-radio>
|
||||||
|
<el-radio :value="false">否</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div class="cardBody">
|
<div class="cardBody">
|
||||||
<sc-table ref="table" :data="info.component_info" style="width: 100%;" :hidePagination="true" :hideDo="true" :hideEmpty="true" :size="size">
|
<sc-table ref="table" :data="info.component_info" style="width: 100%;" :hidePagination="true" :hideDo="true" :hideEmpty="true" :size="size">
|
||||||
<sc-table-column type="index" label="序号" width="65"></sc-table-column>
|
<sc-table-column type="index" label="序号" width="65"></sc-table-column>
|
||||||
<sc-table-column prop="component_serial_no" label="部件SN/Sp"></sc-table-column>
|
<sc-table-column prop="component_serial_no" label="部件SN/Sp" :show-overflow-tooltip="true" width="160"></sc-table-column>
|
||||||
<sc-table-column prop="component_manufacturer" label="部件厂商"></sc-table-column>
|
<sc-table-column prop="component_manufacturer" label="部件厂商" :show-overflow-tooltip="true" width="130"></sc-table-column>
|
||||||
<sc-table-column prop="component_model" label="部件型号"></sc-table-column>
|
<sc-table-column prop="component_model" label="部件型号" :show-overflow-tooltip="true" width="160"></sc-table-column>
|
||||||
<sc-table-column prop="component_pn" label="部件PN/Sp"></sc-table-column>
|
<sc-table-column prop="component_pn" label="部件PN/Sp" :show-overflow-tooltip="true" width="150"></sc-table-column>
|
||||||
<sc-table-column prop="sla_expiration" label="SLA截止时间"></sc-table-column>
|
<sc-table-column prop="bd_backup_count" label="甚于BD数" :show-overflow-tooltip="true" width="120"></sc-table-column>
|
||||||
<sc-table-column prop="bd_backup_count" label="甚于BD数"></sc-table-column>
|
|
||||||
<sc-table-column label="操作" fixed="right" width="120">
|
<sc-table-column label="操作" fixed="right" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" :size="size" @click="editOrder(scope.row,scope.$index)">编辑</el-button>
|
||||||
<el-button link type="danger" :size="size" @click="deleteOrder(scope.row,scope.$index)">删除</el-button>
|
<el-button link type="danger" :size="size" @click="deleteOrder(scope.row,scope.$index)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</sc-table-column>
|
</sc-table-column>
|
||||||
@ -150,7 +40,8 @@
|
|||||||
<div class="btnView">
|
<div class="btnView">
|
||||||
<el-button type="primary" :size="size" @click="save" :loading="saveLoading">确认提交</el-button>
|
<el-button type="primary" :size="size" @click="save" :loading="saveLoading">确认提交</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</template>
|
||||||
|
</detailView>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</el-main>
|
</el-main>
|
||||||
</el-container>
|
</el-container>
|
||||||
@ -159,10 +50,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import detailView from "@/views/order/orderList/detailView";
|
||||||
import infoSaveDialog from "@/views/order/components/infoSave";
|
import infoSaveDialog from "@/views/order/components/infoSave";
|
||||||
export default {
|
export default {
|
||||||
name: "",
|
name: "",
|
||||||
components:{
|
components:{
|
||||||
|
detailView,
|
||||||
infoSaveDialog
|
infoSaveDialog
|
||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
@ -171,9 +64,12 @@ export default {
|
|||||||
loading:false,
|
loading:false,
|
||||||
saveLoading:false,
|
saveLoading:false,
|
||||||
params:{
|
params:{
|
||||||
order_id:Number(this.$route.query.id)
|
order_id:Number(this.$route.query.id),
|
||||||
|
},
|
||||||
|
info:{
|
||||||
|
is_verify_erp_inventory:false,
|
||||||
|
component_info:[]
|
||||||
},
|
},
|
||||||
info:{},
|
|
||||||
statusList:[],
|
statusList:[],
|
||||||
|
|
||||||
dialog: {
|
dialog: {
|
||||||
@ -196,6 +92,17 @@ export default {
|
|||||||
res.data.process_num = obj.num;
|
res.data.process_num = obj.num;
|
||||||
}
|
}
|
||||||
this.info = res.data;
|
this.info = res.data;
|
||||||
|
if(res.data.component_info.length==0){
|
||||||
|
this.info.component_info = [
|
||||||
|
{
|
||||||
|
component_serial_no:res.data.component_serial_no,
|
||||||
|
component_manufacturer:res.data.component_manufacturer,
|
||||||
|
component_model:res.data.component_model,
|
||||||
|
component_pn:res.data.component_pn,
|
||||||
|
bd_backup_count:res.data.bd_backup_count
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
},
|
},
|
||||||
@ -218,7 +125,11 @@ export default {
|
|||||||
return obj;
|
return obj;
|
||||||
},
|
},
|
||||||
async save() {
|
async save() {
|
||||||
const params = {order_ids: [this.params.order_id]};
|
const params = {
|
||||||
|
order_ids: [this.params.order_id],
|
||||||
|
is_verify_erp_inventory:this.info.is_verify_erp_inventory,
|
||||||
|
component_info:this.info.component_info
|
||||||
|
};
|
||||||
this.saveLoading = true;
|
this.saveLoading = true;
|
||||||
const res = await this.$API.orders.order.maintenance.submit.post(params);
|
const res = await this.$API.orders.order.maintenance.submit.post(params);
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
@ -238,13 +149,34 @@ export default {
|
|||||||
this.$refs.saveDialog.open()
|
this.$refs.saveDialog.open()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleSaveSuccess(data){
|
handleSaveSuccess(data,mode){
|
||||||
this.form.component_info.push(data);
|
if(mode == 'add'){
|
||||||
|
this.info.component_info.push(data);
|
||||||
|
}
|
||||||
|
if(mode == 'edit'){
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
this.info.component_info.push(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
editOrder(row,num){
|
||||||
|
row.num = num;
|
||||||
|
this.dialog.save = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.saveDialog.open('edit').setData(row);
|
||||||
|
})
|
||||||
},
|
},
|
||||||
deleteOrder(row,num){
|
deleteOrder(row,num){
|
||||||
this.form.component_info.forEach((em,index)=>{
|
this.info.component_info.forEach((em,index)=>{
|
||||||
if(index === num){
|
if(index === num){
|
||||||
this.form.component_info.splice(index,1);
|
this.info.component_info.splice(index,1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -259,4 +191,7 @@ export default {
|
|||||||
.titleFlex{
|
.titleFlex{
|
||||||
display: flex;align-items: stretch;justify-content: space-between;
|
display: flex;align-items: stretch;justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
.colFlex{
|
||||||
|
display: flex;align-items: center;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user