Merge branch 'server_five_ui' into server_ui_dongxiaodong

server_ui_dongxiaodong
dongxiaodong 2024-03-31 15:07:18 +08:00
commit fb9bd6f533
4 changed files with 598 additions and 5 deletions

View File

@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询部门列表
export function listManage(query) {
return request({
url: '/coupletEnterprisemanagement/manage/manageList',
method: 'get',
params: query
})
}
// 查询部门列表(排除节点)
export function listManageExcludeChild(deptId) {
return request({
url: '/coupletEnterprisemanagement/manage/list/exclude/' + deptId,
method: 'get'
})
}
// 查询部门详细
export function getManage(deptId) {
return request({
url: '/coupletEnterprisemanagement/dept/' + deptId,
method: 'get'
})
}
// 新增部门
export function addManage(data) {
return request({
url: '/coupletEnterprisemanagement/dept',
method: 'post',
data: data
})
}
// 修改部门
export function updateManage(data) {
return request({
url: '/coupletEnterprisemanagement/manage',
method: 'put',
data: data
})
}
// 删除部门
export function delManage(deptId) {
return request({
url: '/coupletEnterprisemanagement/manage/' + deptId,
method: 'delete'
})
}

View File

@ -0,0 +1,19 @@
import request from '@/utils/request'
// 查询车辆列表
export function list(vehicleListParams) {
return request({
url: '/vehicle/vehicle/list',
method: 'post',
data: vehicleListParams
})
}
//根据车辆id进行删除
export function deleteById(vehicleId) {
return request({
url: '/vehicle/vehicle/deleteById/' + vehicleId,
method: 'get'
})
}

View File

