Jelajahi Sumber

锁定账户

huangbin 4 tahun lalu
induk
melakukan
09f27f998b

+ 22 - 30
src/views/information/account_info/compoments/detail-business/index.vue

@@ -12,34 +12,31 @@
                 type="primary"
                 @click="cancel">关闭</a-button>
     </template>
-    <a-form class="inlineForm"
-            :model="formState">
-      <Des :list="desList"
-           :slotDesName="'账户角色'">
-        <a-checkbox-group class="commonCheckboxGroup"
-                          v-model:value="roles">
-          <a-row>
-            <a-col :span="12"
-                   v-for="item in roleTypeList"
-                   :key="item.key">
-              <a-checkbox disabled
-                          :value="item.key">
-                {{item.value}}
-              </a-checkbox>
-            </a-col>
-          </a-row>
-        </a-checkbox-group>
-      </Des>
-    </a-form>
+    <Des :list="desList"
+         :slotDesName="'账户角色'">
+      <a-checkbox-group class="commonCheckboxGroup"
+                        v-model:value="selectedRole">
+        <a-row>
+          <a-col :span="12"
+                 v-for="item in roleTypeList"
+                 :key="item.key">
+            <a-checkbox disabled
+                        :value="item.key">
+              {{item.value}}
+            </a-checkbox>
+          </a-col>
+        </a-row>
+      </a-checkbox-group>
+    </Des>
   </a-modal>
 </template>
 
 <script lang="ts">
 import { defineComponent, PropType, ref, watchEffect } from 'vue';
 import { closeModal } from '@/common/setup/modal/index';
-import { handleBusinessForm } from '../setup';
 import { ErmcpLoginUser } from '@/services/go/ermcp/account/interface';
 import { Des, handleDesList } from '@/common/components/commonDes';
