对接属地及科室管理接口

This commit is contained in:
wangchengming 2025-07-01 17:12:23 +08:00
parent 201c7b2984
commit 5351f6bf18
5 changed files with 178 additions and 126 deletions

View File

@ -30,7 +30,7 @@ export function addBusDependency(data) {
export function updateBusDependency(data) {
return request({
url: '/admin/busDependency/updateBusDependency',
method: 'put',
method: 'post',
data: data
})
}

View File

@ -94,7 +94,19 @@ import LableApply from './components/LableApply.vue'
// import { addMenu, delMenu, getMenu, listMenu, updateMenu } from "@/api/system/menu"
import jobNumberIcon from '@/assets/images/job-number-icon.png'
import myAvatar from '@/assets/images/my-avatar.png'
import { ref } from 'vue'
import { onMounted, ref } from 'vue'
import useUserStore from '@/store/modules/user'
const userStore = useUserStore()
//
onMounted(() => {
getUserInfo()
});
//
const getUserInfo = () => {
}
//
const ToolOptions = ref(['高压资质培训信息', '高压车型培训信息', '资质申请', '标签申请'])

View File

@ -25,7 +25,7 @@
</div>
<div class="borderLine"></div>
<el-table v-loading="loading" height="calc(100% - 162px)" :data="postList"
<el-table v-loading="loading" height="calc(100% - 162px)" :data="busDependencyList"
@selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" width="60">
@ -33,18 +33,18 @@
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column label="厂区名称" align="center" prop="factoryArea" />
<el-table-column label="楼号" align="center" prop="buildingNo" />
<el-table-column label="属地名称" align="center" prop="dependencyName" />
<el-table-column label="属地ESC工号" align="center" prop="postSort" />
<el-table-column label="属地ESC姓名" align="center" prop="postSort" />
<el-table-column label="属地ESC邮箱" align="center" prop="postSort" />
<el-table-column label="厂区名称" align="center" width="130" prop="factoryArea" />
<el-table-column label="楼号" align="center" width="100" prop="buildingNo" />
<el-table-column label="属地名称" align="left" min-width="230" prop="dependencyName" />
<el-table-column label="ESC工号" align="center" min-width="100" prop="escWorkNo" />
<el-table-column label="ESC姓名" align="center" min-width="120" prop="escUserName" />
<el-table-column label="ESC邮箱" align="left" min-width="280" prop="escEmail" />
<el-table-column label="创建时间" align="center" prop="createTime" width="230">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
<span>{{ scope.row.createTime ? parseTime(scope.row.createTime) : '-' }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
<el-table-column label="操作" width="150" fixed="right" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:locality:edit']">修改</el-button>
@ -71,14 +71,17 @@
<el-form-item label="属地名称" prop="dependencyName">
<el-input v-model="form.dependencyName" placeholder="请输入属地名称" />
</el-form-item>
<el-form-item label="属地ESC工号" prop="escCode">
<el-input v-model="form.buildingNo" placeholder="请输入ESC工号" />
<el-form-item label="属地ESC" prop="escUserId">
<!-- <el-input v-model="form.escUserId" placeholder="请输入ESC姓名" /> -->
<el-select v-model="form.escUserId" filterable placeholder="请选择属地ESC" @change="selectChanged">
<el-option v-for="item in allUsers" :key="item.userId" :label="item.nickName" :value="item.userId" />
</el-select>
</el-form-item>
<el-form-item label="属地ESC姓名" prop="postSort">
<el-input v-model="form.buildingNo" placeholder="请输入ESC姓名" />
<el-form-item label="ESC工号" prop="escWorkNo">
<el-input v-model="form.escWorkNo" disabled />
</el-form-item>
<el-form-item label="属地ESC邮箱" prop="postSort">
<el-input v-model="form.buildingNo" placeholder="请输入ESC邮箱" />
<el-form-item label="ESC邮箱" prop="escEmail">
<el-input v-model="form.escEmail" disabled />
</el-form-item>
</el-form>
<template #footer>
@ -93,6 +96,7 @@
<script setup name="Post">
import { getBusDependencyPage, addBusDependency, deleteBusDependency, getBusDependency, updateBusDependency } from "@/api/system/dependency"
import { listUser } from "@/api/system/user"
import Breadcrumb from '@/components/Breadcrumb'
import addIcon from '@/assets/images/addIcon.png'
@ -120,21 +124,39 @@ const data = reactive({
factoryArea: [{ required: true, message: "请选择厂区", trigger: "change" }],
buildingNo: [{ required: true, message: "请输入楼号", trigger: "blur" }],
dependencyName: [{ required: true, message: "请输入属地名称", trigger: "blur" }],
escCode: [{ required: true, message: "请输入属地ESC工号", trigger: "blur" }],
escUserId: [{ required: true, message: "请选择属地ESC", trigger: "change" }],
}
})
const { queryParams, form, rules } = toRefs(data)
const allUsers = ref([])
const getAllUser = () => {
listUser({
pageNum: 1,
pageSize: 5000
}).then(res => {
allUsers.value = res.rows
})
}
// ESC
const selectChanged = (value) => {
if (value) {
const curUser = allUsers.value.find(item => item.userId == value)
form.value.escWorkNo = curUser.workNo
form.value.escEmail = curUser.email
}
}
/** 查询岗位列表 */
function getList() {
loading.value = true
getBusDependencyPage(queryParams.value).then(response => {
console.log('结果', response)
busDependencyList.value = response.data
total.value = response.total
loading.value = false
}).catch(() => {
if (response.code == 200) {
busDependencyList.value = response.data.list
total.value = response.data.total
}
loading.value = false
})
}
@ -164,6 +186,11 @@ function handleQuery() {
/** 重置按钮操作 */
function resetQuery() {
queryParams.value = {
pageIndex: 1,
pageSize: 10,
keyword: undefined,
}
proxy.resetForm("queryRef")
handleQuery()
}
@ -226,7 +253,8 @@ function handleDelete(row) {
}
getList()
getList();
getAllUser();
</script>
<style lang='scss'>
.app-page-container {

View File

@ -5,16 +5,16 @@
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
<el-row class="myRow">
<el-col :span="20">
<el-form-item label="科室编码" prop="postCode">
<el-input v-model="queryParams.postCode" placeholder="请输入科室编码" clearable style="width: 200px"
<el-form-item label="岗位编码" prop="postCode">
<el-input v-model="queryParams.postCode" placeholder="请输入岗位编码" clearable style="width: 200px"
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="科室名称" prop="postName">
<el-input v-model="queryParams.postName" placeholder="请输入科室名称" clearable style="width: 200px"
<el-form-item label="岗位名称" prop="postName">
<el-input v-model="queryParams.postName" placeholder="请输入岗位名称" clearable style="width: 200px"
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="科室状态" clearable style="width: 200px">
<el-select v-model="queryParams.status" placeholder="岗位状态" clearable style="width: 200px">
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
@ -44,26 +44,26 @@
<el-button type="warning" plain icon="Download" @click="handleExport"
v-hasPermi="['system:post:export']">导出</el-button>
</el-col>
<!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> -->
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<div class="borderLine"></div>
<el-table v-loading="loading" height="calc(100% - 162px)" :data="postList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" width="60" prop="postId" />
<el-table-column label="科室编码" align="left" width="370" prop="postCode" />
<el-table-column label="科室名称" align="left" min-width="150" prop="postName" />
<!-- <el-table-column label="排序" align="center" width="60" prop="postSort" /> -->
<el-table-column label="状态" align="center" width="80" prop="status">
<el-table-column label="岗位编号" align="center" prop="postId" />
<el-table-column label="岗位编码" align="center" prop="postCode" />
<el-table-column label="岗位名称" align="center" prop="postName" />
<el-table-column label="岗位排序" align="center" prop="postSort" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :options="sys_normal_disable" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="210">
<el-table-column label="创建时间" align="center" prop="createTime" width="230">
<template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="150" align="center" class-name="small-padding fixed-width">
<el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:post:edit']">修改</el-button>
@ -79,19 +79,19 @@
<!-- 添加或修改岗位对话框 -->
<el-dialog :title="title" v-model="open" width="800px" append-to-body>
<el-form ref="postRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="科室名称" prop="postName">
<el-input v-model="form.postName" placeholder="请输入科室名称" />
<el-form-item label="岗位名称" prop="postName">
<el-input v-model="form.postName" placeholder="请输入岗位名称" />
</el-form-item>
<el-form-item label="科室编码" prop="postCode">
<el-input v-model="form.postCode" placeholder="请输入科室编码" />
<el-form-item label="岗位编码" prop="postCode">
<el-input v-model="form.postCode" placeholder="请输入编码名称" />
</el-form-item>
<el-form-item label="顺序" prop="postSort">
<el-form-item label="岗位顺序" prop="postSort">
<el-input-number v-model="form.postSort" controls-position="right" :min="0" style="width: 100%;" />
</el-form-item>
<el-form-item label="状态" prop="status">
<el-form-item label="岗位状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label
}}</el-radio>
}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="remark">
@ -135,9 +135,9 @@ const data = reactive({
status: undefined
},
rules: {
postName: [{ required: true, message: "科室名称不能为空", trigger: "blur" }],
postCode: [{ required: true, message: "科室编码不能为空", trigger: "blur" }],
postSort: [{ required: true, message: "顺序不能为空", trigger: "blur" }],
postName: [{ required: true, message: "岗位名称不能为空", trigger: "blur" }],
postCode: [{ required: true, message: "岗位编码不能为空", trigger: "blur" }],
postSort: [{ required: true, message: "岗位顺序不能为空", trigger: "blur" }],
}
})
@ -195,7 +195,7 @@ function handleSelectionChange(selection) {
function handleAdd() {
reset()
open.value = true
title.value = "添加科室"
title.value = "添加岗位"
}
/** 修改按钮操作 */
@ -205,7 +205,7 @@ function handleUpdate(row) {
getPost(postId).then(response => {
form.value = response.data
open.value = true
title.value = "修改科室"
title.value = "修改岗位"
})
}
@ -233,7 +233,7 @@ function submitForm() {
/** 删除按钮操作 */
function handleDelete(row) {
const postIds = row.postId || ids.value
proxy.$modal.confirm('是否确认删除编号为"' + postIds + '"的数据项?').then(function () {
proxy.$modal.confirm('是否确认删除岗位编号为"' + postIds + '"的数据项?').then(function () {
return delPost(postIds)
}).then(() => {
getList()
@ -252,117 +252,117 @@ getList()
</script>
<style lang='scss'>
.app-page-container {
width: 100%;
height: 100%;
overflow-y: auto;
padding-bottom: 20px;
width: 100%;
height: 100%;
overflow-y: auto;
padding-bottom: 20px;
}
.clearBoth {
clear: both;
clear: both;
}
.myRow {
margin-left: 0 !important;
margin-right: 0 !important;
margin-left: 0 !important;
margin-right: 0 !important;
}
.el-form--inline .el-form-item {
display: inline-flex;
margin-right: 26px;
vertical-align: middle;
display: inline-flex;
margin-right: 26px;
vertical-align: middle;
}
.el-form-item__label {
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 18px;
color: #000000;
min-width: 34px;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 18px;
color: #000000;
min-width: 34px;
}
.el-input__inner {
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 18px;
text-align: left;
color: #000000;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 18px;
text-align: left;
color: #000000;
}
.el-select__wrapper {
font-weight: 400;
font-size: 18px;
text-align: left;
color: #000000;
font-weight: 400;
font-size: 18px;
text-align: left;
color: #000000;
}
.el-date-editor .el-range-input {
font-family: Arial;
font-weight: 400;
font-size: 18px;
text-align: right;
color: #000000;
width: 46%;
font-family: Arial;
font-weight: 400;
font-size: 18px;
text-align: right;
color: #000000;
width: 46%;
}
.el-date-editor .el-range__icon svg {
width: 18px;
height: 16px;
width: 18px;
height: 16px;
}
.el-date-editor .el-range__icon {
font-size: 16px;
// margin-left: 12px;
margin-right: 12px;
font-size: 16px;
// margin-left: 12px;
margin-right: 12px;
}
.el-range-editor.el-input__wrapper {
padding: 0 0 0 7px;
padding: 0 0 0 7px;
}
.el-select__wrapper {
font-weight: 400;
font-size: 18px;
text-align: left;
color: #000000;
font-weight: 400;
font-size: 18px;
text-align: left;
color: #000000;
}
.foladText {
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 16px;
text-align: left;
color: #0090FF 100%;
padding: 10px 0 !important;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 16px;
text-align: left;
color: #0090FF 100%;
padding: 10px 0 !important;
}
.el-radio__label {
font-weight: 400;
font-size: 18px;
text-align: left;
color: #000000;
font-weight: 400;
font-size: 18px;
text-align: left;
color: #000000;
}
.el-checkbox__label {
font-weight: 400;
font-size: 18px;
text-align: left;
color: #000000;
font-weight: 400;
font-size: 18px;
text-align: left;
color: #000000;
}
.el-textarea__inner {
font-weight: 400;
font-size: 18px;
color: #000000;
font-weight: 400;
font-size: 18px;
color: #000000;
}
.el-text.is-truncated {
display: inline-block;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 18px;
color: #000000;
display: inline-block;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 18px;
color: #000000;
}
</style>
</style>

View File

@ -23,12 +23,17 @@
新增
</el-button>
</div>
<div class="borderLine"></div>
<el-table v-loading="loading" height="calc(100% - 162px)" :data="postList">
<el-table-column label="编号" align="center" width="60" prop="sectionId" />
<el-table-column label="科室名称" align="left" min-width="150" prop="sectionName" />
<el-table-column label="状态" align="center" width="80" prop="status">
<el-table v-loading="loading" height="calc(100% - 162px)" :data="sectionList">
<!-- <el-table-column label="编号" align="center" min-width="60" prop="sectionId" /> -->
<el-table-column label="序号" width="100">
<template #default="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column label="科室名称" align="left" prop="sectionName" />
<el-table-column label="状态" align="center" prop="status">
<template #default="scope">
<dict-tag :options="sys_normal_disable" :value="scope.row.status" />
</template>
@ -82,10 +87,10 @@ import addIcon from '@/assets/images/addIcon.png'
const { proxy } = getCurrentInstance()
const { sys_normal_disable } = proxy.useDict("sys_normal_disable")
const postList = ref([])
const sectionList = ref([])
const open = ref(false)
const loading = ref(true)
const showSearch = ref(true)
const showSearch = ref(true)
const total = ref(0)
const title = ref("")
@ -107,8 +112,10 @@ const { queryParams, form, rules } = toRefs(data)
function getList() {
loading.value = true
getSysSectionPage(queryParams.value).then(response => {
postList.value = response.rows
total.value = response.total
if (response.code == 200) {
sectionList.value = response.data.list
total.value = response.data.total
}
loading.value = false
})
}
@ -137,6 +144,11 @@ function handleQuery() {
/** 重置按钮操作 */
function resetQuery() {
queryParams.value = {
pageIndex: 1,
pageSize: 10,
keyword: undefined,
}
proxy.resetForm("queryRef")
handleQuery()
}
@ -183,7 +195,7 @@ function submitForm() {
/** 删除按钮操作 */
function handleDelete(row) {
const sectionId = row.sectionId
proxy.$modal.confirm('是否确认删除编号为"' + postIds + '"的数据项?').then(function () {
proxy.$modal.confirm('是否确认删除编号为"' + sectionId + '"的数据项?').then(function () {
return deleteSysSection(sectionId)
}).then(() => {
getList()