Przeglądaj źródła

新增权限模板

huangbin 4 lat temu
rodzic
commit
728f3b25a5

+ 75 - 74
src/services/go/ermcp/account/interface.ts

@@ -38,13 +38,13 @@ export interface ErmcpBizGroupTaAccount {
     areauserid: number;//所属机构id
     bizgroupid: number;//业务分组id
     ismain: number;//是否主账号 1-是 number;
-//-否
+    //-否
 }
 
 /**
  * 查询账户管理期货账号
  */
-export interface ErmcpTaAccountEx{
+export interface ErmcpTaAccountEx {
     mainAcc: ErmcpTaAccount; // 主账号
     subacclist: ErmcpTaAccount[]; // 子账号列表
 }
@@ -52,112 +52,113 @@ export interface ErmcpTaAccountEx{
 /**
  * 账号信息
  */
-export interface ErmcpTaAccount{
-    accountid	:number;//账户id
-    accountname	:string;//账户名称
-    currencyid	:number;//币种id
-    hedgeaccountcode	:string;//主账号登录代码(仅当是主账号时有值,子账号没有登录账号)
-    ismain	:number;//是否主账户 number;
-//-否 1-是
-    parentaccountid	:number;//父账户id
-    relateduserid	:number;//关联userid
-    tradestatus	:number;//交易状态 - 1:正常 2:受限 3:冻结 4:禁止建仓(人工受限) 5:禁止交易(人工冻结) 6:待激活 7:已注销
-    userid	:number;//用户id
+export interface ErmcpTaAccount {
+    accountid: number;//账户id
+    accountname: string;//账户名称
+    currencyid: number;//币种id
+    hedgeaccountcode: string;//主账号登录代码(仅当是主账号时有值,子账号没有登录账号)
+    ismain: number;//是否主账户 number;
+    //-否 1-是
+    parentaccountid: number;//父账户id
+    relateduserid: number;//关联userid
+    tradestatus: number;//交易状态 - 1:正常 2:受限 3:冻结 4:禁止建仓(人工受限) 5:禁止交易(人工冻结) 6:待激活 7:已注销
+    userid: number;//用户id
 }
 
 /**
  * 关联资金账号
  */
-export interface ErmcpLoginTaAccount{
+export interface ErmcpLoginTaAccount {
     accountid: number; //    账号id
     accountname: string;  // 账号名称
 }
 
-export interface ErmcpLoginUser{
+export interface ErmcpLoginUser {
     acclist: ErmcpLoginTaAccount[]; // 关联资金账号列表
-    accountname	:string;//用户名称
-    clientroleid	:number;//角色id(usertype=2)
-    createtime	:string;//创建时间
-    logincode	:string;//登录代码
-    loginid	:number;//登录id(LOGINID)
-    loginname	:string;//登录名称(loginaccount表中的accountname字段)
-    loginstatus	:number;//登录账户状态 - 1:正常 2:冻结 3:无效
-    memberuserid	:number;//所属会员id
-    mobile	:string;//手机号
-    modifytime	:string;//修改时间
-    password	:string;//密码(不可解密)
-    rolename	:string;//角色名称
-    rolestatus	:number;//角色状态 1-启用 2-停用
-    roletype	:string;//角色类型(逗号隔开,如22,23), 22:业务员 23:跟单员 24:交易员
-    userid	:number;//用户id
+    accountname: string;//用户名称
+    clientroleid: number;//角色id(usertype=2)
+    createtime: string;//创建时间
+    logincode: string;//登录代码
+    loginid: number;//登录id(LOGINID)
+    loginname: string;//登录名称(loginaccount表中的accountname字段)
+    loginstatus: number;//登录账户状态 - 1:正常 2:冻结 3:无效
+    memberuserid: number;//所属会员id
+    mobile: string;//手机号
+    modifytime: string;//修改时间
+    password: string;//密码(不可解密)
+    rolename: string;//角色名称
+    rolestatus: number;//角色状态 1-启用 2-停用
+    roletype: string;//角色类型(逗号隔开,如22,23), 22:业务员 23:跟单员 24:交易员
+    userid: number;//用户id
 }
 
-export interface ErmcpLoginUserEx{
+export interface ErmcpLoginUserEx {
     mobile: string; // 手机号
     accountstatus: number; //  账户的状态 - 1:待激活 2:待审核 3:待复审 4:正常 5:审核拒绝 6:停用(注销) 7:注销(删除)
     querytype: number;  // 查询类型 1-业务账户 2-交易账户 3-管理账户
-    roleid:  number; // 角色id(交易账户->用户id)
+    roleid: number; // 角色id(交易账户->用户id)
     rolename: string; // 角色名称(交易账户->用户名称)
     userlist: ErmcpLoginUser[];  // 用户列表
-    usertype	:number;//用户类型 - 1:交易所 2:机构 3:会员子机构 4:经纪人 5:投资者 6:客户 7:企业成员(云平台)
+    usertype: number;//用户类型 - 1:交易所 2:机构 3:会员子机构 4:经纪人 5:投资者 6:客户 7:企业成员(云平台)
 }
 
 /**
  * 查询期货公司返回
  */
-export interface ErmcpFuturesCompany{
-    brokerid        :string;//经纪公司代码
-    channeladdress  :string;//对冲渠道服务地址(多个地址用逗号分隔) – 192.168.30.10:3000,192.168.30.10:3001
-    channelid       :string;//对冲渠道ID
-    createtime      :string;//创建时间
-    creatorid       :string;//创建人
-    fcid    :number;//期货公司ID(SEQ_ERMCP_FUTURESCOMPANY)
-    fcname  :string;//期货公司名称
-    isvalid :number;//是否有效 - number;
-//:无效 1:有效
-    mhpaddress      :string;//MHP服务地址(IP:Port)
-    riskrulegroupid :string;//风控规则组ID
-    tradefeetmpid   :string;//手续费模板ID[TradeConfigTmpType为2]
-    trademargintmpid        :string;//保证金模板ID [TradeConfigTmpType为1]
-    traderatetmpid  :string;//汇率模板ID[TradeConfigTmpType为3]
-    updatetime      :string;//更新时间
-    updatorid       :string;//更新人
+export interface ErmcpFuturesCompany {
+    brokerid: string;//经纪公司代码
+    channeladdress: string;//对冲渠道服务地址(多个地址用逗号分隔) – 192.168.30.10:3000,192.168.30.10:3001
+    channelid: string;//对冲渠道ID
+    createtime: string;//创建时间
+    creatorid: string;//创建人
+    fcid: number;//期货公司ID(SEQ_ERMCP_FUTURESCOMPANY)
+    fcname: string;//期货公司名称
+    isvalid: number;//是否有效 - number;
+    //:无效 1:有效
+    mhpaddress: string;//MHP服务地址(IP:Port)
+    riskrulegroupid: string;//风控规则组ID
+    tradefeetmpid: string;//手续费模板ID[TradeConfigTmpType为2]
+    trademargintmpid: string;//保证金模板ID [TradeConfigTmpType为1]
+    traderatetmpid: string;//汇率模板ID[TradeConfigTmpType为3]
+    updatetime: string;//更新时间
+    updatorid: string;//更新人
 }
 
 /**
  * 账户管理角色详情
  */
-export interface ErmcpRoleMenuEx{
-    menu: ErmcpRoleMenu[]
+export interface ErmcpRoleMenuEx {
+    Menu: ErmcpRoleMenu,
+    SubMenu: ErmcpRoleMenuEx[]
 }
 
-export interface ErmcpRoleMenu{
-    iconame	:string;//菜单图标
-    ishadrole	:boolean;//是否有权限
-    menutype	:number;//菜单类型 1:管理端 2:交易端 3:终端(企业云平台)
-    parentcode	:string;//上级资源代码
-    remark	:string;//菜单备注
-    resourcecode	:string;//菜单代码
-    resourcelevel	:number;//级别
-    resourcename	:string;//菜单名称
-    roleid	:number;//角色id
-    sort	:number;//排序
-    url	:string;//URL
-    userid	:number;//用户id
+export interface ErmcpRoleMenu {
+    iconame: string;//菜单图标
+    ishadrole: boolean;//是否有权限
+    menutype: number;//菜单类型 1:管理端 2:交易端 3:终端(企业云平台)
+    parentcode: string;//上级资源代码
+    remark: string;//菜单备注
+    resourcecode: string;//菜单代码
+    resourcelevel: number;//级别
+    resourcename: string;//菜单名称
+    roleid: number;//角色id
+    sort: number;//排序
+    url: string;//URL
+    userid: number;//用户id
 }
 
 /**
  * 查询账户管理角色设置
  */
-export interface ErmcpRole{
-    areauserid	:number;//所属机构
-    autoid	:number;//角色ID(自增ID)
-    modifierid	:number;//修改人(创建人)
-    modifiername	:string;//修改人名称
-    modifytime	:string;//修改时间(创建时间)
-    rolename	:string;//角色名称
-    rolestatus	:number;//角色状态 - 1:启用 2:停用
-    roletype	:number;//角色类型 - 1- 管理端 2- 交易端
+export interface ErmcpRole {
+    areauserid: number;//所属机构
+    autoid: number;//角色ID(自增ID)
+    modifierid: number;//修改人(创建人)
+    modifiername: string;//修改人名称
+    modifytime: string;//修改时间(创建时间)
+    rolename: string;//角色名称
+    rolestatus: number;//角色状态 - 1:启用 2:停用
+    roletype: number;//角色类型 - 1- 管理端 2- 交易端
 }
 
 

+ 83 - 51
src/views/information/account_info/compoments/add-managers-permission/index.vue

@@ -19,10 +19,10 @@
             :rules="rules">
       <a-row :gutter="24">
         <a-col :span="24">
-          <a-form-item label="模板名称"
-                       name="">
+          <a-form-item label="模板名称">
             <a-input class="dialogInput"
                      style="width: 200px"
+                     v-model:value="name"
                      placeholder="请输入模板名称" />
           </a-form-item>
         </a-col>
@@ -33,32 +33,41 @@
         </a-col>
         <a-col :span="24">
           <div class="powerTable">
-            <a-checkbox-group class="commonCheckboxGroup"
-                              v-for="(item, i) in tableList"
-                              :key="i + '0'">
-              <div class="powerRow">
-                <div class="powerLeft">
-                  <a-checkbox v-model:checked="item.Menu.ishadrole"
-                              :value="item.Menu.resourcecode">{{item.Menu.resourcename}}</a-checkbox>
-                </div>
-                <div class="powerRight">
-                  <div class="line"
-                       v-for="(sub, j) in item.SubMenu"
-                       :key="j + '1'">
-                    <div class="left">
-                      <a-checkbox v-model:checked="sub.Menu.ishadrole"
-                                  :value="sub.Menu.resourcecode">{{sub.Menu.resourcename}}</a-checkbox>
-                    </div>
-                    <div class="right">
-                      <a-checkbox v-for="(subNext, l) in sub.SubMenu"
-                                  :key="l + '3'"
-                                  v-model:checked="subNext.Menu.ishadrole"
-                                  :value="subNext.Menu.resourcecode">{{subNext.Menu.resourcename}}</a-checkbox>
-                    </div>
+            <!-- <a-checkbox-group class="commonCheckboxGroup"
+                              
+                             > -->
+            <div class="powerRow"
+                 v-for="(item, i) in tableList"
+                 :key="i + '0'">
+              <div class="powerLeft">
+                <a-checkbox v-model:checked="item.Menu.ishadrole">
+                  {{item.Menu.resourcename}}
+                </a-checkbox>
+              </div>
+              <div class="powerRight">
+                <div class="line"
+                     v-for="(sub, j) in item.SubMenu"
+                     :key="j + '1'">
+                  <div class="left">
+                    <a-checkbox v-model:checked="sub.Menu.ishadrole"
+                                @change="secondChange(item, sub)"
+                                :value="sub.Menu.resourcecode">
+                      {{sub.Menu.resourcename}}
+                    </a-checkbox>
+                  </div>
+                  <div class="right">
+                    <a-checkbox v-for="(subNext, l) in sub.SubMenu"
+                                :key="l + '3'"
+                                v-model:checked="subNext.Menu.ishadrole"
+                                @change="thirdChange(item, sub, subNext)"
+                                :value="subNext.Menu.resourcecode">
+                      {{subNext.Menu.resourcename}}
+                    </a-checkbox>
                   </div>
                 </div>
               </div>
-            </a-checkbox-group>
+            </div>
+            <!-- </a-checkbox-group> -->
           </div>
         </a-col>
       </a-row>
@@ -68,15 +77,13 @@
 
 <script lang="ts">
 import { closeModal } from '@/common/setup/modal/index';
-import { defineComponent, ref, PropType, watchEffect } from 'vue';
+import { defineComponent, ref, watchEffect } from 'vue';
 import { handleBusinessForm } from '../setup';
-import { ErmcpLoginUserEx, ErmcpRoleMenuEx } from '@/services/go/ermcp/account/interface';
-import { validateAction } from '@/common/setup/form';
-import { BusinessFormState } from '../interface';
-import { LoginaccountOperateReq, LoginTaaccount } from '@/services/proto/accountinfo/interface';
+import {  ErmcpRoleMenuEx } from '@/services/go/ermcp/account/interface';
 import { queryResultLoadingAndInfo, requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
-import { loginAccountOperate } from '@/services/proto/accountinfo';
 import { QueryAccMgrRoleMenu } from '@/services/go/ermcp/account';
+import { message } from 'ant-design-vue';
+import {roleOperate} from '@/services/proto/accountinfo'
 
 export default defineComponent({
     name: 'account_info_manager_btn_add',
@@ -86,44 +93,69 @@ export default defineComponent({
         const { rules, formState, formRef } = handleBusinessForm();
         const loading = ref<boolean>(false);
         const tableList = ref<ErmcpRoleMenuEx[]>([]);
+        const name = ref<string>('')
         watchEffect(() => {
             if (visible.value) {
                 queryResultLoadingAndInfo(QueryAccMgrRoleMenu, loading).then((res) => {
+                  console.log('res', res);
+                  
                     tableList.value = res;
                 });
             }
         });
         function submit() {
-            const result: number[] = []
+            const result: string[] = []
+            // 处理已经勾选的数据
             tableList.value.forEach(first => {
-                // if(first.Menu.ishadrole) {
-
-                // }
+                if(first.Menu.ishadrole) {
+                  result.push(first.Menu.resourcecode)
+                  first.SubMenu.forEach(second => {
+                    if(second.Menu.ishadrole) { 
+                      result.push(second.Menu.resourcecode)
+                      second.SubMenu.forEach(third => {
+                        if(third.Menu.ishadrole) { 
+                            result.push(third.Menu.resourcecode)
+                        }
+                      })
+                    }
+                  })
+                }
             })
-
-            // validateAction<BusinessFormState>(formRef, formState).then((res) => {
-            //     const reqParam: LoginaccountOperateReq = {
-            //         operatetype: 3, // uint32 操作类型-1:新增 2:修改 3:新增管理员 4:修改管理员 5:锁定 6:解锁 7:注销 8:恢复 9:重置密码 10:新增登录帐号 11:停用用户 12:恢复用户 13:修改用户信息
-            //         logincode: res.logincode, // string 登录账号
-            //         accountname: res.accountname, // string 账户名称
-            //         password: res.password, // string 登录密码(明文)
-            //         mobile: res.mobile, // string 手机号码(明文)
-            //         roleids: [Number(res.userid)], // uint64 账号角色
-            //         logintaaccounts: [], // LoginTaaccount 期货账户(勾选交易员必填)
-            //     };
-            //     requestResultLoadingAndInfo(loginAccountOperate, reqParam, loading, ['新增成功', '新增失败:']).then(() => {
-            //         cancel();
-            //         context.emit('refresh');
-            //     });
-            // });
+            if(!name) {
+              message.error('请输入模板名称')
+              return 
+            }
+            if(result.length === 0) {
+              message.error('请至少选择一个权限')
+              return
+            }
+              const reqParam = {}
+              requestResultLoadingAndInfo(roleOperate, reqParam, loading, ['新增成功', '新增失败:']).then(() => {
+                  cancel();
+                  context.emit('refresh');
+              });
+        }
+        function secondChange(item: ErmcpRoleMenuEx, sub: ErmcpRoleMenuEx) {
+          if(sub.Menu.ishadrole) {
+            item.Menu.ishadrole = true
+          }
+        }
+        function thirdChange(item: ErmcpRoleMenuEx, sub: ErmcpRoleMenuEx, subNext: ErmcpRoleMenuEx) {
+          if(subNext.Menu.ishadrole) {
+            sub.Menu.ishadrole = true
+            item.Menu.ishadrole = true
+          }
         }
         return {
             formState,
             rules,
             formRef,
             visible,
+            name,
             cancel,
             submit,
+            secondChange,
+            thirdChange,
             loading,
             tableList,
         };