Ver Fonte

分组模块搭建

yxc há 2 anos atrás
pai
commit
1ab3a4083f

+ 1 - 0
package.json

@@ -52,6 +52,7 @@
     "quill": "1.3.7",
     "screenfull": "5.0.2",
     "sortablejs": "1.10.2",
+    "v-selectpage": "^2.1.4",
     "vue": "2.6.12",
     "vue-count-to": "1.0.13",
     "vue-cropper": "0.5.5",

+ 13 - 0
src/main.js

@@ -2,6 +2,9 @@ import Vue from 'vue'
 
 import Cookies from 'js-cookie'
 
+//引入v-selectpage组件
+import vSelectPage from 'v-selectpage'
+
 import Element from 'element-ui'
 import './assets/styles/element-variables.scss'
 
@@ -87,3 +90,13 @@ new Vue({
 })
 //弹窗时点击空白处不关闭弹窗
 Element.Dialog.props.closeOnClickModal.default = false;
+
+
+Vue.use(vSelectPage, {
+  // server side data loader
+  dataLoad: function(vue, data, params){
+    return new Promise((resolve, reject)=>{
+      axios.post(url, params).then(resp => resolve(resp), resp => reject(resp))
+    })
+  }
+})

+ 55 - 0
src/styles1/element-ui1.scss

@@ -68,6 +68,61 @@
 }
 
 
+//新增/修改弹窗样式
+.el-dialog{
+  width: calc(100vw * (700 / 1920)) !important;
+  height: calc(100vh * (650 / 1080)) !important;
+  background: url(../assets/img/Group-585.png);
+  background-size: calc(100vw * (700 / 1920)) calc(100vh * (650 / 1080));
+  padding-top: calc(100vh * (30 / 1080));
+  padding-right: calc(100vw * (80 / 1920));    
+  padding-left: calc(100vw * (80 / 1920));    
+  .el-dialog__body{
+    padding: 0;
+  }
+  .vue-treeselect__control{
+    width: calc(100vw * (350 / 1920)) !important;
+    background: transparent;
+    border: 1px solid #006C9AFF;
+    
+  }
+  .vue-treeselect__single-value{
+    color: #7EA4C8FF;
+  }
+  .el-input{
+    width: calc(100vw * (350 / 1920)) !important;
+    .el-input__inner{
+      color: #7EA4C8FF;
+    }
+  }
+  .el-textarea{
+    width: calc(100vw * (350 / 1920)) !important;
+    .el-textarea__inner{
+      color: #7EA4C8FF;
+    }
+  }
+  .el-form-item{
+    margin-top: calc(100vw * (50 / 1920));
+  }
+}
+//下面按钮
+.el-button--medium{
+  // margin-top: calc(100vw * (50 / 1920));
+  background-color: #1E5095FF !important;
+  border-color: #02C2E3FF !important;
+  &:hover{
+    color: #ffffff;
+  }
+}
+//右上角关闭按钮
+.el-dialog__headerbtn .el-dialog__close {
+  color: #02C2E3FF;
+  margin-top: 40px;
+  margin-right: 30px;
+  border: 1px solid #02C2E3FF;
+  border-radius: 50%;
+}
+
 
 .cell {
   .el-tag {

+ 0 - 11
src/views1/File/Demand/DemandView.vue

@@ -537,17 +537,6 @@ export default {
    color: #FFFFFFFF;
 }
 
-// 同意扩容样式
-// ::v-deep .el-message-box{
-//   width: calc(100vw * (100 / 1920)) !important;
-//   height: calc(100vh * (200 / 1080)) !important;
-//   // background: url(../../../assets/img/Group-585.png);
-//   // background-size: calc(100vw * (480 / 1920)) calc(100vh * (230 / 1080));
-//   // padding-top: calc(100vh * (20 / 1080));
-//   // padding-left: calc(100vw * (20 / 1920));
-//   // padding-right: calc(100vw * (20 / 1920));
-//   // border: none; 
-// }
 </style>
  
   

+ 0 - 17
src/views1/File/Level/LevelView.vue

@@ -353,15 +353,6 @@
     color: white;
 }
 //修改的弹出框样式
-::v-deep .el-dialog{
-  width: calc(100vw * (700 / 1920)) !important;
-  height: calc(100vh * (620 / 1080)) !important;
-  padding-top: calc(100vh * (30 / 1080));
-  padding-right: calc(100vw * (80 / 1920));    
-  padding-left: calc(100vw * (50 / 1920));    
-  background: url(../../../assets/img/Group-585.png);
-  background-size: calc(100vw * (700 / 1920)) calc(100vh * (620 / 1080));
-}
 ::v-deep .el-input__inner{
     color: #7EA4C8;
 }
@@ -385,14 +376,6 @@
     color: white;
     margin-left: 10px;
 }
