Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Fedex
/
EcomWeb
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
zhanbo.xu
2025-03-10 11:49:51 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
4a59c3616133eac9d94b7d2478f712f0e9cae3f9
4a59c361
1 parent
3f7c7193
feat: 开发监管场所
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
92 additions
and
165 deletions
src/api/supervisePlaceManage-api.js
src/views/supervise-place-manage/dialog.vue
src/views/supervise-place-manage/index.vue
src/api/supervisePlaceManage-api.js
View file @
4a59c36
...
...
@@ -32,3 +32,13 @@ export function updateOperatorPlace(data) {
data
:
data
,
});
}
// GET
// /portInfo/getPortCodeList
// 获取口岸列表作用于条件查询的下拉框
export
function
getPortCodeList
()
{
return
request
({
url
:
"/bus-customer/portInfo/getPortCodeList"
,
method
:
"get"
,
});
}
...
...
src/views/supervise-place-manage/dialog.vue
View file @
4a59c36
...
...
@@ -12,7 +12,6 @@
>
<div class="modelItem">
<el-form
v-if="type != 'menuChange'"
class="fedexFormStyle"
ref="formData"
:model="formData"
...
...
@@ -57,17 +56,25 @@
</el-col>
<el-col :span="8">
<Formitem label="所属口岸" prop="portCode" type="edit">
<el-
inpu
t
<el-
selec
t
type="text"
class="inputShadow"
id="inputInner-edit-portCode"
resize="none"
id="inputInner--portCode"
v-model="formData.portCode"
clearable
filterable
placeholder=""
></el-input>
>
<el-option
v-for="item in portCodeList"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<el-col :span="8">
<Formitem label="监管场所代码" prop="loctNo" type="edit">
<el-input
...
...
@@ -113,20 +120,6 @@
</el-col>
</el-row>
</el-form>
<el-tree
ref="tree"
class="menuTree"
v-else
:data="treeData"
show-checkbox
default-expand-all
node-key="id"
:default-expanded-keys="expandedKeys"
:default-checked-keys="checkedKeys"
:props="defaultProps"
@check="treeCheckChange"
>
</el-tree>
</div>
<div class="dialogOption entrySave">
<el-button
...
...
@@ -147,12 +140,9 @@
<script>
import {
addRoleData,
updateRoleData,
updateRoleMenuData,
getMenuByRoleId,
} from "@/api/system/user.js";
import { getRouters } from "@/api/menu";
addOperatorPlace,
updateOperatorPlace,
} from "@/api/supervisePlaceManage-api.js";
export default {
props: {
outerVisible: {
...
...
@@ -161,7 +151,7 @@ export default {
},
title: {
type: String,
default: "
新增角色
",
default: "
监管场所管理新增
",
},
type: {
type: String,
...
...
@@ -171,6 +161,12 @@ export default {
type: Object,
default: null,
},
portCodeList: {
type: Array,
default: () => {
return [];
},
},
},
watch: {
outerVisible(val) {
...
...
@@ -178,10 +174,6 @@ export default {
this.loadings.dialogLoading = false;
if (this.type == "update") {
this.formData = this.active;
} else if (this.type == "menuChange") {
this.formData = this.active;
this.searchTreeData();
this.loadCheckedKeys(); //加载已绑定的菜单
}
}
},
...
...
@@ -196,23 +188,23 @@ export default {
operatorPersonInCharge: "",
contactNumber: "",
},
treeData: [],
treeCheckData: [],
expandedKeys: [],
checkedKeys: [],
rules: {
roleNam
e: [
operatorCod
e: [
{
required: true,
trigger: "blur",
message: "角色名称不能为空!",
message: "监管场所代码不能为空!",
},
],
operatorName: [
{
required: true,
trigger: "blur",
message: "监管场所负责人不能为空!",
},
],
},
defaultProps: {
children: "children",
label: "label",
},
searchForm: {},
loadings: {
dialogLoading: false,
...
...
@@ -223,69 +215,15 @@ export default {
};
},
methods: {
//查询菜单数据
searchTreeData() {
this.loadings.dialogLoading = true;
getRouters()
.then((res) => {
if (res.code === "200") {
let arr = [];
res.data.forEach((item) => {
let status = true;
if (item.parentMenuId == 0) {
let obj = {
id: item.menuId,
label: item.menuName,
children: [],
};
arr.forEach((menuItem) => {
if (menuItem.id == item.menuId) {
status = false;
menuItem.label = item.menuName;
}
});
if (status) {
arr.push(obj);
}
} else {
let obj = {
id: item.menuId,
label: item.menuName,
};
arr.forEach((menuItem) => {
if (menuItem.id == item.parentMenuId) {
status = false;
menuItem.children.push(obj);
}
});
if (status) {
arr.push({
id: item.parentMenuId,
label: "",
children: [obj],
});
}
}
});
this.treeData = arr;
} else {
this.alertWarningMsg(res.message);
}
this.loadings.dialogLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
//数据保存
submit() {
this.loadings.dialogLoading = true;
let obj = {};
let obj = {
...this.formData,
};
if (this.type == "add") {
this.$refs.formData.validate((valid) => {
if (valid) {
obj.roleName = this.formData.roleName;
this.addapi(obj);
} else {
this.loadings.dialogLoading = false;
...
...
@@ -294,22 +232,17 @@ export default {
} else if (this.type == "update") {
this.$refs.formData.validate((valid) => {
if (valid) {
obj.roleId = this.formData.roleId;
obj.roleName = this.formData.roleName;
obj.id = this.active.id;
this.updateapi(obj);
} else {
this.loadings.dialogLoading = false;
}
});
} else if (this.type == "menuChange") {
obj.menuId = this.treeCheckData; // 使用合并后的选中节点
obj.roleId = this.formData.roleId;
this.menuChangeapi(obj);
}
},
//新增
addapi(val) {
add
RoleData
(val)
add
OperatorPlace
(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
...
...
@@ -326,7 +259,7 @@ export default {
},
//修改
updateapi(val) {
update
RoleData
(val)
update
OperatorPlace
(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
...
...
@@ -343,7 +276,7 @@ export default {
},
//菜单权限修改
menuChangeapi(val) {
update
RoleMenuData
(val)
update
OperatorPlace
(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
...
...
@@ -359,49 +292,18 @@ export default {
this.loadings.dialogLoading = false;
});
},
treeCheckChange(data, checked) {
console.log(data, checked);
let arr = [];
arr = checked.checkedKeys.concat(checked.halfCheckedKeys);
this.treeCheckData = arr;
},
close() {
this.formData = {
roleName: "",
operatorCode: "",
operatorName: "",
portCode: "",
loctNo: "",
operatorPersonInCharge: "",
contactNumber: "",
};
this.checkedKeys = [];
this.$emit("close");
},
// 加载已绑定的菜单
loadCheckedKeys() {
if (this.formData.roleId) {
getMenuByRoleId(this.formData.roleId)
.then((res) => {
if (res.code === "200") {
this.checkedKeys = res.data
.filter((item) => item.isBinding && item.parentMenuId != 0)
.map((item) => item.menuId);
//console.log('初始 checkedKeys:', this.checkedKeys);
this.$nextTick(() => {
this.$refs.tree.setCheckedKeys(this.checkedKeys);
this.updateTreeCheckData();
});
} else {
this.alertWarningMsg(res.message);
}
})
.catch((err) => {
console.log(err);
});
}
},
//加载选中的节点及半选中的父节点
updateTreeCheckData() {
const checkedKeys = this.$refs.tree.getCheckedKeys();
const halfCheckedKeys = this.$refs.tree.getHalfCheckedKeys();
this.treeCheckData = checkedKeys.concat(halfCheckedKeys);
//console.log('合并后的 treeCheckData:', this.treeCheckData);
},
},
};
</script>
...
...
src/views/supervise-place-manage/index.vue
View file @
4a59c36
...
...
@@ -37,15 +37,21 @@
</el-col>
<el-col :span="5">
<Formitem label="所属口岸" prop="portCode">
<el-
inpu
t
<el-
selec
t
type="text"
class="inputShadow"
id="inputInner--portCode"
resize="none"
v-model="sreachFormData.portCode"
clearable
filterable
placeholder=""
></el-input>
>
<el-option
v-for="item in portCodeList"
:key="item"
:label="item"
:value="item"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="2">
...
...
@@ -106,12 +112,7 @@
<template slot="optionColumn">
<el-table-column align="left" label="操作">
<template slot-scope="scope">
<el-button type="text" @click="update(scope.row)">
角色修改
</el-button>
<el-button type="text" @click="muenChange(scope.row)">
权限绑定
</el-button>
<el-button type="text" @click="update(scope.row)"> 修改 </el-button>
</template>
</el-table-column>
</template>
...
...
@@ -122,12 +123,16 @@
:type="editType"
:active="activeData"
@close="dialogClose"
:portCodeList="portCodeList"
/>
</div>
</template>
<script>
import { getOperatorPlaceList } from "@/api/supervisePlaceManage-api.js";
import {
getOperatorPlaceList,
getPortCodeList,
} from "@/api/supervisePlaceManage-api.js";
import DialogVue from "./dialog.vue";
export default {
name: "SupervisePlaceManage",
...
...
@@ -193,6 +198,7 @@ export default {
outerVisible: false,
dialogTitle: "",
editType: "",
portCodeList: [],
};
},
created() {
...
...
@@ -200,8 +206,22 @@ export default {
},
mounted() {
this.tableMaxheight = window.innerHeight - 300;
this.fetchPortCodeList();
},
methods: {
// 获取所属口岸
fetchPortCodeList() {
getPortCodeList()
.then((res) => {
if (res.code === "200") {
this.portCodeList = res.data;
} else {
}
})
.catch((err) => {
console.log(err);
});
},
clear() {
this.$refs.sreachForm.resetFields();
},
...
...
@@ -233,22 +253,17 @@ export default {
});
},
addRole() {
this.dialogTitle = "
新增角色
";
this.dialogTitle = "
监管场所管理新增
";
this.editType = "add";
this.outerVisible = true;
},
update(val) {
this.dialogTitle = "
修改角色
";
this.dialogTitle = "
监管场所管理修改
";
this.editType = "update";
this.outerVisible = true;
this.activeData = val;
},
muenChange(val) {
this.dialogTitle = "绑定权限";
this.editType = "menuChange";
this.outerVisible = true;
this.activeData = val;
this.activeData = JSON.parse(JSON.stringify(val));
},
dialogClose() {
this.outerVisible = false;
this.activeData = null;
...
...
Please
register
or
login
to post a comment