| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455 |
- <!-- -->
- <template>
- <div class="customsManger_box">
- <!-- 筛选 -->
- <el-row>
- <el-col>
- <!-- 组织搜索 -->
- <div class="search_box">
- <el-input
- size="mini"
- placeholder="请输入组织名称"
- v-model.trim="input"
- @change="searchData"
- clearable
- >
- </el-input>
- <div class="btn_box">
- <el-button type="primary" size="mini" @change="searchData"
- >搜索</el-button
- >
- <el-button type="primary" size="mini" @click="addrUser"
- >添加组织</el-button
- >
- </div>
- </div>
- </el-col>
- </el-row>
- <el-card style="margin-top: 15px">
- <!-- 列表 -->
- <tree-table
- v-loading="loading"
- v-if="treeDataSource.length > 0"
- :style="'height:' + 42 * 15 + 'px;' + 'overflow-y: auto'"
- ref="recTree"
- :list.sync="treeDataSource"
- @actionFunc="actionFunc"
- @deleteFunc="deleteFunc"
- @addOrganization="addOrganization"
- @handlerExpand="handlerExpand"
- @orderByFunc="orderByFunc"
- ></tree-table>
- <!-- 暂无数据 -->
- <div :style="'height:' + 42 * 15 + 'px;' + 'overflow-y: auto;' + 'color: #aba8a8;' + 'text-align: center;' + 'font-size: 20px;' + 'line-height: 30;'" v-if="treeDataSource.length == 0">暂无数据</div>
- <!-- 分页 -->
- <el-pagination
- :page-size="20"
- @current-change="newPage"
- :current-page="page"
- v-if="treeDataSource.length > 0"
- background
- layout="prev, pager, next, jumper"
- :total="tableSum"
- >
- </el-pagination>
- </el-card>
- <!-- 添加用户 -->
- <el-dialog
- :title="tltData"
- :close-on-click-modal="false"
- :close-on-press-escape="false"
- :visible.sync="addrUserVisible"
- width="25%"
- >
- <el-form ref="form" :model="form" label-width="80px">
- <el-form-item label="上级: ">
- <el-select
- size="mini"
- v-model="form.higher"
- placeholder="请选择活动区域"
- :disabled="true"
- >
- <el-option
- v-for="(item, index) in higherList"
- :key="index"
- :label="item.label"
- :value="item.value"
- ></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="组织名称: ">
- <el-input
- style="width: 80%"
- size="mini"
- v-model.trim="form.name"
- ></el-input>
- </el-form-item>
- <el-form-item>
- <el-button
- :disabled="submitBtn"
- size="small"
- type="primary"
- @click="onSubmit"
- >{{ submitBtn == true ? "发布中..." : "发布" }}</el-button
- >
- <el-button size="small" @click="addrUserVisible = false"
- >取消</el-button
- >
- </el-form-item>
- </el-form>
- </el-dialog>
- </div>
- </template>
- <script>
- import treeTable from "@/components/tree-table/tree_table.vue";
- import "../../mock/mock";
- export default {
- //import引入的组件需要注入到对象中才能使用
- components: {
- treeTable
- },
- data() {
- //这里存放数据
- return {
- fullHeight: document.documentElement.clientHeight - 116, //
- input: "", // 组织搜索
- treeDataSource: [],
- loading: false, // 组织 - 加载
- tableSum: 0, // 表格列表总数
- page: 1, // 当前页数
- // 添加隶属海关弹框
- addrUserVisible: false,
- higherList: [
- {
- value: "",
- label: ""
- }
- ],
- form: {
- name: "",
- higher: ""
- },
- tltData: "添加隶属海关",
- userData: {}, // 点击编辑时获取到的当前数据
- isClick: true, // 防止重复弹框
- submitBtn: false // 防止弹框确定按钮重复请求
- };
- },
- //监听属性 类似于data概念
- computed: {},
- //监控data中的数据变化
- watch: {
- // 添加隶属海关弹框
- addrUserVisible(val) {
- if (val == false) {
- this.form.higher = ""; // 清除上级值
- this.form.name = ""; // 清除组织名称值
- }
- },
- fullHeight(val) {
- //监控浏览器高度变化
- if (!this.timer) {
- this.fullHeight = val;
- this.timer = true;
- let that = this;
- setTimeout(function() {
- //防止过度调用监测事件,导致卡顿
- that.timer = false;
- }, 400);
- }
- }
- },
- //方法集合
- methods: {
- //动态获取浏览器高度
- get_boderHeight() {
- const that = this;
- window.onresize = () => {
- return (() => {
- window.fullHeight = document.documentElement.clientHeight;
- that.fullHeight = window.fullHeight;
- })();
- };
- },
- // 树形表格
- orderByFunc(val) {
- // console.log("排序");
- // console.log(val);
- },
- // 编辑
- actionFunc(m) {
- // console.log(m);
- this.userData = m;
- this.tltData = "编辑隶属海关"; //改变弹框标题
- if (m.level == 1) {
- this.$set(this.higherList, 0, {
- value: "",
- label: "根类别"
- });
- this.form.higher = "";
- } else {
- this.$set(this.higherList, 0, {
- value: m.parent_id,
- label: m.parent_name
- });
- this.form.higher = m.parent_name;
- }
- this.form.name = m.org_name;
- // console.log(this.higherList);
- this.addrUserVisible = true; //打开弹框
- },
- // 删除
- deleteFunc(m) {
- // console.log(m);
- this.$confirm("此操作将永久删除, 是否继续?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- })
- .then(() => {
- this.$axios({
- method: "POST",
- url: "/api/api_gateway?method=sysmenage.usermanager.org_delete",
- data: this.qs.stringify({
- org_id: m.id
- })
- })
- .then(res => {
- if (res.data.data == true) {
- if (document.getElementsByClassName("el-message").length == 0) {
- this.$message({
- message: "删除成功了",
- type: "success",
- duration: 1500
- });
- }
- this.tabListData();
- } else {
- if (document.getElementsByClassName("el-message").length == 0) {
- this.$message({
- message: "删除失败",
- type: "error",
- duration: 1500
- });
- }
- }
- // console.log(res);
- })
- .catch(err => {
- // console.log(err);
- });
- })
- .catch(() => {
- if (document.getElementsByClassName("el-message").length == 0) {
- this.$message({
- type: "info",
- message: "已取消删除"
- });
- }
- });
- // this.$axios({
- // method: 'POST',
- // url: '/api/api_gateway?method=sysmenage.usermanager.org_add',
- // data: this.qs.stringify({
- // org_id: m.id
- // })
- // }).then((res) => {
- // console.log(res)
- // }).catch((err) => {
- // console.log(err)
- // })
- },
- // 添加下级组织
- addOrganization(m) {
- console.log(m);
- this.tltData = "添加隶属海关"; //改变弹框标题
- this.$set(this.higherList, 0, {
- value: m.id,
- label: m.org_name
- });
- this.form.higher = m.org_name;
- this.addrUserVisible = true; //打开弹框
- },
- handlerExpand(m) {
- // console.log("展开/收缩");
- // console.log(m);
- m.isExpand = !m.isExpand;
- },
- // 请求下页数据
- newPage(page) {
- this.page = page;
- this.loading = true;
- this.tabListData();
- },
- // 添加用户 -- 一级
- addrUser() {
- this.higherList = [
- {
- label: "根类别",
- value: ""
- }
- ];
- this.addrUserVisible = true;
- this.tabListData();
- },
- // 添加用户 || 编辑用户 -- 确定
- onSubmit() {
- var that = this;
- if (this.form.name == "") {
- if (document.getElementsByClassName("el-message").length == 0) {
- if (document.getElementsByClassName("el-message").length == 0) {
- this.$message({
- message: "请填写组织名称!",
- type: "warning",
- duration: 1500
- });
- }
- }
- } else if (this.form.name.split(" ").join("").length == 0) {
- if (document.getElementsByClassName("el-message").length == 0) {
- this.$message({
- message: "不能填写空格!",
- type: "warning",
- duration: 1500
- });
- }
- } else {
- this.submitBtn = true;
- // 请求添加接口
- if (this.tltData == "编辑隶属海关") {
- // 编辑
- var url = "/api/api_gateway?method=sysmenage.usermanager.org_modify";
- var postData = this.qs.stringify({
- org_name: this.form.name, //组织名称
- org_id: this.userData.id // 组织id
- });
- } else if (this.tltData == "添加隶属海关") {
- // 添加
- var url = "/api/api_gateway?method=sysmenage.usermanager.org_add";
- var postData = this.qs.stringify({
- org_name: that.form.name, //组织名称
- parent_org_id: that.higherList[0].value // 上级组织id,没有上级组织表示创建的组织是顶级组织
- });
- }
- this.$axios({
- method: "POST",
- url,
- data: postData
- })
- .then(res => {
- if (res.data.data == true) {
- if (document.getElementsByClassName("el-message").length == 0) {
- this.$message({
- message: "成功!",
- type: "success",
- duration: 1500
- });
- }
- this.addrUserVisible = false;
- this.tabListData();
- }
- this.submitBtn = false;
- })
- .catch(err => {
- this.submitBtn = false;
- });
- }
- },
- // 请求表格列表
- tabListData() {
- this.$axios({
- method: "POST",
- url: "/api/api_gateway?method=sysmenage.usermanager.org_list",
- data: this.qs.stringify({
- page: this.page,
- page_item: "20",
- org_name: this.input
- })
- })
- .then(res => {
- if (res.data.data.total_item !== 0) {
- this.treeDataSource = res.data.data.page_list;
- this.tableSum = res.data.data.total_item;
- } else {
- this.treeDataSource = [];
- this.tableSum = 0;
- }
- this.loading = false;
- })
- .catch(err => {
- this.loading = false;
- });
- },
- // 搜索
- searchData() {
- this.tabListData();
- }
- },
- //生命周期 - 创建完成(可以访问当前this实例)
- created() {},
- //生命周期 - 挂载完成(可以访问DOM元素)
- mounted() {
- this.loading = true;
- this.tabListData(); // 请求表格列表
- },
- beforeCreate() {}, //生命周期 - 创建之前
- beforeMount() {}, //生命周期 - 挂载之前
- beforeUpdate() {}, //生命周期 - 更新之前
- updated() {}, //生命周期 - 更新之后
- beforeDestroy() {}, //生命周期 - 销毁之前
- destroyed() {}, //生命周期 - 销毁完成
- activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
- };
- </script>
- <style lang="less" scoped>
- .customsManger_box {
- /deep/.el-card {
- overflow: hidden;
- overflow-y: auto;
- }
- // 表单
- /deep/.el-form {
- .el-form-item {
- .el-form-item__content {
- // 上级
- .el-select {
- width: 80%;
- }
- }
- }
- }
- }
- // 组织搜索
- .search_box {
- display: flex;
- /deep/.el-input {
- // width: 300px;
- width: 15%;
- }
- .btn_box {
- margin: 0 0 0 15px;
- }
- }
- </style>
|