-//弹窗右上角关闭
-::v-deep .el-dialog__headerbtn .el-dialog__close {
-    color: #02C2E3FF;
-    margin-top: 25px;
-    margin-right: 25px;
-    border: 1px solid #02C2E3FF;
-    border-radius: 50%;
-}
 
 
   </style>

+ 564 - 4
src/views1/Group/Groups/GroupsView.vue

@@ -1,11 +1,571 @@
 <template>
-<h1>分组</h1>
-</template>
+  <div class="containe">
+    <div class="header">
+      <span>分组管理</span>
+      <img src="../../../assets/img/chevron-down.png" alt="" />
+      <img src="../../../assets/img/slash.png" alt="" />
+      <span class="top1">分组</span>
+      <img src="../../../assets/img/chevron-up.png" alt="" class="top2" />
+      <img src="../../../assets/img/slash.png" alt="" />
+    </div>
+    <div class="title">分组</div>
+    <div class="main">
+      <h3>分组</h3>
+      <div class="main-main">
+        <el-form
+          :model="queryParams"
+          ref="queryForm"
+          size="small"
+          :inline="true"
+          v-show="showSearch"
+          label-width="110px"
+        >
+          <el-form-item label="分组名称" prop="groupName">
+            <el-input
+              v-model="queryParams.groupName"
+              placeholder="请输入分组名称"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="分组管理员" prop="groupManager">
+            <el-input
+              v-model="queryParams.groupManager"
+              placeholder="请输入分组管理员"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="分组管理员姓名" prop="groupManagerName">
+            <el-input
+              v-model="queryParams.groupManagerName"
+              placeholder="请输入分组管理员姓名"
+              clearable
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item>
+            <el-button
+              type="primary"
+              icon="el-icon-search"
+              size="mini"
+              @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
+              type="primary"
+              plain
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd"
+              v-hasPermi="['doc:group:add']"
+              >新增</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="success"
+              plain
+              icon="el-icon-edit"
+              size="mini"
+              :disabled="single"
+              @click="handleUpdate"
+              v-hasPermi="['doc:group:edit']"
+              >修改</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="danger"
+              plain
+              icon="el-icon-delete"
+              size="mini"
+              :disabled="multiple"
+              @click="handleDelete"
+              v-hasPermi="['doc:group:remove']"
+              >删除</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="warning"
+              plain
+              icon="el-icon-download"
+              size="mini"
+              @click="handleExport"
+              v-hasPermi="['doc:group:export']"
+              >导出</el-button
+            >
+          </el-col>
+          <right-toolbar
+            :showSearch.sync="showSearch"
+            @queryTable="getList"
+          ></right-toolbar>
+        </el-row>
+
+        <el-table
+          v-loading="loading"
+          :data="groupList"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="分组ID" align="center" prop="groupId" />
+          <el-table-column label="分组名称" align="center" prop="groupName" />
+          <el-table-column
+            label="分组管理员"
+            align="center"
+            prop="groupManager"
+          />
+          <el-table-column
+            label="分组管理员姓名"
+            align="center"
+            prop="groupManagerName"
+          />
+          <el-table-column
+            label="操作"
+            align="center"
+            class-name="small-padding fixed-width"
+          >
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-edit"
+                @click="handleUpdate(scope.row)"
+                v-hasPermi="['doc:group:edit']"
+                >修改</el-button
+              >
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.row)"
+                v-hasPermi="['doc:group:remove']"
+                >删除</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
+
+        <!-- 添加或修改分组对话框 -->
+        <el-dialog
+          :title="title"
+          :visible.sync="open"
+          width="500px"
+          append-to-body
+        >
+          <el-form ref="form" :model="form" :rules="rules" label-width="130px">
+            <el-form-item label="分组名称" prop="groupName">
+              <el-input v-model="form.groupName" placeholder="请输入分组名称" />
+            </el-form-item>
+            <el-form-item label="分组管理员" prop="groupManager">
+              <el-input
+                v-model="form.groupManager"
+                placeholder="请输入分组管理员"
+                @click.native="select()"
+              />  
+            </el-form-item>
+            <el-form-item label="分组管理员姓名" prop="groupManagerName">
+              <el-input
+                v-model="form.groupManagerName"
+                placeholder="请输入分组管理员姓名"
+              />
+            </el-form-item>
+            <el-form-item label="备注" prop="remark">
+              <el-input v-model="form.remark" placeholder="请输入备注" />
+            </el-form-item>
+          </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 class="open1" v-if="opan">
+          <el-button icon="el-icon-close" @click="opan = false" circle class="el-close" size="mini"></el-button>
+          <div class="open1-main">
 
