修改工单
This commit is contained in:
parent
9c575ee296
commit
ac7a61b375
@ -105,7 +105,13 @@ export default {
|
|||||||
return await http.post(this.url, params);
|
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: {
|
roleAuth: {
|
||||||
url: `${config.API_URL}/auth.role.auth`,
|
url: `${config.API_URL}/auth.role.auth`,
|
||||||
name: "角色授权",
|
name: "角色授权",
|
||||||
|
|||||||
@ -324,6 +324,7 @@ tool.isBinaryFile = function (file) {
|
|||||||
tool.authPermissions = function (list){
|
tool.authPermissions = function (list){
|
||||||
let arr = [];
|
let arr = [];
|
||||||
if(list && list.length>0){
|
if(list && list.length>0){
|
||||||
|
console.log(list,233)
|
||||||
list.forEach(item=>{
|
list.forEach(item=>{
|
||||||
for(let i in item){
|
for(let i in item){
|
||||||
if(item[i] && item[i].length>0){
|
if(item[i] && item[i].length>0){
|
||||||
|
|||||||
@ -2,16 +2,28 @@
|
|||||||
<el-container>
|
<el-container>
|
||||||
<el-main>
|
<el-main>
|
||||||
<el-scrollbar>
|
<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="boxMain">
|
||||||
<div class="title">工作时间</div>
|
<div class="title">工作时间</div>
|
||||||
<div class="boxCom">
|
<div class="boxCom">
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- <el-col :span="8" :lg="6">-->
|
<el-col :span="8" :lg="6">
|
||||||
<!-- <el-form-item label="创建时间">-->
|
<el-form-item label="报修客户" prop="customer">
|
||||||
<!-- <el-date-picker class="input" type="date" value-format="YYYY-MM-DD" placeholder="请选择创建时间"></el-date-picker>-->
|
<el-input class="input" type="text" v-model="form.customer" placeholder="请输入报修客户"></el-input>
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
<!-- </el-col>-->
|
</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-col :span="8" :lg="6">
|
||||||
<el-form-item label="PE确认时间" prop="pe_confirmation_time">
|
<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>
|
<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-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8" :lg="12">
|
<el-col :span="8" :lg="6">
|
||||||
<el-form-item label="故障内容" prop="fault_description">
|
<el-form-item label="故障内容" prop="fault_description">
|
||||||
<el-input class="input" v-model="form.fault_description" type="text" placeholder="请输入维修单号"></el-input>
|
<el-input class="input" v-model="form.fault_description" type="text" placeholder="请输入维修单号"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -117,13 +129,13 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8" :lg="6">
|
<el-col :span="8" :lg="6">
|
||||||
<el-form-item label="整体厂商" prop="device_manufacturer">
|
<el-form-item label="整机厂商" prop="device_manufacturer">
|
||||||
<el-input class="input" v-model="form.device_manufacturer" type="text" placeholder="请输入整体厂商"></el-input>
|
<el-input class="input" v-model="form.device_manufacturer" type="text" placeholder="请输入整机厂商"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8" :lg="6">
|
<el-col :span="8" :lg="6">
|
||||||
<el-form-item label="整体型号" prop="device_model">
|
<el-form-item label="整机型号" prop="device_model">
|
||||||
<el-input class="input" v-model="form.device_model" type="text" placeholder="请输入整体型号"></el-input>
|
<el-input class="input" v-model="form.device_model" type="text" placeholder="请输入整机型号"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -133,39 +145,56 @@
|
|||||||
<div class="title">维保工单信息</div>
|
<div class="title">维保工单信息</div>
|
||||||
<div class="boxCom">
|
<div class="boxCom">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8" :lg="6">
|
<el-col :span="25" :lg="24">
|
||||||
<el-form-item label="部件SN/Sp" prop="component_serial_no">
|
<el-form-item label="关联ERP" prop="is_verify_erp_inventory">
|
||||||
<el-input class="input" v-model="form.component_serial_no" placeholder="部件SN/Se">
|
<el-radio-group v-model="form.is_verify_erp_inventory">
|
||||||
</el-input>
|
<el-radio :value="true">是</el-radio>
|
||||||
</el-form-item>
|
<el-radio :value="false">否</el-radio>
|
||||||
</el-col>
|
</el-radio-group>
|
||||||
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</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-row>
|
||||||
<el-col :span="8" :lg="6">
|
<div style="padding-left: 105px">
|
||||||
<el-form-item label="部件PN/Sp" prop="component_pn">
|
<el-button type="primary" size="small" icon="el-icon-Plus"></el-button>
|
||||||
<el-input class="input" v-model="form.component_pn" type="text" placeholder="请输入部件SN/Sp"></el-input>
|
<el-button type="danger" size="small" icon="el-icon-Minus"></el-button>
|
||||||
</el-form-item>
|
</div>
|
||||||
</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>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -190,9 +219,11 @@ export default {
|
|||||||
fault_type:[],
|
fault_type:[],
|
||||||
},
|
},
|
||||||
form:{
|
form:{
|
||||||
|
customer:"", // 客户
|
||||||
|
standard_model:"", // 标准机型
|
||||||
repair_order_no:"",
|
repair_order_no:"",
|
||||||
maintenance_grade:"", // 维修等级
|
maintenance_grade:"", // 维修等级
|
||||||
maintenance_level: "", // 维修等级
|
maintenance_level: "", // 维修分类
|
||||||
fault_type: "", // 故障类型
|
fault_type: "", // 故障类型
|
||||||
fault_description: "", // 故障描述
|
fault_description: "", // 故障描述
|
||||||
requires_shutdown: "", // 是否需要关机
|
requires_shutdown: "", // 是否需要关机
|
||||||
@ -211,8 +242,27 @@ export default {
|
|||||||
bd_backup_count: "", // 剩余BD数
|
bd_backup_count: "", // 剩余BD数
|
||||||
pe_confirmation_time: "", // PE确认时间
|
pe_confirmation_time: "", // PE确认时间
|
||||||
warranty_end_date: "", // 保修期结束
|
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() {
|
mounted() {
|
||||||
|
|||||||
@ -14,10 +14,20 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="cardBody">
|
<div class="cardBody">
|
||||||
<el-row>
|
<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">
|
<el-col :span="8" :lg="6">
|
||||||
<span class="label">创建时间:</span>
|
<span class="label">创建时间:</span>
|
||||||
<span class="text">{{info.created_at}}</span>
|
<span class="text">{{info.created_at}}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
<el-col :span="8" :lg="6">
|
<el-col :span="8" :lg="6">
|
||||||
<span class="label">PE确认时间:</span>
|
<span class="label">PE确认时间:</span>
|
||||||
<span class="text">{{info.pe_confirmation_time}}</span>
|
<span class="text">{{info.pe_confirmation_time}}</span>
|
||||||
@ -54,7 +64,7 @@
|
|||||||
<div class="cardBody">
|
<div class="cardBody">
|
||||||
<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.maintenance_plan}}</span>
|
<span class="text">{{info.maintenance_plan}}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8" :lg="6">
|
<el-col :span="8" :lg="6">
|
||||||
|
|||||||
@ -11,9 +11,9 @@
|
|||||||
<div v-auth="'maintenanceOrderImport'" @click="importTemplate">下载导入模版</div>
|
<div v-auth="'maintenanceOrderImport'" @click="importTemplate">下载导入模版</div>
|
||||||
</template>
|
</template>
|
||||||
</scImport>
|
</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="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>
|
<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>
|
||||||
<div class="right-panel">
|
<div class="right-panel">
|
||||||
@ -53,6 +53,9 @@
|
|||||||
<div v-auth="'maintenanceOrderAdd'">
|
<div v-auth="'maintenanceOrderAdd'">
|
||||||
<el-dropdown-item @click="table_edit(scope.row)" icon="sc-icon-Edit">编辑工单</el-dropdown-item>
|
<el-dropdown-item @click="table_edit(scope.row)" icon="sc-icon-Edit">编辑工单</el-dropdown-item>
|
||||||
</div>
|
</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'">
|
<div v-auth="'maintenanceOrderDelete'">
|
||||||
<el-dropdown-item @click="table_del(scope.row)" icon="sc-icon-Delete">删除工单</el-dropdown-item>
|
<el-dropdown-item @click="table_del(scope.row)" icon="sc-icon-Delete">删除工单</el-dropdown-item>
|
||||||
</div>
|
</div>
|
||||||
@ -62,12 +65,9 @@
|
|||||||
<div v-auth="'maintenanceOrderDetail'">
|
<div v-auth="'maintenanceOrderDetail'">
|
||||||
<el-dropdown-item @click="table_show(scope.row)" icon="sc-icon-See">工单详情</el-dropdown-item>
|
<el-dropdown-item @click="table_show(scope.row)" icon="sc-icon-See">工单详情</el-dropdown-item>
|
||||||
</div>
|
</div>
|
||||||
<div v-auth="'maintenanceOrderSubmit'">
|
<!-- <div v-auth="'maintenanceOrderSend'">-->
|
||||||
<el-dropdown-item icon="sc-icon-SaveMaintenance" @click="table_submit(scope.row)" divided>提交维保</el-dropdown-item>
|
<!-- <el-dropdown-item icon="sc-icon-OrderMaintenance" @click="table_send(scope.row)">下发维保</el-dropdown-item>-->
|
||||||
</div>
|
<!-- </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'">
|
<div v-auth="'orderLogsList'">
|
||||||
<el-dropdown-item icon="sc-icon-OrderLog" @click="table_logs(scope.row)" divided>工单日志</el-dropdown-item>
|
<el-dropdown-item icon="sc-icon-OrderLog" @click="table_logs(scope.row)" divided>工单日志</el-dropdown-item>
|
||||||
</div>
|
</div>
|
||||||
@ -274,12 +274,14 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
async save_maintenance() {
|
async save_maintenance() {
|
||||||
const params = {order_ids: this.selection.map(em => em.id)};
|
eventBus.$emit('tagClose','/order/submit-order',{id:this.selection.map(em => em.id)[0]});
|
||||||
const res = await this.$API.orders.order.maintenance.submit.post(params);
|
|
||||||
if (res.code == 200) {
|
// const params = {order_ids: this.selection.map(em => em.id)};
|
||||||
this.$refs.table.refresh();
|
// const res = await this.$API.orders.order.maintenance.submit.post(params);
|
||||||
this.$message.success("操作成功")
|
// if (res.code == 200) {
|
||||||
}
|
// this.$refs.table.refresh();
|
||||||
|
// this.$message.success("操作成功")
|
||||||
|
// }
|
||||||
},
|
},
|
||||||
async issued_maintenance() {
|
async issued_maintenance() {
|
||||||
const params = {order_ids: this.selection.map(em => em.id)};
|
const params = {order_ids: this.selection.map(em => em.id)};
|
||||||
|
|||||||
@ -21,7 +21,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import detailView from "@/views/order/orderList/detailView";
|
import detailView from "@/views/order/orderList/detailView";
|
||||||
export default {
|
export default {
|
||||||
name: "preview-order",
|
name: "",
|
||||||
components:{
|
components:{
|
||||||
detailView
|
detailView
|
||||||
},
|
},
|
||||||
|
|||||||
@ -60,8 +60,8 @@
|
|||||||
>
|
>
|
||||||
<div class="bodyView">
|
<div class="bodyView">
|
||||||
<div class="viewLeft">
|
<div class="viewLeft">
|
||||||
<div class="viewTitle">部门</div>
|
<div class="viewTitle">成员</div>
|
||||||
<div class="viewCom">
|
<div class="viewCom" element-loading-text="加载中..." v-loading="userLoading">
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<treeUser class="treeUser" ref="treeList" :data="deptTree" :userIds="userIds" @roleChecked="roleChecked" />
|
<treeUser class="treeUser" ref="treeList" :data="deptTree" :userIds="userIds" @roleChecked="roleChecked" />
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
@ -102,7 +102,7 @@
|
|||||||
import dataTree from "./dataTree";
|
import dataTree from "./dataTree";
|
||||||
import dataPermissions from "./dataPermissions";
|
import dataPermissions from "./dataPermissions";
|
||||||
import members from "./members";
|
import members from "./members";
|
||||||
import treeUser from "./tree"
|
import treeUser from "./userTree"
|
||||||
import roleSort from "./roleSort";
|
import roleSort from "./roleSort";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -160,6 +160,7 @@
|
|||||||
isMember:false,
|
isMember:false,
|
||||||
userCheckList:[],
|
userCheckList:[],
|
||||||
userIds:[],
|
userIds:[],
|
||||||
|
userLoading:false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -424,13 +425,15 @@
|
|||||||
},
|
},
|
||||||
async getDeptTree() {
|
async getDeptTree() {
|
||||||
this.memberShow = true;
|
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.deptTree = this.treeShow(res.data);
|
||||||
|
this.userLoading = false;
|
||||||
},
|
},
|
||||||
// 数据增加收起
|
// 数据增加收起
|
||||||
treeShow(list){
|
treeShow(list){
|
||||||
list.forEach(item=>{
|
list.forEach(item=>{
|
||||||
item.isOpen = false;
|
item.isOpen = true;
|
||||||
if(item.children){
|
if(item.children){
|
||||||
this.treeShow(item.children)
|
this.treeShow(item.children)
|
||||||
}
|
}
|
||||||
@ -483,6 +486,7 @@
|
|||||||
user_ids:ids,
|
user_ids:ids,
|
||||||
role_id:this.role_id
|
role_id:this.role_id
|
||||||
}
|
}
|
||||||
|
this.roleUserLoading = true;
|
||||||
const res = await this.$API.system.role.roleUserDel.post(params);
|
const res = await this.$API.system.role.roleUserDel.post(params);
|
||||||
if(res.code == 200){
|
if(res.code == 200){
|
||||||
await this.getRoleList();
|
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>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: "view-permission",
|
name: "",
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
size:'default',
|
size:'default',
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user