|
@@ -1,5 +1,6 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
+ <div class="divtitle"><div style="font-size:1.6rem;font-family: Adobe Heiti Std;font-weight: normal;color: #DFEEF3;">计划管理</div></div>
|
|
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
<el-form-item label="编号" prop="planCode">
|
|
|
<el-input
|
|
@@ -81,7 +82,10 @@
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
|
|
|
- <el-table v-loading="loading" :data="planList" @selection-change="handleSelectionChange">
|
|
|
+ <el-table v-loading="loading" :data="planList" @selection-change="handleSelectionChange" stripe
|
|
|
+ class="my_table"
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
+ :header-cell-style="{background:'#24A3B3 50%',color: '#C5D0D4'}">
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
<el-table-column label="计划编号" align="center" prop="planCode" />
|
|
|
<el-table-column label="计划名称" align="center" prop="planName" />
|
|
@@ -133,57 +137,136 @@
|
|
|
/>
|
|
|
|
|
|
<!-- 添加或修改巡检计划管理对话框 -->
|
|
|
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
- <el-form-item label="编号" prop="planCode">
|
|
|
- <el-input v-model="form.planCode" placeholder="请输入编号" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="名称" prop="planName">
|
|
|
- <el-input v-model="form.planName" placeholder="请输入名称" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="类型" prop="planType">
|
|
|
- <el-select v-model="form.planType" placeholder="请选择类型">
|
|
|
- <el-option
|
|
|
- v-for="dict in dict.type.tl_plan_type"
|
|
|
- :key="dict.value"
|
|
|
- :label="dict.label"
|
|
|
-:value="dict.value"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="开始时间" prop="startDate">
|
|
|
- <el-date-picker clearable size="small"
|
|
|
- v-model="form.startDate"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择开始时间">
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="结束时间" prop="endDate">
|
|
|
- <el-date-picker clearable size="small"
|
|
|
- v-model="form.endDate"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择结束时间">
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="140rem" append-to-body>
|
|
|
+ <div style="padding-left:15rem">
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
+ <div class='titleFont'>计划基本信息</div>
|
|
|
+ <div style="margin-top:2rem">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="计划编号" prop="planCode">
|
|
|
+ <el-input v-model="form.planCode" placeholder="请输入计划编号" style="width:25rem"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="计划类型" prop="planType">
|
|
|
+ <el-input v-model="form.planType" placeholder="请选择计划类型" style="width:25rem"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="计划名称" prop="planName">
|
|
|
+ <el-input v-model="form.planName" placeholder="请输入计划名称" style="width:25rem"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="开始时间" prop="startDate">
|
|
|
+ <el-input v-model="form.startDate" placeholder="请输入计划编号" style="width:25rem"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="结束时间" prop="endDate">
|
|
|
+ <el-input v-model="form.endDate" placeholder="请选择计划类型" style="width:25rem"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="计划线路" prop="lineId">
|
|
|
+ <el-select v-model="form.lineId" placeholder="请选择计划线路" style="width:25rem" @change="lineIdChange">
|
|
|
+ <el-option
|
|
|
+ v-for="obj in lineList"
|
|
|
+ :key="obj.id"
|
|
|
+ :label="obj.lineName"
|
|
|
+ :value="obj.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <!-- </el-form> -->
|
|
|
+ </div>
|
|
|
+ <div class='titleFont'>巡检点列表</div>
|
|
|
+ <div style="height:25rem;width:100rem">
|
|
|
+ <el-table v-loading="loading" :data="locationsList" @selection-change="handleSelectionChange" stripe
|
|
|
+ class="my_table"
|
|
|
+ max-height=300
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
+ :header-cell-style="{background:'#24A3B3 50%',color: '#C5D0D4'}">
|
|
|
+ <el-table-column type="index" label="序号" width="55" align="center" />
|
|
|
+ <el-table-column label="巡检点编号" align="center" prop="locationCode" />
|
|
|
+ <el-table-column label="巡检点名称" align="center" prop="locationName" />
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="18">
|
|
|
+ <div class='titleFont'>设置人员</div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ size="mini"
|
|
|
+ @click="selectPeople"
|
|
|
+ >选择人员</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div style="height:25rem;width:100rem">
|
|
|
+ <el-table v-loading="loading" :data="selectUserList" @selection-change="handleSelectionChange" stripe
|
|
|
+ class="my_table"
|
|
|
+ max-height=300
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
+ :header-cell-style="{background:'#24A3B3 50%',color: '#C5D0D4'}">
|
|
|
+ <el-table-column type="index" label="序号" width="55" align="center" />
|
|
|
+ <el-table-column label="编号" align="center" prop="userId" />
|
|
|
+ <el-table-column label="姓名" align="center" prop="nickName" />
|
|
|
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="userDelete(scope.row)"
|
|
|
+ ></el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class='titleFont'>计划分数</div>
|
|
|
<el-form-item label="计划分数" prop="score">
|
|
|
- <el-input v-model="form.score" placeholder="请输入计划分数" />
|
|
|
+ <el-input v-model="form.score" placeholder="请输入计划分数" style="width:15rem"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="备注" prop="remark">
|
|
|
- <el-input v-model="form.remark" placeholder="请输入备注" />
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <el-dialog title="选择人员" :visible.sync="openUser" width="50rem" append-to-body>
|
|
|
+ <el-select v-model="selectUser" multiple placeholder="请选择人员" style="width:25rem" @change="lineIdChange">
|
|
|
+ <el-option
|
|
|
+ v-for="obj in userList"
|
|
|
+ :key="obj.userId"
|
|
|
+ :label="obj.nickName"
|
|
|
+ :value="obj.userId"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitUser">确 定</el-button>
|
|
|
+ <el-button @click="cancelUser">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { listPlan, getPlan, delPlan, addPlan, updatePlan } from "@/api/qdtl/plan";
|
|
|
+import { listLine, getLine, delLine, addLine, updateLine } from "@/api/qdtl/line";
|
|
|
+import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus } from "@/api/system/user";
|
|
|
|
|
|
export default {
|
|
|
name: "Plan",
|
|
@@ -192,6 +275,10 @@ export default {
|
|
|
return {
|
|
|
// 遮罩层
|
|
|
loading: true,
|
|
|
+
|
|
|
+ lineList:[],
|
|
|
+
|
|
|
+ userList:[],
|
|
|
// 选中数组
|
|
|
ids: [],
|
|
|
// 非单个禁用
|
|
@@ -208,6 +295,14 @@ export default {
|
|
|
title: "",
|
|
|
// 是否显示弹出层
|
|
|
open: false,
|
|
|
+
|
|
|
+ openUser:false,
|
|
|
+
|
|
|
+ locationsList:[],
|
|
|
+
|
|
|
+ selectUser:[],
|
|
|
+
|
|
|
+ selectUserList:[],
|
|
|
// 查询参数
|
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
@@ -225,9 +320,23 @@ export default {
|
|
|
},
|
|
|
created() {
|
|
|
this.getList();
|
|
|
+ this.getLineList();
|
|
|
+ this.getUserList();
|
|
|
},
|
|
|
methods: {
|
|
|
+ getUserList(){
|
|
|
+ listUser().then(response =>{
|
|
|
+ this.userList = response.rows
|
|
|
+ console.log(this.userList);
|
|
|
+ // console.log(response.rows);
|
|
|
+ })
|
|
|
+ },
|
|
|
/** 查询巡检计划管理列表 */
|
|
|
+ getLineList() {
|
|
|
+ listLine().then(response => {
|
|
|
+ this.lineList = response.rows
|
|
|
+ });
|
|
|
+ },
|
|
|
getList() {
|
|
|
this.loading = true;
|
|
|
listPlan(this.queryParams).then(response => {
|
|
@@ -241,6 +350,22 @@ export default {
|
|
|
this.open = false;
|
|
|
this.reset();
|
|
|
},
|
|
|
+ cancelUser() {
|
|
|
+ this.openUser = false;
|
|
|
+ this.selectUser = [];
|
|
|
+ },
|
|
|
+ submitUser(){
|
|
|
+ this.openUser = false;
|
|
|
+ this.selectUserList = []
|
|
|
+ console.log(this.selectUser);
|
|
|
+ for(var i in this.selectUser){
|
|
|
+ for(var j in this.userList){
|
|
|
+ if(this.selectUser[i] == this.userList[j].userId){
|
|
|
+ this.selectUserList.push(this.userList[j]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
// 表单重置
|
|
|
reset() {
|
|
|
this.form = {
|
|
@@ -255,10 +380,32 @@ export default {
|
|
|
createBy: null,
|
|
|
createTime: null,
|
|
|
updateBy: null,
|
|
|
- updateTime: null
|
|
|
+ updateTime: null,
|
|
|
+ planUsers:[]
|
|
|
};
|
|
|
+ this.selectUserList = [];
|
|
|
+ this.locationsList = [];
|
|
|
this.resetForm("form");
|
|
|
},
|
|
|
+ userDelete(data){
|
|
|
+ console.log(data);
|
|
|
+ var selectUserArry = [];
|
|
|
+ for(var index in this.selectUserList){
|
|
|
+ if(this.selectUserList[index].userId == data.userId){
|
|
|
+ this.selectUserList.splice(index,1);
|
|
|
+ }else{
|
|
|
+ selectUserArry.push(this.selectUserList[index].userId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.selectUser = selectUserArry
|
|
|
+ },
|
|
|
+ tableRowClassName({ row, rowIndex }) {
|
|
|
+ if ((rowIndex + 1) % 2 === 0) {
|
|
|
+ return "warning-row";
|
|
|
+ } else {
|
|
|
+ return "success-row";
|
|
|
+ }
|
|
|
+ },
|
|
|
/** 搜索按钮操作 */
|
|
|
handleQuery() {
|
|
|
this.queryParams.pageNum = 1;
|
|
@@ -289,11 +436,17 @@ export default {
|
|
|
this.form = response.data;
|
|
|
this.open = true;
|
|
|
this.title = "修改巡检计划管理";
|
|
|
+ this.lineIdChange(this.form.lineId);
|
|
|
});
|
|
|
},
|
|
|
/** 提交按钮 */
|
|
|
submitForm() {
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
+ this.form.planUsers = []
|
|
|
+ for(var index in this.selectUserList){
|
|
|
+ var obj = this.selectUserList[index];
|
|
|
+ this.form.planUsers.push(obj);
|
|
|
+ }
|
|
|
if (valid) {
|
|
|
if (this.form.id != null) {
|
|
|
updatePlan(this.form).then(response => {
|
|
@@ -326,7 +479,36 @@ export default {
|
|
|
this.download('qdtl/plan/export', {
|
|
|
...this.queryParams
|
|
|
}, `plan_${new Date().getTime()}.xlsx`)
|
|
|
+ },
|
|
|
+ lineIdChange(value){
|
|
|
+ for(var index in this.lineList){
|
|
|
+ if(value == this.lineList[index].id){
|
|
|
+ this.locationsList = this.lineList[index].locations
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ selectPeople(){
|
|
|
+ this.openUser = true
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+ .divtitle{
|
|
|
+ background: url("~@/assets/images/title2@2x.png") no-repeat;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ width:100%;
|
|
|
+ height:3.9rem;
|
|
|
+ padding-top:0.8rem;
|
|
|
+ padding-left:3rem;
|
|
|
+ float: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ .titleFont{
|
|
|
+ font-size: 1.6rem;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ color: #3DFFEA;
|
|
|
+ line-height: 3.6rem;
|
|
|
+ }
|
|
|
+</style>
|