+          </div>
+          <span slot="footer" class="dialog-footer">
+          <el-button @click="opan = false">确 定</el-button>
+          <el-button @click="opan = false">取 消</el-button>
+  </span>
+        </div>
+
+      </div>
+    </div>
+  </div>
+</template>
+    
 <script>
+import {
+  listGroup,
+  getGroup,
+  delGroup,
+  addGroup,
+  updateGroup,
+} from "@/api/doc/group";
 
-</script>
+export default {
+  name: "Group",
+  data() {
+    return {
+       //添加分组管理员
+       opan:true,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 分组表格数据
+      groupList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        groupName: null,
+        groupManager: null,
+        groupManagerName: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {},
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    // 分组管理员
+    select(){
+      this.opan=true
+    },
 
+    /** 查询分组列表 */
+    getList() {
+      this.loading = true;
+      listGroup(this.queryParams).then((response) => {
+        this.groupList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        groupId: null,
+        groupName: null,
+        groupManager: null,
+        groupManagerName: null,
+        creater: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        remark: null,
+        isDel: null,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.groupId);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加分组";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const groupId = row.groupId || this.ids;
+      getGroup(groupId).then((response) => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改分组";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (this.form.groupId != null) {
+            updateGroup(this.form).then((response) => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addGroup(this.form).then((response) => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const groupIds = row.groupId || this.ids;
+      this.$modal
+        .confirm('是否确认删除分组编号为"' + groupIds + '"的数据项?')
+        .then(function () {
+          return delGroup(groupIds);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download(
+        "doc/group/export",
+        {
+          ...this.queryParams,
+        },
+        `group_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
+};
+</script>
+    
 <style scoped lang='scss'>
+.containe {
+  color: #7ea4c8;
+  font-size: 0.14rem;
+  font-family: PingFang SC-Medium, PingFang SC;
+  font-weight: 500;
+  padding-left: calc(100vw * (20 / 1920));
+  //顶部信息
+  .header {
+    width: calc(100vw * (300 / 1920));
+    height: calc(100vh * (22 / 1080));
+    margin-top: calc(100vh * (20 / 1080));
+    margin-bottom: calc(100vh * (20 / 1080));
+    display: flex;
+    align-items: center;
+    img {
+      width: calc(100vw * (16 / 1920));
+      height: calc(100vh * (16 / 1080));
+      border: 1px dashed grey;
+      margin-left: 3px;
+      margin-right: 3px;
+    }
+    .top1 {
+      color: #2e8aecff;
+    }
+  }
+  //中间目录列表
+  .title {
+    height: calc(100vh * (22 / 1080));
+    margin-top: calc(100vh * (20 / 1080));
+    margin-bottom: calc(100vh * (20 / 1080));
+    color: #ffffffff;
+    font-size: 0.16rem;
+    font-weight: bold;
+    line-height: calc(100vh * (22 / 1080));
+  }
+  .main {
+    width: calc(100vw * (1876 / 1920));
+    height: calc(100vh * (880 / 1080));
+    background: url(../../../assets/img/Group-610.png);
+    background-size: calc(100vw * (1876 / 1920)) calc(100vh * (880 / 1080));
+    h3 {
+      font-size: 0.2rem;
+      color: #ffffffff;
+      padding-top: calc(100vh * (25 / 1080));
+      padding-bottom: calc(100vh * (10 / 1080));
+      padding-left: calc(100vw * (30 / 1920));
+    }
+    .main-main {
+      width: calc(100vw * (1822 / 1920));
+      height: calc(100vh * (800 / 1080));
+      margin-left: calc(100vw * (25 / 1920));
+      margin-top: calc(100vh * (20 / 1080));
+      // background: seagreen;
+      .el-table {
+        width: calc(100vw * (1822 / 1920));
+        height: calc(100vh * (600 / 1080));
+        background: transparent;
+        overflow: auto;
+      }
+      .open1{
+        width: calc(100vw * (900 / 1920));
+        height: calc(100vh * (800 / 1080));
+        background: url(../../../assets/img/Group-585.png);
+        background-size: calc(100vw * (900 / 1920)) calc(100vh * (800 / 1080));
+        position: absolute;
+        top: 5%;
+        left: 25%;
+        z-index: 99999999;
+        .el-close{
+         position: absolute;
+         right: 50px;
+         top: 55px; 
+         background: transparent !important;
+         border: 1px solid #02C2E3FF;
+        }
+        .open1-main{
+        width: calc(100vw * (700 / 1920));
+        height: calc(100vh * (600 / 1080));
+        background: salmon;
+        margin-top: calc(100vh * (80 / 1080));
+        margin-left: calc(100vw * (90 / 1920));
+        }
+        .dialog-footer{
+         position: absolute;
+         right: 50px;
+         bottom: 35px;
+        }
+      }
+    }
+    //滚动条样式
+    //   ::-webkit-scrollbar {
+    //     width: 3.5px;
+    //   }
+    //   ::-webkit-scrollbar-track {
+    //     background-color: rgba(0, 0, 0, 0);
+    //   }
+    //   ::-webkit-scrollbar-thumb {
+    //     background: #2e8aec;
+    //     border-radius: 3px;
+    //   }
+    //   ::-webkit-scrollbar-thumb:hover {
+    //     background: #2e8aec;
+    //   }
+  }
+}
+
+//底部跳转
+::v-deep .pagination-container {
+  height: calc(100vh * (50 / 1080));
+  background: transparent;
+}
+::v-deep .pagination-container .el-pagination {
+  bottom: 10px;
+}
+//table样式
+::v-deep .el-table th {
+  background: #016c9aa6;
+  color: #2e8aec;
+}
+::v-deep .el-table tr {
+  background: transparent;
+}
+::v-deep .el-table tbody tr:hover > td {
+  background-color: #016c9a78 !important;
+}
+::v-deep .el-table td.el-table__cell {
+  border-bottom: 1px solid #006c9aff;
+}
+::v-deep .el-table th.el-table__cell.is-leaf {
+  border-bottom: 1px solid #006c9aff;
+}
+::v-deep .el-form-item__label {
+  color: #2e8aecff;
+}
+::v-deep .el-input__inner {
+  background: transparent;
+  border: 1px solid #01d1ffff;
+  color: #006c9aff;
+}
+
+//table底下白线消失处理
+::v-deep .el-table {
+  color: #ffffffff;
+}
+::v-deep .el-table::before {
+  width: 0;
+}
+//按钮的样式
+::v-deep .el-button--primary.is-plain {
+  background-color: #002a5cff;
+  border: none;
+}
+::v-deep .el-button--success.is-plain.is-disabled,
+.el-button--danger.is-plain.is-disabled,
+.el-button{
+  background-color: #002a5cff;
+  color: #1890ff;
+  border: none;
+}
+//顶部样式
+::v-deep .el-form-item__label {
+  text-align: center;
+}
+//搜索刷新按钮颜色
+::v-deep .el-button.is-circle{
+    background: #006C9AFF;
+    color: white;
+}
+
 
-</style>
+//新增/修改弹窗样式
+::v-deep .el-dialog__title {
+    color: white;
+} 
+::v-deep .el-dialog{
+  width: calc(100vw * (750 / 1920)) !important;
+  height: calc(100vh * (750 / 1080)) !important;
+  background: url(../../../assets/img/Group-585.png);
+  background-size: calc(100vw * (750 / 1920)) calc(100vh * (750 / 1080));
+  padding-top: calc(100vh * (50 / 1080));
+}
+</style>
+ 
+  
+  
+  

+ 0 - 17
src/views1/Personal/Space/SpaceView.vue

@@ -630,16 +630,6 @@ export default {
 ::v-deep .el-progress-bar__innerText{
     font-size: 0;
 }
-//弹窗样式
-::v-deep .el-dialog{
-  width: calc(100vw * (700 / 1920)) !important;
-  height: calc(100vh * (620 / 1080)) !important;
-  padding-top: calc(100vh * (30 / 1080));
-  padding-right: calc(100vw * (80 / 1920));    
-  padding-left: calc(100vw * (50 / 1920));    
-  background: url(../../../assets/img/Group-585.png);
-  background-size: calc(100vw * (700 / 1920)) calc(100vh * (620 / 1080));
-}
 ::v-deep .el-dialog__body{
     padding-bottom: 0;
 }
@@ -665,13 +655,6 @@ export default {
     color: white;
     margin-left: 10px;
 }
-::v-deep .el-dialog__headerbtn .el-dialog__close {
-    color: #02C2E3FF;
-    margin-top: 25px;
-    margin-right: 25px;
-    border: 1px solid #02C2E3FF;
-    border-radius: 50%;
-}
 </style>