+import { handleRoles } from '../setup';
 
 export default defineComponent({
     name: 'business-detail',
@@ -54,13 +51,9 @@ export default defineComponent({
     },
     setup(props) {
         const { visible, cancel } = closeModal('detail');
-        const { formState } = handleBusinessForm();
         const { desList, getDesList } = handleDesList();
-        const roleTypeList = [
-            { key: 22, value: '业务员' },
-            { key: 23, value: '跟单员' },
-        ];
-        const roles = ref<number[]>([]);
+        // 账户角色
+        const { roleTypeList, selectedRole, getSelectedRole } = handleRoles();
         watchEffect(() => {
             if (visible.value) {
                 const data = props.selectedData;
@@ -69,16 +62,15 @@ export default defineComponent({
                     { label: '账户名称', value: data.accountname },
                     { label: '手机号码', value: data.mobile },
                 ]);
-                // roletype	:string;//角色类型(逗号隔开,如22,23), 22:业务员 23:跟单员 24:交易员
-                roles.value = props.selectedData.roletype.split(',').map((e) => +e);
+                // 选中的角色
+                getSelectedRole(props.selectedData.roletype);
             }
         });
         return {
             visible,
             cancel,
             roleTypeList,
-            roles,
-            formState,
+            selectedRole,
             desList,
             maskClosableFlag: false,
         };

+ 33 - 47
src/views/information/account_info/compoments/locked-business/index.vue

@@ -13,45 +13,22 @@
                 :loading="loading"
                 @click="submit">锁定</a-button>
     </template>
-    <a-form class="inlineForm"
-            :model="formState">
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="登录账号"
-                       name="">
-            <span class="white">{{formState.logincode}}</span>
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="账户名称"
-                       name="">
-            <span class="white">{{formState.accountname}}</span>
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="手机号码"
-                       name="">
-            <span class="white">{{formState.mobile}}</span>
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="账户角色"
-                       name="userinfotype">
-            <a-checkbox-group class="commonCheckboxGroup"
-                              v-model:value="formState.roleids">
-              <a-row>
-                <a-col :span="12">
-                  <a-checkbox :value="22">业务员</a-checkbox>
-                </a-col>
-                <a-col :span="12">
-                  <a-checkbox :value="23">跟单员</a-checkbox>
-                </a-col>
-              </a-row>
-            </a-checkbox-group>
-          </a-form-item>
-        </a-col>
-      </a-row>
-    </a-form>
+    <Des :list="desList"
+         :slotDesName="'账户角色'">
+      <a-checkbox-group class="commonCheckboxGroup"
+                        v-model:value="selectedRole">
+        <a-row>
+          <a-col :span="12"
+                 v-for="item in roleTypeList"
+                 :key="item.key">
+            <a-checkbox disabled
+                        :value="item.key">
+              {{item.value}}
+            </a-checkbox>
+          </a-col>
+        </a-row>
+      </a-checkbox-group>
+    </Des>
   </a-modal>
 </template>
 
@@ -63,12 +40,12 @@ import { loginAccountOperate } from '@/services/proto/accountinfo';
 import { LoginaccountOperateReq } from '@/services/proto/accountinfo/interface';
 import { ErmcpLoginUser } from '@/services/go/ermcp/account/interface';
 import { Modal } from 'ant-design-vue';
-import { mergeTwoObj } from '@/utils/objHandle';
-import { handleBusinessForm } from '../setup';
+import { handleRoles } from '../setup';
+import { Des, handleDesList } from '@/common/components/commonDes';
 
 export default defineComponent({
     name: 'account_info_business_btn_locked',
-    components: {},
+    components: { Des },
     props: {
         selectedData: {
             default: {},
@@ -79,12 +56,19 @@ export default defineComponent({
         // 控制关闭弹窗
         const { visible, cancel } = closeModal('account_info_business_btn_locked');
         const loading = ref<boolean>(false);
-        const { formState } = handleBusinessForm();
+        const { desList, getDesList } = handleDesList();
+        // 账户角色
+        const { roleTypeList, selectedRole, getSelectedRole } = handleRoles();
         watchEffect(() => {
             if (visible.value) {
-                mergeTwoObj(formState, props.selectedData);
-                // roletype	:string;//角色类型(逗号隔开,如22,23), 22:业务员 23:跟单员 24:交易员
-                formState.roleids = props.selectedData.roletype.split(',').map((e) => +e);
+                const data = props.selectedData;
+                getDesList([
+                    { label: '登录账号', value: data.logincode },
+                    { label: '账户名称', value: data.accountname },
+                    { label: '手机号码', value: data.mobile },
+                ]);
+                // 选中的角色
+                getSelectedRole(props.selectedData.roletype);
             }
         });
         function submit() {
@@ -108,7 +92,9 @@ export default defineComponent({
             });
         }
         return {
-            formState,
+            roleTypeList,
+            selectedRole,
+            desList,
             visible,
             cancel,
             submit,

+ 0 - 1
src/views/information/account_info/compoments/modify-business/index.vue

@@ -113,7 +113,6 @@ export default defineComponent({
                     logintaaccounts: [],
                 };
                 Object.assign(reqParam, param);
-                debugger
                 requestResultLoadingAndInfo(loginAccountOperate, reqParam, loading, ['修改账户成功', '修改账户失败:']).then(() => {
                     cancel();
                     context.emit('refresh');

+ 17 - 0
src/views/information/account_info/compoments/setup.ts

@@ -13,6 +13,7 @@ export function handleBusinessForm() {
             logincode: '',
             userid: undefined,
             accountname: '',
+            loginname: '',
             password: '',
             mobile: '',
             roleids: [],
@@ -24,6 +25,7 @@ export function handleBusinessForm() {
     const rules = {
         logincode: [{ required: true, message: '请输入登录账号', trigger: 'blur' }],
         accountname: [{ required: true, message: '请输入账户名称', trigger: 'blur' }],
+        loginname: [{ required: true, message: '请输入账户名称', trigger: 'blur' }],
         password: [{ required: true, message: '请输入账户密码', trigger: 'blur' }],
         mobile: [{ required: true, message: '请输入手机号码', trigger: 'blur' }],
         userid: [{ required: true, message: '请输入账户权限' }],
@@ -124,4 +126,19 @@ export function handleAddOrModifyFuturesForm() {
         fcid: [{ required: true, message: '请选择期货公司' }],
     }
     return { rules, formState, formRef, initFormData }
+}
+
+// 处理账号角色
+export function handleRoles() {
+    // 账户角色
+    const roleTypeList = [
+        { key: 22, value: '业务员' },
+        { key: 23, value: '跟单员' },
+    ];
+    const selectedRole = ref<number[]>([]);
+    function getSelectedRole(val: string) {
+        //角色类型(逗号隔开,如22,23), 22:业务员 23:跟单员 24:交易员
+        selectedRole.value = val.split(',').map((e) => +e);
+    }
+    return { roleTypeList, selectedRole, getSelectedRole }
 }

+ 8 - 8
src/views/information/account_info/list/account_info_business/index.vue

@@ -46,7 +46,7 @@
           <a-collapse-panel :show-arrow="false">
             <template #header>
               <a-row class="contRow">
-                <a-col :span="12">{{sub.accountname}}-{{sub.logincode}}</a-col>
+                <a-col :span="12">{{sub.loginname}}-{{sub.logincode}}</a-col>
                 <a-col :span="12">{{getLoginStatusEnumItemName(sub.loginstatus)}}</a-col>
               </a-row>
             </template>
@@ -155,16 +155,16 @@ export default defineComponent({
         padding-left: 43px;
         padding-right: 43px;
         .btnPrimary.ant-btn {
-          margin-top: -3px;
+            margin-top: -3px;
         }
     }
     .ant-collapse.busyCollapse {
-      .operBtn.ant-btn {
-        margin-top: 0;
-        margin-bottom: 0;
-        height: 26px;
-        line-height: 26px;
-      }
+        .operBtn.ant-btn {
+            margin-top: 0;
+            margin-bottom: 0;
+            height: 26px;
+            line-height: 26px;
+        }
     }
     .ant-row.headRow {
         .ant-col:nth-child(2) {