@ -0,0 +1,344 @@
<template>
<div class="app-container">
<el-form v-show="showSearch" ref="queryForm" :inline="true" :model="queryParams" size="small">
<el-form-item label="部门名称" prop="deptName">
<el-input
v-model="queryParams.deptName"
clearable
placeholder="请输入部门名称"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" clearable placeholder="部门状态">
<el-option
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button icon="el-icon-search" size="mini" type="primary" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
v-hasPermi="['system:dept:add']"
icon="el-icon-plus"
plain
size="mini"
type="primary"
@click="handleAdd"
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
icon="el-icon-sort"
plain
size="mini"
type="info"
@click="toggleExpandAll"
>展开/折叠
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table
v-if="refreshTable"
v-loading="loading"
:data="deptList"
:default-expand-all="isExpandAll"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
row-key="deptId"
>
<el-table-column label="部门名称" prop="deptName" width="260"></el-table-column>
<el-table-column label="排序" prop="orderNum" width="200"></el-table-column>
<el-table-column label="状态" prop="status" width="100">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column align="center" label="创建时间" prop="createTime" width="200">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column align="center" class-name="small-padding fixed-width" label="操作">
<template slot-scope="scope">
<el-button
v-hasPermi="['system:dept:edit']"
icon="el-icon-edit"
size="mini"
type="text"
@click="handleUpdate(scope.row)"
>修改
</el-button>
<el-button
v-hasPermi="['system:dept:add']"
icon="el-icon-plus"
size="mini"
type="text"
@click="handleAdd(scope.row)"
>新增
</el-button>
<el-button
v-if="scope.row.parentId != 0"
v-hasPermi="['system:dept:remove']"
icon="el-icon-delete"
size="mini"
type="text"
@click="handleDelete(scope.row)"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 添加或修改部门对话框 -->
<el-dialog :title="title" :visible.sync="open" append-to-body width="600px">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col v-if="form.parentId !== 0" :span="24">
<el-form-item label="上级部门" prop="parentId">
<treeselect v-model="form.parentId" :normalizer="normalizer" :options="deptOptions"
placeholder="选择上级部门"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="部门名称" prop="deptName">
<el-input v-model="form.deptName" placeholder="请输入部门名称"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="显示排序" prop="orderNum">
<el-input-number v-model="form.orderNum" :min="0" controls-position="right"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="负责人" prop="leader">
<el-input v-model="form.leader" maxlength="20" placeholder="请输入负责人"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话" prop="phone">
<el-input v-model="form.phone" maxlength="11" placeholder="请输入联系电话"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" maxlength="50" placeholder="请输入邮箱"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="部门状态">
<el-radio-group v-model="form.status">
<el-radio
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {addManage, delManage, getManage, listManage, listManageExcludeChild} from "@/api/system/manage";
export default {
name: "Dept",
dicts: ['sys_normal_disable'],
components: {Treeselect},
data() {
return {
//
loading: true,
//
showSearch: true,
//
deptList: [],
//
deptOptions: [],
//
title: "",
//
open: false,
//
isExpandAll: true,
//
refreshTable: true,
//
queryParams: {
deptName: undefined,
status: undefined
},
//
form: {},
//
rules: {
parentId: [
{required: true, message: "上级部门不能为空", trigger: "blur"}
],
deptName: [
{required: true, message: "部门名称不能为空", trigger: "blur"}
],
orderNum: [
{required: true, message: "显示排序不能为空", trigger: "blur"}
],
email: [
{
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["blur", "change"]
}
],
phone: [
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur"
}
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询部门列表 */
getList() {
this.loading = true;
listManage(this.queryParams).then(response => {
this.deptList = this.handleTree(response.data, "deptId");
this.loading = false;
});
},
/** 转换部门数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.deptId,
label: node.deptName,
children: node.children
};
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
deptId: undefined,
parentId: undefined,
deptName: undefined,
orderNum: undefined,
leader: undefined,
phone: undefined,
email: undefined,
status: "0"
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd(row) {
this.reset();
if (row != undefined) {
this.form.parentId = row.deptId;
}
this.open = true;
this.title = "添加部门";
listManage().then(response => {
this.deptOptions = this.handleTree(response.data, "deptId");
});
},
/** 展开/折叠操作 */
toggleExpandAll() {
this.refreshTable = false;
this.isExpandAll = !this.isExpandAll;
this.$nextTick(() => {
this.refreshTable = true;
});
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
getManage(row.deptId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改部门";
});
listManageExcludeChild(row.deptId).then(response => {
this.deptOptions = this.handleTree(response.data, "deptId");
});
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.deptId != undefined) {
updateDept(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addManage(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
this.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function () {
return delManage(row.deptId);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
}
}
};
</script>

View File

@ -1,11 +1,189 @@
<script setup>
</script>
<template> <template>
<div>
<h1>车辆管理页面</h1>
<!-- {{ vehicleList }}-->
<el-table :data="vehicleList" style="width: 100%" border>
<el-table-column label="车辆id" width="90" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleId }}</span>
</template>
</el-table-column>
<!-- TODO 暂时显示车辆类型id待处理-->
<el-table-column label="车辆类型" width="90" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vehicleTypeName }}</span>
</template>
</el-table-column>
<el-table-column label="电机厂商" width="150" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.motorManufacturer }}</span>
</template>
</el-table-column>
<el-table-column label="电池厂商" width="150" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.batteryManufacturer }}</span>
</template>
</el-table-column>
<el-table-column label="电机编号" width="180" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.motorNumber }}</span>
</template>
</el-table-column>
<el-table-column label="电池编号" width="180" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.batteryNumber }}</span>
</template>
</el-table-column>
<el-table-column label="vin码" width="180" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.vin }}</span>
</template>
</el-table-column>
<el-table-column label="车辆状态" width="120" align="center">
<template slot-scope="scope">
<span style="margin-left: 10px" v-if="1==scope.row.vehicleState">
<el-tag type="success">在线</el-tag>
</span>
<span style="margin-left: 10px" v-if="0==scope.row.vehicleState">
<el-tag type="danger">离线</el-tag>
</span>
</template>
</el-table-column>
<el-table-column label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button size="mini" @click="">编辑</el-button>
<el-button size="mini" type="danger" @click="deleteById(scope.row.vehicleId)"></el-button>
</template>
</el-table-column>
</el-table>
</div>
</template> </template>
<style scoped lang="scss"> <script>
//jsjsjson,
//import from ',
import {deleteById, list} from "@/api/system/vehicle";
export default {
//import使"
components: {},
props: {},
data() {
//"
return {
//
vehicleList: [],
//
vehicleListParams: {
//
vehicleType: '',
// 0线 1线
vehicleState: '',
},
//
vehicle: {
//id
vehicleId: '',
//
vehicleType: '',
//
motorManufacturer: '',
//
batteryManufacturer: '',
//
motorNumber: '',
//
batteryNumber: '',
},
};
},
// data",
computed: {},
//data",
watch: {},
//",
methods: {
//
getVehicleList() {
list(this.vehicleListParams).then(
res => {
this.vehicleList = res.data;
}
)
},
//id
deleteById(vehicleId) {
this.$confirm('此操作将永久删除该数据,是否继续?', "提示", {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteById(vehicleId).then(
res => {
if (res.code == 200) {
//
this.getVehicleList();
this.$message({
type: 'success',
message: '删除成功!'
});
} else {
this.$message({
type: 'error',
message: '删除失败!'
});
}
}
)
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
},
// - 访this",
created() {
//
this.getVehicleList()
},
// - 访DOM",
mounted() {
},
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} //keep-alive",
};
</script>
<style scoped>
</style> </style>