修改维保计划和维修列表
This commit is contained in:
@@ -177,16 +177,13 @@
|
||||
|
||||
async setLoginData(user) {
|
||||
this.$TOOL.cookie.set("TOKEN", user.data.token, {
|
||||
expires: this.form.autologin ? 24 * 60 * 60 : 0
|
||||
expires: 0
|
||||
})
|
||||
this.$TOOL.data.set("USER_INFO", user.data.user)
|
||||
if(user.data.user.avatar!=''){
|
||||
this.$store.commit("SET_LOGIN_AVATAR", user.data.user.avatar);
|
||||
}
|
||||
this.$store.commit("SET_LOGIN_NAME", user.data.user.name);
|
||||
// 创建WebSocket连接
|
||||
// let global_callback = function () {};
|
||||
// this.$socketApi.createWebSocket(global_callback, user.data.token);
|
||||
|
||||
//获取菜单
|
||||
let menu = null;
|
||||
@@ -243,9 +240,9 @@
|
||||
userHandle:this.bufferToBase64URL(assertion.response.userHandle),
|
||||
}
|
||||
}
|
||||
const res = await this.$API.system.user.verifyAuthentication.post(params);
|
||||
if(res.code == 200){
|
||||
await this.setLoginData(res);
|
||||
const user = await this.$API.system.user.verifyAuthentication.post(params);
|
||||
if(user.code == 200){
|
||||
await this.setLoginData(user);
|
||||
}
|
||||
},
|
||||
bufferToBase64URL(buffer) {
|
||||
|
||||
@@ -1,25 +1,7 @@
|
||||
<template>
|
||||
<el-container class="mainBox mainHeaderNoBorderPadding">
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<el-button type="primary" :size="size" icon="el-icon-plus" @click="add">新增工单</el-button>
|
||||
<scImport ref="scImport" :size="size" title="批量导入维保工单" @parentParams="importUpload" @importSuccess="importSuccess">
|
||||
<template #header>
|
||||
<el-button v-auth="'organizationImport'" type="primary" :size="size" plain @click="importFile">批量导入</el-button>
|
||||
</template>
|
||||
<template #download>
|
||||
<div v-auth="'companyImportTemplate'" @click="importTemplate">下载导入模版</div>
|
||||
</template>
|
||||
</scImport>
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<scExport :size="size" @exportData="exportData" @updateShow="exportChangeShow" :show="exportShow" type="11">
|
||||
<el-button :size="size" icon="sc-icon-Download" @click="exportData">下载</el-button>
|
||||
</scExport>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-container class="mainBox mainBoxHeaderNoBorder">
|
||||
<el-main class="nopadding">
|
||||
<div class="searchMain searchMainNoTop">
|
||||
<div class="searchMain">
|
||||
<scSearch ref="scSearch" :searchList="searchList" @fetchSelectData="getSelectData"></scSearch>
|
||||
|
||||
<div class="searchItem searchBtn">
|
||||
@@ -49,12 +31,8 @@
|
||||
<el-button class="noBorderBtn" icon="el-icon-more" :size="size"></el-button>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item @click="table_show(scope.row, 'see')" icon="sc-icon-See">查看详情</el-dropdown-item>
|
||||
<el-dropdown-item @click="table_edit(scope.row, 'edit')" icon="sc-icon-Edit">编辑公司</el-dropdown-item>
|
||||
<el-dropdown-item icon="sc-icon-AbilityAuthorization" @click="table_empower(scope.row)" divided>功能授权</el-dropdown-item>
|
||||
<el-dropdown-item icon="sc-icon-DataAuthorization">数据授权</el-dropdown-item>
|
||||
<el-dropdown-item icon="sc-icon-UserList" @click="table_user_ist(scope.row)" divided>用户列表</el-dropdown-item>
|
||||
<el-dropdown-item @click="table_del(scope.row, 'delete')" icon="sc-icon-Delete">删除公司</el-dropdown-item>
|
||||
<el-dropdown-item icon="sc-icon-ConfirmOrder">确认工单</el-dropdown-item>
|
||||
<el-dropdown-item @click="table_show(scope.row, 'see')" icon="sc-icon-See">工单详情</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
@@ -93,16 +71,12 @@ export default {
|
||||
exportShow:false,
|
||||
searchShow:false,
|
||||
searchList:[
|
||||
{name:'生产日期',type:'date',code:'activation_date'},
|
||||
{name:'反厂日期',type:'date',code:'activation_date'},
|
||||
{name:'处理时间',type:'date',code:'activation_date'},
|
||||
{name:'客户名称',type:'multiple',code:'id', data:[], placeholder:"请选择公司名称",show:false},
|
||||
{name:'状态',type:'select',code:'active_status', data:[], placeholder:"请选择状态",show:false},
|
||||
{name:'工单号',type:'text',code:['mobile'],placeholder:"请输入手机号",isOpen:true,show:false},
|
||||
{name:'邮件地址',type:'text',code:['email'],placeholder:"请输入邮箱地址",isOpen:true,show:false},
|
||||
{name:'公司地址',type:'text',code:['address'],placeholder:"请输入公司地址",isOpen:true,show:false},
|
||||
{name:'负责人',type:'text',code:['owner'],placeholder:"请输入负责人",isOpen:true,show:false},
|
||||
{name:'关键字',type:'text',code:['domain','name'],keyword:true,show:true},
|
||||
{name:'维修单号',type:'text',code:'repair_order_no', data:[], placeholder:"请输入维修单号",show:true},
|
||||
{name:'故障类型',type:'select',code:'fault_type', data:[], placeholder:"请选择故障类型",show:true},
|
||||
{name:'整机型号',type:'select',code:'repair_status', data:[], placeholder:"请选择整机型号",isOpen:true,show:true},
|
||||
{name:'园区名称',type:'select',code:'repair_status', data:[], placeholder:"请选择园区名称",isOpen:true,show:false},
|
||||
{name:'故障描述',type:'text',code:['fault_description'],placeholder:"请输故障描述",isOpen:true,show:false},
|
||||
{name:'关键字',type:'text',code:['fault_description','device_sn'],keyword:true,show:true},
|
||||
],
|
||||
params: {},
|
||||
}
|
||||
|
||||
@@ -1,24 +1,9 @@
|
||||
<template>
|
||||
<el-container class="mainBox mainHeaderNoBorderPadding">
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<el-button type="primary" :size="size" icon="el-icon-plus" @click="add">新增维修</el-button>
|
||||
<scImport ref="scImport" :size="size" title="批量导入维修工单" @parentParams="importUpload" @importSuccess="importSuccess">
|
||||
<template #header>
|
||||
<el-button v-auth="'organizationImport'" type="primary" :size="size" plain @click="importFile">批量导入</el-button>
|
||||
</template>
|
||||
<template #download>
|
||||
<div v-auth="'companyImportTemplate'" @click="importTemplate">下载导入模版</div>
|
||||
</template>
|
||||
</scImport>
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<scExport :size="size" @exportData="exportData" @updateShow="exportChangeShow" :show="exportShow" type="11">
|
||||
<el-button :size="size" icon="sc-icon-Download" @click="exportData">下载</el-button>
|
||||
</scExport>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<div class="flowPath">
|
||||
<flow :list="flowList"/>
|
||||
</div>
|
||||
<div class="searchMain searchMainNoTop">
|
||||
<scSearch ref="scSearch" :searchList="searchList" @fetchSelectData="getSelectData"></scSearch>
|
||||
|
||||
@@ -41,7 +26,10 @@
|
||||
</el-image>
|
||||
</template>
|
||||
<template #repair_status="scope">
|
||||
<el-switch :size="size" v-model="scope.row.active_status" @change="changeSwitch($event, scope.row)" :loading="scope.row.$switch_status" :active-value="true" :inactive-value="false"></el-switch>
|
||||
<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-4)`}"
|
||||
v-if="item.value == scope.row.repair_status">{{item.label}}</span>
|
||||
</span>
|
||||
</template>
|
||||
<el-table-column label="操作" fixed="right" align="center" width="150">
|
||||
<template #default="scope">
|
||||
@@ -49,12 +37,8 @@
|
||||
<el-button class="noBorderBtn" icon="el-icon-more" :size="size"></el-button>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item @click="table_show(scope.row, 'see')" icon="sc-icon-See">查看详情</el-dropdown-item>
|
||||
<el-dropdown-item @click="table_edit(scope.row, 'edit')" icon="sc-icon-Edit">编辑公司</el-dropdown-item>
|
||||
<el-dropdown-item icon="sc-icon-AbilityAuthorization" @click="table_empower(scope.row)" divided>功能授权</el-dropdown-item>
|
||||
<el-dropdown-item icon="sc-icon-DataAuthorization">数据授权</el-dropdown-item>
|
||||
<el-dropdown-item icon="sc-icon-UserList" @click="table_user_ist(scope.row)" divided>用户列表</el-dropdown-item>
|
||||
<el-dropdown-item @click="table_del(scope.row, 'delete')" icon="sc-icon-Delete">删除公司</el-dropdown-item>
|
||||
<el-dropdown-item icon="sc-icon-MaintenanceSetup">执行维修</el-dropdown-item>
|
||||
<el-dropdown-item @click="table_show(scope.row, 'see')" icon="sc-icon-See">工单详情</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
@@ -72,15 +56,22 @@
|
||||
<script>
|
||||
// import saveDialog from './save'
|
||||
// import seeDialog from './see'
|
||||
import flow from '../orderList/components/flow'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
flow,
|
||||
// saveDialog,
|
||||
// seeDialog,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
size:'small',
|
||||
flowList:[
|
||||
{name:'维修确认',left:false,right:true},
|
||||
{name:'维修中',left:true,right:true},
|
||||
{name:'维修完成',left:true,right:false},
|
||||
],
|
||||
dialog: {
|
||||
save: false,
|
||||
show: false,
|
||||
@@ -93,18 +84,28 @@ export default {
|
||||
exportShow:false,
|
||||
searchShow:false,
|
||||
searchList:[
|
||||
{name:'创建日期',type:'date',code:'activation_date'},
|
||||
{name:'创建日期',type:'date',code:'activation_date',show:true},
|
||||
{name:'维修单号',type:'text',code:'repair_order_no', data:[], placeholder:"请输入维修单号",show:true},
|
||||
{name:'故障类型',type:'select',code:'fault_type', data:[], placeholder:"请选择故障类型",show:true},
|
||||
{name:'状态',type:'select',code:'repair_status', data:[], placeholder:"请选择状态",show:true},
|
||||
{name:'状态',type:'select',code:'repair_status', data:[], placeholder:"请选择状态",isOpen:true,show:false},
|
||||
{name:'故障描述',type:'text',code:['fault_description'],placeholder:"请输故障描述",isOpen:true,show:false},
|
||||
{name:'整机SN',type:'text',code:['device_sn'],placeholder:"请输入整机SN",isOpen:true,show:false},
|
||||
{name:'关键字',type:'text',code:['fault_description','device_sn'],keyword:true,show:true},
|
||||
],
|
||||
params: {},
|
||||
statusList:[],
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getStatusList();
|
||||
},
|
||||
methods: {
|
||||
async getStatusList() {
|
||||
const res = await this.$API.orders.order.maintenance.status.post();
|
||||
if (res.code == 200) {
|
||||
this.statusList = res.data;
|
||||
}
|
||||
},
|
||||
|
||||
searchShowClick(){
|
||||
this.searchShow = !this.searchShow;
|
||||
this.searchList.forEach(item=>{
|
||||
@@ -138,16 +139,6 @@ export default {
|
||||
})
|
||||
}
|
||||
},
|
||||
async getStatusList(data,params) {
|
||||
const res = await this.$API.oss.status.post(params);
|
||||
if(res.code == 200){
|
||||
this.searchList.forEach(item=>{
|
||||
if(item.code == data.code){
|
||||
item.data = res.data;
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
//添加
|
||||
add(){
|
||||
@@ -157,35 +148,6 @@ export default {
|
||||
})
|
||||
},
|
||||
|
||||
// 批量导入
|
||||
importFile(){
|
||||
this.$nextTick(()=>{
|
||||
this.$refs.scImport.importFile();
|
||||
})
|
||||
},
|
||||
async importTemplate() {
|
||||
const res = await this.$API.orders.order.maintenance.template.post();
|
||||
const blob = new Blob([res]);
|
||||
const text = new Date().getTime();
|
||||
const eLink = document.createElement('a');
|
||||
eLink.download = "维保导入模版_"+text+'.xlsx';
|
||||
eLink.style.display = 'none';
|
||||
eLink.href = URL.createObjectURL(blob);
|
||||
document.body.appendChild(eLink);
|
||||
eLink.click();
|
||||
URL.revokeObjectURL(eLink.href);
|
||||
document.body.removeChild(eLink);
|
||||
},
|
||||
async importUpload(params) {
|
||||
const res = await this.$API.orders.order.maintenance.import.post(params);
|
||||
if(res.code == 200){
|
||||
this.$message.success('上传成功,开始导入数据');
|
||||
}
|
||||
},
|
||||
importSuccess(){
|
||||
this.$refs.table.refresh()
|
||||
},
|
||||
|
||||
//编辑
|
||||
table_edit(row){
|
||||
this.dialog.save = true
|
||||
@@ -200,7 +162,7 @@ export default {
|
||||
this.$refs.showDialog.open('show').setData(row);
|
||||
})
|
||||
},
|
||||
//删除
|
||||
// 删除
|
||||
async table_del(row){
|
||||
this.$confirm(`确定删除 ${row.name} 吗?`, '提示', {
|
||||
type: 'warning'
|
||||
@@ -215,59 +177,12 @@ export default {
|
||||
}
|
||||
}).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){
|
||||
this.selection = selection;
|
||||
},
|
||||
// 状态
|
||||
changeSwitch(val, row) {
|
||||
row.$switch_yx = true;
|
||||
setTimeout(async () => {
|
||||
let params = {
|
||||
id: row.id,
|
||||
status: row.active_status,
|
||||
};
|
||||
const res = await this.$API.system.company.status.post(params);
|
||||
if(res.code !=200){
|
||||
row.active_status = !row.active_status;
|
||||
}
|
||||
delete row.$switch_status;
|
||||
delete row.$switch_yx;
|
||||
}, 500);
|
||||
},
|
||||
// 下载导出
|
||||
exportChangeShow(params){
|
||||
if(params.type == 11){
|
||||
this.exportShow = params.status==0?true:false
|
||||
}
|
||||
},
|
||||
async exportData() {
|
||||
if(this.exportShow) return
|
||||
const res = await this.$API.orders.order.maintenance.export.post(this.params);
|
||||
if(res.code == 200){
|
||||
this.$message.success('开始导出');
|
||||
}
|
||||
},
|
||||
|
||||
upSearch(){
|
||||
this.$refs.table.upData(this.params);
|
||||
},
|
||||
@@ -284,6 +199,16 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.mainBox{
|
||||
padding:10px 0 0 0;
|
||||
.searchMain{
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.scTable{
|
||||
padding: 0 10px;
|
||||
}
|
||||
}
|
||||
.logoCell{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -179,13 +179,13 @@
|
||||
this.showGroupLoading = false;
|
||||
if(res.code == 200){
|
||||
this.group = res.data.rows;
|
||||
if(flag){
|
||||
await this.getMenu();
|
||||
await this.getRoleList();
|
||||
await this.getDataList();
|
||||
}
|
||||
if(res.data.rows && res.data.rows.length>0){
|
||||
this.role_id = res.data.rows[0].id;
|
||||
if(flag){
|
||||
await this.getMenu();
|
||||
await this.getRoleList();
|
||||
await this.getDataList();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user