修改工单
This commit is contained in:
parent
9c575ee296
commit
ac7a61b375
@ -105,7 +105,13 @@ export default {
|
||||
return await http.post(this.url, params);
|
||||
},
|
||||
},
|
||||
|
||||
roleUserTree:{
|
||||
url: `${config.API_URL}/roles.user.select.list`,
|
||||
name: "角色用户列表",
|
||||
post: async function (params) {
|
||||
return await http.post(this.url, params);
|
||||
}
|
||||
},
|
||||
roleAuth: {
|
||||
url: `${config.API_URL}/auth.role.auth`,
|
||||
name: "角色授权",
|
||||
|
||||
@ -324,6 +324,7 @@ tool.isBinaryFile = function (file) {
|
||||
tool.authPermissions = function (list){
|
||||
let arr = [];
|
||||
if(list && list.length>0){
|
||||
console.log(list,233)
|
||||
list.forEach(item=>{
|
||||
for(let i in item){
|
||||
if(item[i] && item[i].length>0){
|
||||
|
||||
@ -2,16 +2,28 @@
|
||||
<el-container>
|
||||
<el-main>
|
||||
<el-scrollbar>
|
||||
<el-form ref="form" :size="size" label-width="90px" :model="form">
|
||||
<el-form ref="form" :size="size" :rules="rules" label-width="95px" :model="form">
|
||||
<div class="boxMain">
|
||||
<div class="title">工作时间</div>
|
||||
<div class="boxCom">
|
||||
<el-row>
|
||||
<!-- <el-col :span="8" :lg="6">-->
|
||||
<!-- <el-form-item label="创建时间">-->
|
||||
<!-- <el-date-picker class="input" type="date" value-format="YYYY-MM-DD" placeholder="请选择创建时间"></el-date-picker>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="报修客户" prop="customer">
|
||||
<el-input class="input" type="text" v-model="form.customer" placeholder="请输入报修客户"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="标准机型" prop="standard_model">
|
||||
<el-input class="input" type="text" v-model="form.standard_model" placeholder="请输入标准机型"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="报修日期">
|
||||
<el-date-picker class="input" type="date" value-format="YYYY-MM-DD" placeholder="请选择报修日期"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="PE确认时间" prop="pe_confirmation_time">
|
||||
<el-date-picker class="input" v-model="form.pe_confirmation_time" type="date" value-format="YYYY-MM-DD" placeholder="请选择PE确认时间"></el-date-picker>
|
||||
@ -53,7 +65,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="12">
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="故障内容" prop="fault_description">
|
||||
<el-input class="input" v-model="form.fault_description" type="text" placeholder="请输入维修单号"></el-input>
|
||||
</el-form-item>
|
||||
@ -117,13 +129,13 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="整体厂商" prop="device_manufacturer">
|
||||
<el-input class="input" v-model="form.device_manufacturer" type="text" placeholder="请输入整体厂商"></el-input>
|
||||
<el-form-item label="整机厂商" prop="device_manufacturer">
|
||||
<el-input class="input" v-model="form.device_manufacturer" type="text" placeholder="请输入整机厂商"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="整体型号" prop="device_model">
|
||||
<el-input class="input" v-model="form.device_model" type="text" placeholder="请输入整体型号"></el-input>
|
||||
<el-form-item label="整机型号" prop="device_model">
|
||||
<el-input class="input" v-model="form.device_model" type="text" placeholder="请输入整机型号"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -133,39 +145,56 @@
|
||||
<div class="title">维保工单信息</div>
|
||||
<div class="boxCom">
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="部件SN/Sp" prop="component_serial_no">
|
||||
<el-input class="input" v-model="form.component_serial_no" placeholder="部件SN/Se">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="部件厂商" prop="component_manufacturer">
|
||||
<el-input class="input" v-model="form.component_manufacturer" type="text" placeholder="请输入部件厂商"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="部件型号" prop="component_model">
|
||||
<el-input class="input" v-model="form.component_model" type="text" placeholder="请输入部件型号"></el-input>
|
||||
<el-col :span="25" :lg="24">
|
||||
<el-form-item label="关联ERP" prop="is_verify_erp_inventory">
|
||||
<el-radio-group v-model="form.is_verify_erp_inventory">
|
||||
<el-radio :value="true">是</el-radio>
|
||||
<el-radio :value="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div class="orderView">
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="部件SN/Sp" prop="component_serial_no">
|
||||
<el-input class="input" v-model="form.component_serial_no" placeholder="部件SN/Se"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="部件厂商" prop="component_manufacturer">
|
||||
<el-input class="input" v-model="form.component_manufacturer" type="text" placeholder="请输入部件厂商"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<el-form-item label="部件型号" prop="component_model">
|
||||
<el-input class="input" v-model="form.component_model" type="text" placeholder="请输入部件型号"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<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-form-item>
|
||||
</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截止时间"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<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-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<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-form-item>
|
||||
</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截止时间"></el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<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-col>
|
||||
<div style="padding-left: 105px">
|
||||
<el-button type="primary" size="small" icon="el-icon-Plus"></el-button>
|
||||
<el-button type="danger" size="small" icon="el-icon-Minus"></el-button>
|
||||
</div>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
@ -190,9 +219,11 @@ export default {
|
||||
fault_type:[],
|
||||
},
|
||||
form:{
|
||||
customer:"", // 客户
|
||||
standard_model:"", // 标准机型
|
||||
repair_order_no:"",
|
||||
maintenance_grade:"", // 维修等级
|
||||
maintenance_level: "", // 维修等级
|
||||
maintenance_level: "", // 维修分类
|
||||
fault_type: "", // 故障类型
|
||||
fault_description: "", // 故障描述
|
||||
requires_shutdown: "", // 是否需要关机
|
||||
@ -211,8 +242,27 @@ export default {
|
||||
bd_backup_count: "", // 剩余BD数
|
||||
pe_confirmation_time: "", // PE确认时间
|
||||
warranty_end_date: "", // 保修期结束
|
||||
maintenance_plan: '' // 维保等级:1-铜牌;常量维护项
|
||||
}
|
||||
maintenance_plan: '', // 维保等级:1-铜牌;常量维护项
|
||||
is_verify_erp_inventory:true,
|
||||
component_info:[
|
||||
{
|
||||
component_serial_no:"",
|
||||
component_manufacturer:"",
|
||||
component_model:"",
|
||||
component_pn:""
|
||||
}
|
||||
]
|
||||
},
|
||||
rules:{
|
||||
fault_description:[{required:true,trigger:"blur",message:"故障描述不能为空"}],
|
||||
fault_type:[{required:true,trigger:"change",message:"故障类型不能为空"}],
|
||||
city:[{required:true,trigger:"blur",message:"机房城市不能为空"}],
|
||||
device_sn:[{required:true,trigger:"blur",message:"整机SN/Se不能为空"}],
|
||||
device_manufacturer:[{required:true,trigger:"blur",message:"整机厂商不能为空"}],
|
||||
device_model:[{required:true,trigger:"blur",message:"整机型号不能为空"}],
|
||||
sla_expiration:[{required:true,trigger:"change",message:"SLA截止时间不能为空"}],
|
||||
bd_backup_count:[{required:true,trigger:"blur",message:"剩余BD数不能为空"}],
|
||||
},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
@ -14,10 +14,20 @@
|
||||
</div>
|
||||
<div class="cardBody">
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="label">报修客户:</span>
|
||||
<span class="text">{{info.customer}}</span>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="label">标准机型:</span>
|
||||
<span class="text">{{info.standard_model}}</span>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="label">创建时间:</span>
|
||||
<span class="text">{{info.created_at}}</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="label">PE确认时间:</span>
|
||||
<span class="text">{{info.pe_confirmation_time}}</span>
|
||||
@ -54,7 +64,7 @@
|
||||
<div class="cardBody">
|
||||
<el-row>
|
||||
<el-col :span="8" :lg="6">
|
||||
<span class="label">维修等级:</span>
|
||||
<span class="label">维修单等级:</span>
|
||||
<span class="text">{{info.maintenance_plan}}</span>
|
||||
</el-col>
|
||||
<el-col :span="8" :lg="6">
|
||||
|
||||
@ -11,9 +11,9 @@
|
||||
<div v-auth="'maintenanceOrderImport'" @click="importTemplate">下载导入模版</div>
|
||||
</template>
|
||||
</scImport>
|
||||
<el-button type="primary" v-auth="'maintenanceOrderSubmit'" plain :size="size" :disabled="selection.length==0" @click="save_maintenance">提交维保</el-button>
|
||||
<el-button type="primary" v-auth="'maintenanceOrderSubmit'" plain :size="size" :disabled="selection.length!=1" @click="save_maintenance">提交维保</el-button>
|
||||
<el-button type="success" v-auth="'maintenanceOrderApproval'" :size="size" icon="sc-icon-OrderReview" :disabled="selection.length==0" @click="batch_review">批量审核</el-button>
|
||||
<el-button type="primary" v-auth="'maintenanceOrderSend'" plain :size="size" :disabled="selection.length==0" @click="issued_maintenance">下发维保</el-button>
|
||||
<!-- <el-button type="primary" v-auth="'maintenanceOrderSend'" plain :size="size" :disabled="selection.length==0" @click="issued_maintenance">下发维保</el-button>-->
|
||||
<el-button type="danger" v-auth="'maintenanceOrderDelete'" plain :size="size" icon="el-icon-Delete" :disabled="selection.length==0" @click="batch_del"></el-button>
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
@ -53,6 +53,9 @@
|
||||
<div v-auth="'maintenanceOrderAdd'">
|
||||
<el-dropdown-item @click="table_edit(scope.row)" icon="sc-icon-Edit">编辑工单</el-dropdown-item>
|
||||
</div>
|
||||
<div v-auth="'maintenanceOrderSubmit'">
|
||||
<el-dropdown-item icon="sc-icon-SaveMaintenance" @click="table_submit(scope.row)">提交维保</el-dropdown-item>
|
||||
</div>
|
||||
<div v-auth="'maintenanceOrderDelete'">
|
||||
<el-dropdown-item @click="table_del(scope.row)" icon="sc-icon-Delete">删除工单</el-dropdown-item>
|
||||
</div>
|
||||
@ -62,12 +65,9 @@
|
||||
<div v-auth="'maintenanceOrderDetail'">
|
||||
<el-dropdown-item @click="table_show(scope.row)" icon="sc-icon-See">工单详情</el-dropdown-item>
|
||||
</div>
|
||||
<div v-auth="'maintenanceOrderSubmit'">
|
||||
<el-dropdown-item icon="sc-icon-SaveMaintenance" @click="table_submit(scope.row)" divided>提交维保</el-dropdown-item>
|
||||
</div>
|
||||
<div v-auth="'maintenanceOrderSend'">
|
||||
<el-dropdown-item icon="sc-icon-OrderMaintenance" @click="table_send(scope.row)">下发维保</el-dropdown-item>
|
||||
</div>
|
||||
<!-- <div v-auth="'maintenanceOrderSend'">-->
|
||||
<!-- <el-dropdown-item icon="sc-icon-OrderMaintenance" @click="table_send(scope.row)">下发维保</el-dropdown-item>-->
|
||||
<!-- </div>-->
|
||||
<div v-auth="'orderLogsList'">
|
||||
<el-dropdown-item icon="sc-icon-OrderLog" @click="table_logs(scope.row)" divided>工单日志</el-dropdown-item>
|
||||
</div>
|
||||
@ -274,12 +274,14 @@ export default {
|
||||
})
|
||||
},
|
||||
async save_maintenance() {
|
||||
const params = {order_ids: this.selection.map(em => em.id)};
|
||||
const res = await this.$API.orders.order.maintenance.submit.post(params);
|
||||
if (res.code == 200) {
|
||||
this.$refs.table.refresh();
|
||||
this.$message.success("操作成功")
|
||||
}
|
||||
eventBus.$emit('tagClose','/order/submit-order',{id:this.selection.map(em => em.id)[0]});
|
||||
|
||||
// const params = {order_ids: this.selection.map(em => em.id)};
|
||||
// const res = await this.$API.orders.order.maintenance.submit.post(params);
|
||||
// if (res.code == 200) {
|
||||
// this.$refs.table.refresh();
|
||||
// this.$message.success("操作成功")
|
||||
// }
|
||||
},
|
||||
async issued_maintenance() {
|
||||
const params = {order_ids: this.selection.map(em => em.id)};
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<script>
|
||||
import detailView from "@/views/order/orderList/detailView";
|
||||
export default {
|
||||
name: "preview-order",
|
||||
name: "",
|
||||
components:{
|
||||
detailView
|
||||
},
|
||||
|
||||
@ -60,8 +60,8 @@
|
||||
>
|
||||
<div class="bodyView">
|
||||
<div class="viewLeft">
|
||||
<div class="viewTitle">部门</div>
|
||||
<div class="viewCom">
|
||||
<div class="viewTitle">成员</div>
|
||||
<div class="viewCom" element-loading-text="加载中..." v-loading="userLoading">
|
||||
<el-scrollbar>
|
||||
<treeUser class="treeUser" ref="treeList" :data="deptTree" :userIds="userIds" @roleChecked="roleChecked" />
|
||||
</el-scrollbar>
|
||||
@ -102,7 +102,7 @@
|
||||
import dataTree from "./dataTree";
|
||||
import dataPermissions from "./dataPermissions";
|
||||
import members from "./members";
|
||||
import treeUser from "./tree"
|
||||
import treeUser from "./userTree"
|
||||
import roleSort from "./roleSort";
|
||||
|
||||
export default {
|
||||
@ -160,6 +160,7 @@
|
||||
isMember:false,
|
||||
userCheckList:[],
|
||||
userIds:[],
|
||||
userLoading:false,
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -424,13 +425,15 @@
|
||||
},
|
||||
async getDeptTree() {
|
||||
this.memberShow = true;
|
||||
const res = await this.$API.system.role.tree.post();
|
||||
this.userLoading = true;
|
||||
const res = await this.$API.system.role.roleUserTree.post();
|
||||
this.deptTree = this.treeShow(res.data);
|
||||
this.userLoading = false;
|
||||
},
|
||||
// 数据增加收起
|
||||
treeShow(list){
|
||||
list.forEach(item=>{
|
||||
item.isOpen = false;
|
||||
item.isOpen = true;
|
||||
if(item.children){
|
||||
this.treeShow(item.children)
|
||||
}
|
||||
@ -483,6 +486,7 @@
|
||||
user_ids:ids,
|
||||
role_id:this.role_id
|
||||
}
|
||||
this.roleUserLoading = true;
|
||||
const res = await this.$API.system.role.roleUserDel.post(params);
|
||||
if(res.code == 200){
|
||||
await this.getRoleList();
|
||||
|
||||
129
src/views/setting/role/userTree.vue
Normal file
129
src/views/setting/role/userTree.vue
Normal file
@ -0,0 +1,129 @@
|
||||
<template>
|
||||
<!-- 自定义表格 -->
|
||||
<div class="tableBody">
|
||||
<div class="tr" v-for="(item,index) in data" :key="index">
|
||||
<div class="td tdUser">
|
||||
<div :class="userChecked(userIds,item)?'userList':'userList userChecked'" @click="roleChecked(item)">
|
||||
<div class="userName">
|
||||
<div class="avatar">{{ userAvatar(item) }}</div>
|
||||
<div class="name">{{item.name}}</div>
|
||||
</div>
|
||||
<div class="userBtn" v-if="!userChecked(userIds,item)"><el-icon-Check></el-icon-Check></div>
|
||||
</div>
|
||||
</div>
|
||||
<template v-if="item.children && item.isOpen">
|
||||
<treeDept class="td tdCom" :data="item.children" :userIds="userIds" @roleChecked="roleChecked" />
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name:'treeDept',
|
||||
data() {
|
||||
return {
|
||||
size: "small",
|
||||
isShow:true,
|
||||
};
|
||||
},
|
||||
props:{
|
||||
data:{
|
||||
type:Array,
|
||||
required: true
|
||||
},
|
||||
userIds:{
|
||||
type:Array
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
|
||||
},
|
||||
computed:{
|
||||
|
||||
},
|
||||
methods:{
|
||||
userAvatar(row) {
|
||||
return row.name.substring(0, 1)
|
||||
},
|
||||
userChecked(arr,em){
|
||||
return arr.indexOf(em.id)!=-1?false:true
|
||||
},
|
||||
roleChecked(em){
|
||||
this.$emit('roleChecked',em);
|
||||
},
|
||||
openFile(item){
|
||||
this.$nextTick(()=>{
|
||||
item.isOpen = !item.isOpen;
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.tableBody .tr{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
justify-content: space-between;
|
||||
.td{
|
||||
padding: 3px 0 3px 12px;
|
||||
}
|
||||
.td:first-child{
|
||||
border-left: 0;
|
||||
}
|
||||
.tdTitle{
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
cursor: pointer;
|
||||
.file{
|
||||
width: 14px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
.tdUser{
|
||||
.userList{
|
||||
padding:4px 0 4px 12px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.userName{
|
||||
flex: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
.avatar{
|
||||
background: var(--el-text-color-disabled);
|
||||
color: var(--el-color-white);
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
height: 21px;
|
||||
width: 21px;
|
||||
text-align: center;
|
||||
line-height: 21px;
|
||||
}
|
||||
.name{
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
.userBtn{
|
||||
flex-basis: 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.userChecked{
|
||||
color: var(--el-color-primary);
|
||||
.userName{
|
||||
.avatar{
|
||||
background:var(--el-color-primary);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.tableBody .tr:last-child{
|
||||
border-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
@ -52,7 +52,7 @@
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "view-permission",
|
||||
name: "",
|
||||
data(){
|
||||
return{
|
||||
size:'default',
|
||||
|
||||
Loading…
Reference in New Issue
Block a user