zkl 4 лет назад
Родитель
Сommit
6f3413955b

+ 1 - 1
minggao/config/index.js

@@ -22,7 +22,7 @@ module.exports = {
     },
 
     // Various Dev Server settings
-    host: '192.168.1.29', // can be overwritten by process.env.HOST
+    host: '192.168.1.4', // can be overwritten by process.env.HOST
     port: 8888, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
     autoOpenBrowser: false,
     errorOverlay: true,

+ 26 - 1
minggao/src/page/systemmanger/customsManger.vue

@@ -1,7 +1,7 @@
 <!--  -->
 <template>
   <div class="customsManger_box">
-    <el-card>
+    <el-card :style="'height:' + fullHeight + 'px'">
       <!-- 筛选 -->
       <el-row>
         <el-col>
@@ -106,6 +106,7 @@ export default {
   data() {
     //这里存放数据
     return {
+      fullHeight: document.documentElement.clientHeight - 116, //
       input: "", // 组织搜索
       treeDataSource: [],
       tableSum: 0, // 表格列表总数
@@ -138,9 +139,33 @@ export default {
         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) {
       alert("排序");

+ 38 - 0
minggao/src/page/systemmanger/dayRecord.vue

@@ -0,0 +1,38 @@
+<!--  -->
+<template>
+  <div class="">日志管理</div>
+</template>
+
+<script>
+//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》 from '《组件路径》';
+
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {};
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {},
+  //方法集合
+  methods: {},
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+//@import url(); 引入公共css类
+</style>

+ 337 - 0
minggao/src/page/systemmanger/harmfulBiology.vue

@@ -0,0 +1,337 @@
+<!--  -->
+<template>
+  <div class="harmfulBiology_box">
+    <el-card :style="'height:' + fullHeight + 'px'">
+      <!-- 筛选 -->
+      <el-row>
+        <el-col>
+          <!-- 组织搜索 -->
+          <div class="search_box">
+            <el-input
+              size="small"
+              placeholder="请输入有害生物名称"
+              v-model="input"
+              @change="searchData"
+              clearable
+            >
+            </el-input>
+            <div class="btn_box">
+              <el-button type="primary" size="small" @click="searchData"
+                >搜索</el-button
+              >
+              <el-button type="primary" size="small" @click="addrHarmfulBiology"
+                >添加有害生物</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+
+      <!-- 列表 -->
+      <el-table :data="tableData" stripe style="width: 100%">
+        <el-table-column prop="ind" label="序号" width="120"> </el-table-column>
+        <el-table-column prop="name" label="有害生物名称" width="280">
+        </el-table-column>
+        <el-table-column prop="judge" label="检疫性有害生物(是/否)" width="180">
+        </el-table-column>
+        <el-table-column prop="judge2" label="是否外来物种" width="180">
+        </el-table-column>
+        <el-table-column prop="remark" label="备注" width="280">
+        </el-table-column>
+        <el-table-column prop="addDate" label="添加时间" width="180">
+        </el-table-column>
+        <el-table-column prop="endDate" label="最后修改时间" width="180">
+        </el-table-column>
+        <el-table-column label="操作">
+          <template slot-scope="scope">
+            <a class="reset" href="javascript:;" @click="actionFunc(scope.row)"
+              >编辑</a
+            >
+            <i class="line"></i>
+            <a class="delete" href="javascript:;" @click="deleteFunc(scope.row)"
+              >删除</a
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <!-- 分页 -->
+      <el-pagination
+        v-if="tableData.length !== 0"
+        @current-change="changeList"
+        background
+        layout="prev, pager, next, jumper"
+        :current-page="page"
+        :total="pageSum"
+      >
+      </el-pagination>
+    </el-card>
+
+    <!-- 添加、编辑弹出框 -->
+    <el-dialog
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :title="tltData"
+      :visible.sync="addrInsectVisible"
+      width="30%"
+    >
+      <el-form ref="form" :rules="rules" :model="form" label-width="150px">
+        <el-form-item label="有害生物名称: " prop="name">
+          <el-input
+            style="width: 80%"
+            size="mini"
+            v-model="form.name"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="检疫性有害生物: " prop="judge">
+          <el-select v-model="form.judge" placeholder="请选择检疫性有害生物">
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="是否外来入侵物种: " prop="judge2">
+          <el-select v-model="form.judge2" placeholder="请选择否外来入侵物种">
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="备注: " prop="remark">
+          <el-input
+            style="width: 80%"
+            size="mini"
+            type="textarea"
+            resize="none"
+            v-model="form.remark"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item>
+          <el-button size="small" type="primary" @click="submitForm"
+            >确定</el-button
+          >
+          <el-button size="small" @click="addrUserVisible = false"
+            >取消</el-button
+          >
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      fullHeight: document.documentElement.clientHeight - 116, //
+      input: "", // 搜索
+      page: 1, //当前页码
+      pageSum: 0, // 总数量
+
+      // 列表
+      tableData: [
+        {
+          ind: "1",
+          name: "冥蛾引诱剂",
+          judge: "是",
+          judge2: "是",
+          remark: "这是一个有害虫类",
+          addDate: "2016-05-02 10:00:00",
+          endDate: "2021-01-06 10:00:00",
+        },
+        {
+          ind: "2",
+          name: "冥蛾引诱剂",
+          judge: "是",
+          judge2: "是",
+          remark: "这是一个有害虫类",
+          addDate: "2016-05-02 10:00:00",
+          endDate: "2021-01-06 10:00:00",
+        },
+      ],
+
+      // 编辑、 添加
+      tltData: "添加有害生物",
+      addrInsectVisible: false,
+      form: {
+        name: "", //有害生物名称
+        judge: "", // 检疫性有害生物
+        judge2: "", //是否外来入侵物种
+        remark: "", // 备注
+      },
+      rules: {
+        name: [
+          { required: true, message: "请输入有害生物名称", trigger: "blur" },
+          //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
+        ],
+        judge: [
+          { required: true, message: "请选检疫性有害生物", trigger: "blur" },
+          //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
+        ],
+        judge2: [
+          {
+            required: true,
+            message: "请选择是否外来入侵物种",
+            trigger: "blur",
+          },
+          //   { min: 3, max: 5, message: "长度在 1 到 30 个字符", trigger: "blur" },
+        ],
+        remark: [
+          { required: true, message: "请输入备注", trigger: "blur" },
+          //   { min: 3, max: 5, message: "长度在 1 到 30 个字符", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {
+    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;
+        })();
+      };
+    },
+
+    // 搜索
+    searchData() {},
+
+    // 添加有害生物
+    addrHarmfulBiology() {
+      this.tltData = "添加有害生物";
+      this.addrInsectVisible = true;
+    },
+
+    // 获取有害生物列表
+    harmfulBiologyList() {
+      this.$axios({
+        method: "POST",
+        url: "/api/api_gateway?method=sysmenage.maintain.pest_list",
+        data: this.qs.stringify({
+          page: this.page,
+          page_item: "10",
+          pest_name: this.input,
+        }),
+      })
+        .then((res) => {
+          console.log(res);
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+
+    // 分页
+    changeList(page) {
+      this.page = page;
+      this.harmfulBiologyList();
+    },
+
+    // 编辑
+    actionFunc(data) {
+      this.tltData = "编辑有害生物";
+      this.addrInsectVisible = true;
+    },
+
+    // 删除
+    deleteFunc(data) {
+      this.$confirm("此操作将永久删除, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {})
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消删除",
+          });
+        });
+    },
+
+    // 添加 - 编辑 确定
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          alert("完成");
+        } else {
+          //   console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    // this.harmfulBiologyList()
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+.harmfulBiology_box {
+  .search_box {
+    display: flex;
+    /deep/.el-input {
+      width: 300px;
+    }
+    .btn_box {
+      margin: 0 0 0 15px;
+    }
+  }
+  a {
+    text-decoration: none;
+  }
+  .reset {
+    color: #1890ff;
+  }
+  .delete {
+    color: #f56c6c;
+  }
+  .line {
+    display: inline-block;
+    width: 1px;
+    background: rgba(0, 0, 0, 0.09);
+    margin: 0 11px;
+    height: 14px;
+  }
+
+  // 弹框
+  /deep/.el-select {
+    width: 80%;
+  }
+}
+</style>

+ 111 - 16
minggao/src/page/systemmanger/motif.vue

@@ -21,7 +21,11 @@
           </div>
         </li>
         <li>
-          <el-button size="mini" type="primary" style="margin: 10px 0 0 100px"
+          <el-button
+            size="mini"
+            type="primary"
+            @click="btnEdit"
+            style="margin: 10px 0 0 100px"
             >编辑</el-button
           >
         </li>
@@ -43,7 +47,7 @@
             ref="upload"
             :http-request="ImgUploadSectionFile"
             :with-credentials="true"
-            :auto-upload="false"
+            :auto-upload="true"
             accept=".png, .jpg, .gif, .svg"
             action
             :on-change="handleChange"
@@ -52,11 +56,7 @@
             multiple
             :show-file-list="false"
           >
-            <img
-              v-if="userDetail.role_logo"
-              :src="userDetail.role_logo"
-              class="avatar"
-            />
+            <img v-if="form.img" :src="form.img" class="avatar" />
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
         </el-form-item>
@@ -68,18 +68,18 @@
           ></el-input>
         </el-form-item>
 
-        <el-form-item label="版权信息: " prop="describe">
+        <el-form-item label="版权信息: " prop="role_describe">
           <el-input
             style="width: 80%"
             size="mini"
             type="textarea"
             resize="none"
-            v-model="form.describe"
+            v-model="form.role_describe"
           ></el-input>
         </el-form-item>
 
         <el-form-item>
-          <el-button size="small" type="primary"
+          <el-button size="small" type="primary" @click="confirm"
             >确定</el-button
           >
           <el-button size="small" @click="redactVisible = false"
@@ -99,16 +99,16 @@ export default {
     //这里存放数据
     return {
       fullHeight: document.documentElement.clientHeight - 116, //
-      redactVisible: true,
+      redactVisible: false,
       form: {
         img: "",
         name: "",
-        describe: "",
+        role_describe: "",
       },
       rules: {
-        img: [{ required: true, message: "请输入系统名称", trigger: "blur" }],
+        img: [{ required: true, message: "请上传系统LOGO", trigger: "blur" }],
         name: [{ required: true, message: "请输入系统名称", trigger: "blur" }],
-        describe: [
+        role_describe: [
           { required: true, message: "请输入版本信息", trigger: "blur" },
         ],
       },
@@ -149,8 +149,103 @@ export default {
     },
 
     // 上传图片
-    ImgUploadSectionFile() {},
-    handleChange() {},
+    ImgUploadSectionFile(param) {
+      let that = this;
+      let formData = new FormData();
+      formData.append("img_file", param.file); //首页图片
+      that
+        .$axios({
+          method: "post",
+          url: "api/api_gateway?method=monitor_manage.cbd_manage.add_img",
+          data: formData,
+        })
+        .then((res) => {
+          if (res.data.data.src !== "0") {
+            that.imageSrc = res.data.data.src;
+            that.form.img = res.data.data.src;
+          } else {
+            that.$message.error({
+              message: "上传图片失败,请重试",
+              duration: 1500,
+            });
+          }
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+      //   that.clearUploadBox();
+    },
+    handleChange(file, fileList) {
+      if (!/\.(gif|jpg|jpeg|png|bmp|GIF|JPG|PNG)$/.test(file.raw.name)) {
+        alert("图片类型必须是.gif,jpeg,jpg,png,bmp中的一种");
+        return false;
+      }
+      let reader = new FileReader();
+      reader.onload = (e) => {
+        let data;
+        if (typeof e.target.result === "object") {
+          // 把Array Buffer转化为blob 如果是base64不需要
+          data = window.URL.createObjectURL(new Blob([e.target.result]));
+        } else {
+          data = e.target.result;
+        }
+      };
+      reader.readAsArrayBuffer(file.raw);
+      this.fileList = fileList;
+    },
+
+    // 按钮编辑
+    btnEdit() {
+      this.redactVisible = true;
+    },
+
+    // 编辑确定
+    confirm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          this.$axios({
+            method: 'POST',
+            url: '/api/api_gateway?method=sysmenage.usermanager.theme_modify',
+            data: this.qs.stringify({
+                logo_url: this.form.img, // logo链接地址
+                sys_name: this.form.name, // 系统名称
+                copyright_info: this.form.role_describe, // 版权信息
+            })
+          }).then((res) => {
+              console.log(res)
+          }).catch((err) => {
+              console.log(err)
+          })
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+
+      //   if (this.form.img == "") {
+      //     // 图片
+      //     this.$message({
+      //       message: "系统LOGO不能为空!",
+      //       type: "warning",
+      //       duration: 1500
+      //     });
+      //   } else if (this.form.name == "") {
+      //     // 系统名称
+      //     this.$message({
+      //       message: "系统名称不能为空!",
+      //       type: "warning",
+      //       duration: 1500
+      //     });
+      //   } else if (this.form.role_describe == "") {
+      //     // 版本信息
+      //     this.$message({
+      //       message: "版本信息不能为空!",
+      //       type: "warning",
+      //       duration: 1500
+      //     });
+      //   } else {
+      //   }
+    },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},

+ 26 - 1
minggao/src/page/systemmanger/role.vue

@@ -1,7 +1,7 @@
 <!--  -->
 <template>
   <div class="role_box">
-    <el-card>
+    <el-card :style="'height:' + fullHeight + 'px'">
       <!-- 筛选 -->
       <el-row>
         <el-col>
@@ -133,6 +133,7 @@ export default {
   data() {
     //这里存放数据
     return {
+      fullHeight: document.documentElement.clientHeight - 116, //
       input: "",
       tableData: [],
       page: 1,
@@ -180,9 +181,33 @@ export default {
         this.form.describe = "";
       }
     },
+
+    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;
+        })();
+      };
+    },
+
     tabListData() {
       this.$axios({
         method: "POST",

+ 488 - 0
minggao/src/page/systemmanger/userManger.vue

@@ -0,0 +1,488 @@
+<!--  -->
+<template>
+  <div class="userManger_box">
+    <el-card :style="'height:' + fullHeight + 'px'">
+      <div class="card_box">
+        <!-- 组织 -->
+        <div
+          class="userManger_left"
+          :style="'height:' + (fullHeight - 100) + 'px'"
+        >
+          <el-tree
+            :data="data"
+            :props="defaultProps"
+            @node-click="handleNodeClick"
+          ></el-tree>
+        </div>
+
+        <!-- 搜索和表格 -->
+        <div
+          class="userManger_right"
+          :style="'height:' + (fullHeight - 100) + 'px'"
+        >
+          <!-- 搜索 -->
+          <el-row>
+            <el-col>
+              <!-- 组织搜索 -->
+              <div class="search_box">
+                <el-input
+                  size="small"
+                  placeholder="请输入用户姓名"
+                  v-model="nameVal"
+                  @change="searchData"
+                  clearable
+                >
+                </el-input>
+                <el-input
+                  size="small"
+                  placeholder="请输入手机号"
+                  v-model="phoneVal"
+                  @change="searchData"
+                  clearable
+                >
+                </el-input>
+                <div class="btn_box">
+                  <el-button type="primary" size="small" @click="searchData"
+                    >搜索</el-button
+                  >
+                  <el-button type="primary" size="small" @click="addrRole"
+                    >添加用户</el-button
+                  >
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+
+          <!-- 表格 -->
+          <el-table :data="tableData" stripe style="width: 100%">
+            <el-table-column prop="ind" label="序号" width="90">
+            </el-table-column>
+            <el-table-column prop="name" label="姓名" width="190">
+            </el-table-column>
+            <el-table-column prop="user" label="账号名称" width="200">
+            </el-table-column>
+            <el-table-column prop="phone" label="手机号" width="120">
+            </el-table-column>
+            <el-table-column prop="texture" label="所属组织" width="280">
+            </el-table-column>
+            <el-table-column prop="state" label="状态" width="120">
+              <template slot-scope="scope">
+                <span v-if="scope.row.state == '1'">
+                  <span
+                    style="
+                      width: 6px;
+                      height: 6px;
+                      background: #30a031;
+                      border-radius: 50%;
+                      display: inline-block;
+                      margin: 0 0 2px 0;
+                    "
+                  ></span>
+                  <span>正常</span>
+                </span>
+                <span v-if="scope.row.state == '0'">
+                  <span
+                    style="
+                      width: 6px;
+                      height: 6px;
+                      background: #f93f3d;
+                      border-radius: 50%;
+                      display: inline-block;
+                      margin: 0 0 2px 0;
+                    "
+                  ></span>
+                  <span>停用</span>
+                </span>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" width="280">
+              <template slot-scope="scope">
+                <a
+                  class="reset"
+                  href="javascript:;"
+                  @click="actionFunc(scope.row)"
+                  >编辑</a
+                >
+                <i class="line"></i>
+                <a class="delete" href="javascript:;" @click="outUse(scope.row)"
+                  >停用</a
+                >
+                <i class="line"></i>
+                <a
+                  class="reset"
+                  href="javascript:;"
+                  @click="resetPwd(scope.row)"
+                  >重置密码</a
+                >
+                <i class="line"></i>
+                <a
+                  class="delete"
+                  href="javascript:;"
+                  @click="deleteFunc(scope.row)"
+                  >删除</a
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+
+          <!-- 分页 -->
+          <el-pagination
+            v-if="tableData.length !== 0"
+            @current-change="changeList"
+            background
+            layout="prev, pager, next, jumper"
+            :current-page="page"
+            :total="pageSum"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </el-card>
+
+    <!-- 添加 - 编辑 用户 -->
+    <el-dialog :title="tltData" :visible.sync="userVisible" width="30%">
+      <el-form ref="form" :rules="rules" :model="form" label-width="150px">
+        <el-form-item label="账号: " prop="user">
+          <el-input
+            style="width: 80%"
+            size="mini"
+            v-model="form.user"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="密码: " prop="password">
+          <el-input
+            style="width: 80%"
+            size="mini"
+            v-model="form.password"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="姓名: " prop="name">
+          <el-input
+            style="width: 80%"
+            size="mini"
+            v-model="form.name"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="隶属海关: " prop="judge">
+          <el-select v-model="form.judge" placeholder="请选择">
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="角色: " prop="role">
+          <el-select v-model="form.role" placeholder="请选择否">
+            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option label="区域二" value="beijing"></el-option>
+          </el-select>
+        </el-form-item>
+
+        <el-form-item label="手机号码: " prop="phone">
+          <el-input
+            style="width: 80%"
+            size="mini"
+            v-model="form.phone"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="备注: " prop="remark">
+          <el-input
+            style="width: 80%"
+            size="mini"
+            type="textarea"
+            resize="none"
+            v-model="form.remark"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item>
+          <el-button size="small" type="primary" @click="submitForm"
+            >确定</el-button
+          >
+          <el-button size="small" @click="addrUserVisible = false"
+            >取消</el-button
+          >
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {},
+  data() {
+    //这里存放数据
+    return {
+      fullHeight: document.documentElement.clientHeight - 116, //
+
+      // 树形图
+      data: [
+        {
+          label: "一级 1",
+          children: [
+            {
+              label: "二级 1-1",
+              children: [
+                {
+                  label: "三级 1-1-1",
+                },
+              ],
+            },
+          ],
+        },
+        {
+          label: "一级 2",
+          children: [
+            {
+              label: "二级 2-1",
+              children: [
+                {
+                  label: "三级 2-1-1",
+                },
+              ],
+            },
+            {
+              label: "二级 2-2",
+              children: [
+                {
+                  label: "三级 2-2-1",
+                },
+              ],
+            },
+          ],
+        },
+        {
+          label: "一级 3",
+          children: [
+            {
+              label: "二级 3-1",
+              children: [
+                {
+                  label: "三级 3-1-1",
+                },
+              ],
+            },
+            {
+              label: "二级 3-2",
+              children: [
+                {
+                  label: "三级 3-2-1",
+                },
+              ],
+            },
+          ],
+        },
+      ],
+      defaultProps: {
+        children: "children",
+        label: "label",
+      },
+
+      // 搜索
+      nameVal: "",
+      phoneVal: "",
+
+      // 表格
+      tableData: [
+        {
+          ind: "1",
+          name: "王小虎",
+          user: "王小虎的账号",
+          phone: "18538403123",
+          texture: "海关局-检测部门",
+          state: "1", // 1正常 0停用
+        },
+        {
+          ind: "2",
+          name: "王小虎",
+          user: "王小虎的账号",
+          phone: "18538403123",
+          texture: "海关局-检测部门",
+          state: "0", // 1正常 0停用
+        },
+      ],
+
+      // 分页
+      page: 1, //当前页码
+      pageSum: 0, // 总数量
+
+      // 弹框
+      tltData: "添加用户",
+      userVisible: true,
+      form: {
+        user: "", //账号
+        password: '', // 密码
+        name: '', // 姓名
+        judge: "", // 隶属海关
+        role: "", //角色
+        phone: "", // 手机号码
+      },
+      rules: {
+        user: [
+          { required: true, message: "请输入账号", trigger: "blur" },
+          //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
+        ],
+        password: [
+          { required: true, message: "请输入密码", trigger: "blur" },
+          //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
+        ],
+        name: [
+          { required: true, message: "请输入姓名", trigger: "blur" },
+          //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
+        ],
+        judge: [
+          { required: true, message: "请选检疫性有害生物", trigger: "blur" },
+          //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
+        ],
+        role: [
+          {
+            required: true,
+            message: "请选择角色",
+            trigger: "blur",
+          },
+          //   { min: 3, max: 5, message: "长度在 1 到 30 个字符", trigger: "blur" },
+        ],
+        phone: [
+          { required: true, message: "请输入手机号码", trigger: "blur" },
+          //   { min: 3, max: 5, message: "长度在 1 到 30 个字符", trigger: "blur" },
+        ],
+      },
+    };
+  },
+  //监听属性 类似于data概念
+  computed: {},
+  //监控data中的数据变化
+  watch: {
+    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;
+        })();
+      };
+    },
+
+    // 树形图
+    handleNodeClick(data) {
+      console.log(data);
+    },
+
+    // 编辑
+    actionFunc(data) {},
+
+    // 停用
+    outUse(data) {},
+
+    // 重置密码
+    resetPwd() {},
+
+    // 删除
+    deleteFunc(data) {},
+
+    // 分页
+    changeList(page) {
+      this.page = page;
+    },
+
+    // 搜索
+    searchData() {},
+
+    // 添加用户
+    addrRole() {},
+
+    // 添加 - 编辑 确定
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          alert("完成");
+        } else {
+          //   console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='less' scoped>
+.userManger_box {
+  .card_box {
+    display: flex;
+    width: 100%;
+    // 树形图
+    .userManger_left {
+      width: 19%;
+      margin: 0 15px 0 0;
+      padding: 5px;
+      border: 1px solid #eeeeee;
+      border-radius: 5px;
+    }
+
+    // 搜索和表格
+    .userManger_right {
+      width: 80%;
+      //   border: 1px solid red;
+
+      // 搜索
+      .search_box {
+        display: flex;
+        /deep/.el-input {
+          width: 20%;
+          margin: 0 15px 0 0;
+        }
+        .btn_box {
+        }
+      }
+      a {
+        text-decoration: none;
+      }
+      .reset {
+        color: #1890ff;
+      }
+      .delete {
+        color: #f56c6c;
+      }
+      .line {
+        display: inline-block;
+        width: 1px;
+        background: rgba(0, 0, 0, 0.09);
+        margin: 0 11px;
+        height: 14px;
+      }
+    }
+  }
+}
+</style>

+ 27 - 3
minggao/src/router/index.js

@@ -8,9 +8,12 @@ import Login from '@/page/login/login'
 // *****************首页**********************
 import Index from '@/page/home/index'
 //---------------------------------------系统管理----------------------------------------------------
-const customsManger = () => import('@/Page/systemmanger/customsManger') 
-const role = () => import('@/Page/systemmanger/role')
-const motif = () => import('@/Page/systemmanger/motif')
+const customsManger = () => import('@/Page/systemmanger/customsManger') //隶属海关
+const role = () => import('@/Page/systemmanger/role') // 角色管理
+const motif = () => import('@/Page/systemmanger/motif') // 主题定制
+const harmfulBiology = () => import('@/Page/systemmanger/harmfulBiology') // 有害生物维护
+const userManger = () => import('@/Page/systemmanger/userManger') // 用户管理
+const dayRecord = () => import('@/Page/systemmanger/dayRecord') // 用户管理
 
 // *****************测报系统**********************
 import cbd from '@/page/forecasting/cbd/Cbd'//首页
@@ -67,6 +70,27 @@ export default new Router({
             title: '主题管理'
           }
         },
+        {
+          path: 'harmfulBiology',
+          component: harmfulBiology,
+          meta: {
+            title: '有害生物维护'
+          }
+        },
+        {
+          path: 'userManger',
+          component: userManger,
+          meta: {
+            title: '用户管理'
+          }
+        },
+        {
+          path: 'dayRecord',
+          component: dayRecord,
+          meta: {
+            title: '日志管理'
+          }
+        },
         //------------------系统管理--------------------------
         {
           path: 'cbd',

+ 1 - 1
minggao/src/util/http.js

@@ -38,7 +38,7 @@ axios.interceptors.request.use(req => {
   //   }
   // }
   url = req.url.split('=')[1]
-  if (url != 'sysmenage.usermanager.user_login' ) {
+  if (url != 'sysmenage.usermanager.user_login' && url !== 'monitor_manage.cbd_manage.add_img' ) {
     req.data = req.data ? req.data + '&token=' + session : 'token=' + session;
   }
   return req