浏览代码

部门限制

吴树波 14 小时之前
父节点
当前提交
11ec877ca4

+ 53 - 0
src/api/deptConfigLog/sysDeptConfigLog.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询系统部门资源配置使用记录列表
+export function listSysDeptConfigLog(query) {
+  return request({
+    url: '/deptConfigLog/sysDeptConfigLog/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询系统部门资源配置使用记录详细
+export function getSysDeptConfigLog(id) {
+  return request({
+    url: '/deptConfigLog/sysDeptConfigLog/' + id,
+    method: 'get'
+  })
+}
+
+// 新增系统部门资源配置使用记录
+export function addSysDeptConfigLog(data) {
+  return request({
+    url: '/deptConfigLog/sysDeptConfigLog',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改系统部门资源配置使用记录
+export function updateSysDeptConfigLog(data) {
+  return request({
+    url: '/deptConfigLog/sysDeptConfigLog',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除系统部门资源配置使用记录
+export function delSysDeptConfigLog(id) {
+  return request({
+    url: '/deptConfigLog/sysDeptConfigLog/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出系统部门资源配置使用记录
+export function exportSysDeptConfigLog(query) {
+  return request({
+    url: '/deptConfigLog/sysDeptConfigLog/export',
+    method: 'get',
+    params: query
+  })
+}

+ 30 - 1
src/api/system/dept.js

@@ -65,4 +65,33 @@ export function delDept(deptId) {
     url: '/system/dept/' + deptId,
     method: 'delete'
   })
-}
+}
+
+// 查询部门详细
+export function updatePadNum(data) {
+  return request({
+    url: '/system/dept/updatePadNum',
+    method: 'get',
+    params: data
+  })
+}
+
+
+// 查询部门详细
+export function addRedMoney(data) {
+  return request({
+    url: '/system/dept/addRedMoney',
+    method: 'get',
+    params: data
+  })
+}
+
+
+// 查询部门详细
+export function addFlowNum(data) {
+  return request({
+    url: '/system/dept/addFlowNum',
+    method: 'get',
+    params: data
+  })
+}

+ 342 - 0
src/views/deptConfigLog/sysDeptConfigLog/index.vue

@@ -0,0 +1,342 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="部门ID" prop="deptId">
+        <el-input
+          v-model="queryParams.deptId"
+          placeholder="请输入部门ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="数据类型" prop="logType">
+        <el-select v-model="queryParams.logType" placeholder="请选择数据类型" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="操作类型" prop="operateType">
+        <el-select v-model="queryParams.operateType" placeholder="请选择操作类型" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="操作数量" prop="num">
+        <el-input
+          v-model="queryParams.num"
+          placeholder="请输入操作数量"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作前数量" prop="firstNum">
+        <el-input
+          v-model="queryParams.firstNum"
+          placeholder="请输入操作前数量"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="操作完成后数量" prop="lastNum">
+        <el-input
+          v-model="queryParams.lastNum"
+          placeholder="请输入操作完成后数量"
+          clearable
+          size="small"
+          @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="['deptConfigLog:sysDeptConfigLog: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="['deptConfigLog:sysDeptConfigLog: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="['deptConfigLog:sysDeptConfigLog:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="exportLoading"
+          @click="handleExport"
+          v-hasPermi="['deptConfigLog:sysDeptConfigLog:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table border v-loading="loading" :data="sysDeptConfigLogList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="部门ID" align="center" prop="deptId" />
+      <el-table-column label="数据类型" align="center" prop="logType" />
+      <el-table-column label="操作类型" align="center" prop="operateType" />
+      <el-table-column label="操作数量" align="center" prop="num" />
+      <el-table-column label="操作前数量" align="center" prop="firstNum" />
+      <el-table-column label="操作完成后数量" align="center" prop="lastNum" />
+      <el-table-column label="备注" align="center" prop="remark" />
+      <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="['deptConfigLog:sysDeptConfigLog:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['deptConfigLog:sysDeptConfigLog: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="80px">
+        <el-form-item label="部门ID" prop="deptId">
+          <el-input v-model="form.deptId" placeholder="请输入部门ID" />
+        </el-form-item>
+        <el-form-item label="数据类型" prop="logType">
+          <el-select v-model="form.logType" placeholder="请选择数据类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="操作类型" prop="operateType">
+          <el-select v-model="form.operateType" placeholder="请选择操作类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="操作数量" prop="num">
+          <el-input v-model="form.num" placeholder="请输入操作数量" />
+        </el-form-item>
+        <el-form-item label="操作前数量" prop="firstNum">
+          <el-input v-model="form.firstNum" placeholder="请输入操作前数量" />
+        </el-form-item>
+        <el-form-item label="操作完成后数量" prop="lastNum">
+          <el-input v-model="form.lastNum" 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>
+</template>
+
+<script>
+import { listSysDeptConfigLog, getSysDeptConfigLog, delSysDeptConfigLog, addSysDeptConfigLog, updateSysDeptConfigLog, exportSysDeptConfigLog } from "@/api/deptConfigLog/sysDeptConfigLog";
+
+export default {
+  name: "SysDeptConfigLog",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 系统部门资源配置使用记录表格数据
+      sysDeptConfigLogList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: null,
+        logType: null,
+        operateType: null,
+        num: null,
+        firstNum: null,
+        lastNum: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询系统部门资源配置使用记录列表 */
+    getList() {
+      this.loading = true;
+      listSysDeptConfigLog(this.queryParams).then(response => {
+        this.sysDeptConfigLogList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        deptId: null,
+        logType: null,
+        operateType: null,
+        num: null,
+        firstNum: null,
+        lastNum: null,
+        createTime: null,
+        createBy: null,
+        updateTime: null,
+        updateBy: null,
+        remark: 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.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加系统部门资源配置使用记录";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSysDeptConfigLog(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改系统部门资源配置使用记录";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSysDeptConfigLog(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSysDeptConfigLog(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除系统部门资源配置使用记录编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delSysDeptConfigLog(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有系统部门资源配置使用记录数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          this.exportLoading = true;
+          return exportSysDeptConfigLog(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+          this.exportLoading = false;
+        }).catch(() => {});
+    }
+  }
+};
+</script>

+ 3 - 3
src/views/qw/qwCompany/index.vue

@@ -191,9 +191,9 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="企业可信IP" >
-          <div>42.194.245.189;119.29.195.254;129.204.130.233;43.138.187.210;129.204.76.229;159.75.239.132119.29.249.66;122.152.230.82</div>
-        </el-form-item>
+<!--        <el-form-item label="企业可信IP" >-->
+<!--          <div>42.194.245.189;119.29.195.254;129.204.130.233;43.138.187.210;129.204.76.229;159.75.239.132119.29.249.66;122.152.230.82</div>-->
+<!--        </el-form-item>-->
         <el-form-item label="聊天工具栏跳转地址" prop="chatToolbar">
           <el-input v-model="form.chatToolbar" placeholder="请输入聊天工具栏跳转地址" />
         </el-form-item>

+ 10 - 0
src/views/system/config/config.vue

@@ -1423,6 +1423,15 @@
             </el-switch>
           </el-form-item>
 
+          <el-form-item label="是否开启部门数据限制" prop="deptLimit">
+            <el-switch
+              v-model="form18.deptLimit"
+              active-color="#13ce66"
+              inactive-color="#ff4949"
+            >
+            </el-switch>
+          </el-form-item>
+
           <el-form-item label="评级开启全部" prop="isAllratingRating">
             <el-switch
               v-model="form18.isAllratingRating"
@@ -2174,6 +2183,7 @@ export default {
       courseMaConfigLoading: false,
       courseMaConfigList: [],
       switchDialogVisible: false,
+      deptLimit: false,
       switchForm: {
         appId: '',
         switchStatus: '001'

+ 159 - 128
src/views/system/dept/index.vue

@@ -58,15 +58,47 @@
       :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
     >
       <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>
+      <el-table-column prop="deptName" label="pad数量" v-if="deptLimit">
+        <template slot-scope="scope">
+          <p style="text-align: center" v-if="scope.row.parentId != 0">
+            {{scope.row.deptConfig && scope.row.deptConfig.padNum !== null ? scope.row.deptConfig.padNum : '未配置'}}
+          </p>
+        </template>
+      </el-table-column>
+      <el-table-column prop="deptName" label="pad已用数量" v-if="deptLimit">
+        <template slot-scope="scope">
+          <p style="text-align: center" v-if="scope.row.parentId != 0">
+            {{scope.row.deptConfig && scope.row.deptConfig.padNumSub !== null ? scope.row.deptConfig.padNumSub : '未配置'}}
+          </p>
+        </template>
+      </el-table-column>
+      <el-table-column prop="deptName" label="到期时间" v-if="deptLimit">
+        <template slot-scope="scope">
+          <p style="text-align: center" v-if="scope.row.parentId != 0">
+            {{scope.row.deptConfig && scope.row.deptConfig.padTime ? scope.row.deptConfig.padTime : '未配置'}}
+          </p>
+        </template>
+      </el-table-column>
+      <el-table-column prop="deptName" label="红包金额" v-if="deptLimit">
+        <template slot-scope="scope">
+          <p style="text-align: center" v-if="scope.row.parentId != 0">
+            {{scope.row.deptConfig && scope.row.deptConfig.redPackage !== null ? scope.row.deptConfig.redPackage : '未配置'}}
+          </p>
+        </template>
+      </el-table-column>
+      <el-table-column prop="deptName" label="剩余流量" v-if="deptLimit">
+        <template slot-scope="scope">
+          <p style="text-align: center" v-if="scope.row.parentId != 0">
+            {{scope.row.deptConfig && scope.row.deptConfig.flowNum !== null ? formatBalance(scope.row.deptConfig.flowNum) : '未配置'}}
+          </p>
+        </template>
+      </el-table-column>
       <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
       <el-table-column prop="status" label="状态" width="100">
         <template slot-scope="scope">
           <dict-tag :options="statusOptions" :value="scope.row.status"/>
         </template>
       </el-table-column>
-      <el-table-column prop="red" label="红包配额" width="200" v-if="this.isResource"></el-table-column>
-      <el-table-column prop="traffic" label="流量配额" width="200" v-if="this.isResource"></el-table-column>
-      <el-table-column prop="pad" label="坐席配额" width="200" v-if="this.isResource"></el-table-column>
       <el-table-column label="创建时间" align="center" prop="createTime" width="200">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
@@ -84,11 +116,21 @@
           <el-button
             size="mini"
             type="text"
-            icon="el-icon-edit"
-            @click="handleUpdateResource(scope.row)"
-            v-hasPermi="['system:dept:resource']"
-            v-if="scope.row.deptId !== 1"
-          >资源配置</el-button>
+            @click="handleUpdatePad(scope.row)"
+            v-if="scope.row.deptId !== 1 && deptLimit"
+          >配置pad</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            @click="handleUpdateFlow(scope.row)"
+            v-if="scope.row.deptId !== 1 && deptLimit"
+          >充值流量</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            @click="handleUpdateRedPackage(scope.row)"
+            v-if="scope.row.deptId !== 1 && deptLimit"
+          >充值红包</el-button>
           <el-button
             size="mini"
             type="text"
@@ -110,81 +152,27 @@
     <!-- 资源配置对话框 -->
     <el-dialog title="部门资源配置" :visible.sync="openResource" width="600px" append-to-body>
       <el-form ref="resourceForm" :model="resourceForm" :rules="resourceRules" label-width="80px">
-        <el-form-item label="部门名称">
-          <el-input v-model="this.targetDeptName"  disabled/>
+        <el-form-item label="pad数量" prop="pad" v-if="resourceForm.type == 0">
+          <el-input type="number" v-model="resourceForm.num" :min=0>
+            <template slot="append">台</template>
+          </el-input>
+        </el-form-item>
+        <!-- 有效时间 时间选择器-->
+        <el-form-item label="PAD有效期" prop="padTime" v-if="resourceForm.type == 0">
+          <el-date-picker
+            v-model="resourceForm.padTime"
+            type="date"
+            placeholder="选择日期"
+            value-format="yyyy-MM-dd"
+            style="width: 100%;"
+          />
+        </el-form-item>
+        <el-form-item label="充值金额" prop="pad" v-if="resourceForm.type != 0">
+          <el-input type="number" v-model="resourceForm.money" :min=0>
+            <template slot="append">元</template>
+          </el-input>
+          <span style="color: #fb1c1c;display: inline-block" v-if="resourceForm.type == 2">{{flowPrice}}元 / GB</span>
         </el-form-item>
-        <el-row :gutter="10">
-          <el-col :span="8">
-            <el-form-item label="红包配额" prop="red" >
-              <el-input-number v-model="resourceForm.red" controls-position="right" disabled/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="充值配额" prop="pad" >
-              <el-input-number v-model="resourceForm.redCharge" controls-position="right" :min=0 />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <!-- 有效时间 时间选择器-->
-            <el-form-item label="有效时间" prop="redEffectiveTime" >
-              <el-date-picker
-                v-model="resourceForm.redEffectiveTime"
-                type="date"
-                placeholder="选择日期"
-                value-format="yyyy-MM-dd"
-                style="width: 100%;"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="10">
-          <el-col :span="8">
-            <el-form-item label="流量配额" prop="traffic" >
-              <el-input-number v-model="resourceForm.traffic" controls-position="right" disabled/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="充值配额" prop="trafficCharge" >
-              <el-input-number v-model="resourceForm.trafficCharge" controls-position="right" :min=0 />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <!-- 有效时间 时间选择器-->
-            <el-form-item label="有效时间" prop="trafficEffectiveTime" >
-              <el-date-picker
-                v-model="resourceForm.trafficEffectiveTime"
-                type="date"
-                placeholder="选择日期"
-                value-format="yyyy-MM-dd"
-                style="width: 100%;"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="10">
-          <el-col :span="8">
-            <el-form-item label="坐席配额" prop="pad" >
-              <el-input-number v-model="resourceForm.pad" controls-position="right" disabled/>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="充值配额" prop="padCharge" >
-              <el-input-number v-model="resourceForm.padCharge" controls-position="right" :min=0 />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <!-- 有效时间 时间选择器-->
-            <el-form-item label="有效时间" prop="padEffectiveTime" >
-              <el-date-picker
-                v-model="resourceForm.padEffectiveTime"
-                type="date"
-                placeholder="选择日期"
-                value-format="yyyy-MM-dd"
-                style="width: 100%;"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitResourceForm">确 定</el-button>
@@ -248,7 +236,7 @@
 </template>
 
 <script>
-import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept";
+import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild, updatePadNum, addRedMoney, addFlowNum } from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import { addOrEditDeptResource, getDeptResource } from '@/api/system/resourceManagement'
@@ -270,6 +258,7 @@ export default {
       title: "",
       // 是否显示弹出层
       open: false,
+      deptLimit: false,
       // 是否显示资源弹出层
       openResource: false,
       // 操作的部门名称
@@ -280,6 +269,7 @@ export default {
       refreshTable: true,
       // 是否展开
       expand: false,
+      flowPrice: 0,
       // 状态数据字典
       statusOptions: [],
       // 查询参数
@@ -319,20 +309,21 @@ export default {
       },
       // 资源表单参数
       resourceRules: {
-        red: [
-          { required: true, message: "红包配额不能为空", trigger: "blur" }
-        ],
-        traffic: [
-          { required: true, message: "流量配额不能为空", trigger: "blur" }
-        ],
-        pad: [
-          { required: true, message: "坐席配额不能为空", trigger: "blur" }
-        ]
       }
     };
   },
   created() {
     this.getList();
+    this.getConfigKey("statis.config").then(response => {
+      let data = JSON.parse(response.msg)
+      this.flowPrice = data.trafficPrice;
+    });
+    this.getConfigKey("course.config").then(response => {
+      let data = JSON.parse(response.msg)
+      if(data && data.deptLimit){
+        this.deptLimit = true;
+      }
+    });
     this.getDicts("sys_normal_disable").then(response => {
       this.statusOptions = response.data;
     });
@@ -370,7 +361,6 @@ export default {
     // 资源配置取消按钮
     cancelResource() {
       this.openResource = false;
-      this.resetResource();
     },
     // 表单重置
     reset() {
@@ -386,22 +376,6 @@ export default {
       };
       this.resetForm("form");
     },
-    // 表单重置
-    resetResource() {
-      this.resourceForm = {
-        id: undefined,
-        red: undefined,
-        redCharge: undefined,
-        redEffectiveTime: undefined,
-        pad: undefined,
-        padCharge: undefined,
-        padEffectiveTime: undefined,
-        traffic: undefined,
-        trafficCharge: undefined,
-        trafficEffectiveTime: undefined
-      };
-      this.resetForm("resourceForm");
-    },
     /** 搜索按钮操作 */
     handleQuery() {
       this.getList();
@@ -444,12 +418,49 @@ export default {
       });
     },
     /** 修改按钮操作 */
-    handleUpdateResource(row) {
-      this.resetResource();
-      getDeptResource(row.deptId).then(response => {
-        this.resourceForm = response.data;
-        this.openResource = true;
-      });
+    handleUpdatePad(row) {
+      this.openResource = true;
+      this.resourceForm = {
+        type: 0,
+        deptId: row.deptId,
+        num: row?.deptConfig?.padNum || 0,
+        padTime: row?.deptConfig?.padTime || null,
+      }
+    },
+    handleUpdateRedPackage(row) {
+      this.openResource = true;
+      this.resourceForm = {
+        type: 1,
+        deptId: row.deptId,
+        money: 0,
+      }
+    },
+    handleUpdateFlow(row) {
+      this.openResource = true;
+      this.resourceForm = {
+        type: 2,
+        deptId: row.deptId,
+        money: 0,
+      }
+    },
+    formatBalance(flow){
+      //对流量值进行判断,换算成GB或TB
+      if(!flow){
+        return "0 KB";
+      }
+      const absBalance = Math.abs(flow); // 获取绝对值
+      if(absBalance < 1024){
+        return flow + " KB";
+      }
+      else if(absBalance < 1024 * 1024){
+        return (flow / 1024).toFixed(2) + " MB";
+      }
+      else if(absBalance < 1024 * 1024 * 1024){
+        return (flow / (1024 * 1024)).toFixed(2) + " GB";
+      }
+      else{
+        return (flow / (1024 * 1024 * 1024)).toFixed(2) + " TB";
+      }
     },
     /** 提交按钮 */
     submitForm: function() {
@@ -473,19 +484,39 @@ export default {
     },
     /** 资源配置提交*/
     submitResourceForm: function() {
-      this.$refs["resourceForm"].validate(valid => {
-        if (valid) {
-          addOrEditDeptResource(this.resourceForm).then(response => {
-            if(response.code === 200 && response.data === true){
-              this.msgSuccess("修改成功");
-              this.openResource = false;
-              this.getList();
-            }else{
-              this.msgError(response.msg);
-            }
-          });
-        }
-      });
+      if(this.resourceForm.type == 0){
+        updatePadNum(this.resourceForm).then(response => {
+          if(response.code === 200){
+            this.msgSuccess("修改成功");
+            this.openResource = false;
+            this.getList();
+          }else{
+            this.msgError(response.msg);
+          }
+        });
+      }
+      if(this.resourceForm.type == 1){
+        addRedMoney(this.resourceForm).then(response => {
+          if(response.code === 200){
+            this.msgSuccess("修改成功");
+            this.openResource = false;
+            this.getList();
+          }else{
+            this.msgError(response.msg);
+          }
+        });
+      }
+      if(this.resourceForm.type == 2){
+        addFlowNum(this.resourceForm).then(response => {
+          if(response.code === 200){
+            this.msgSuccess("修改成功");
+            this.openResource = false;
+            this.getList();
+          }else{
+            this.msgError(response.msg);
+          }
+        });
+      }
     },
     /** 删除按钮操作 */
     handleDelete(row) {