修改维保计划和维修列表

This commit is contained in:
龙运模
2024-09-01 16:28:15 +08:00
parent 4638a5c862
commit 39979c262a
7 changed files with 89 additions and 165 deletions
+4 -7
View File
@@ -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) {
+10 -36
View File
@@ -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: {},
}
+42 -117
View File
@@ -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;
+5 -5
View File
@@ -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();
}
}
}
},