소스 검색

Merge branch 'master' of http://47.101.159.18:3000/Muchinfo/MTP2.0_WEB

marymelisa 4 년 전
부모
커밋
97b3140e39
29개의 변경된 파일1786개의 추가작업 그리고 1105개의 파일을 삭제
  1. 3 0
      public/config/readMe.txt
  2. 4 0
      public/proto/mtp.proto
  3. 608 448
      src/assets/styles/index.css
  4. 252 61
      src/assets/styles/mixin.less
  5. 5 0
      src/common/config/projectName.ts
  6. 19 9
      src/router/index.ts
  7. 1 0
      src/utils/timer/timerUtil.ts
  8. 57 3
      src/views/business/exposure/list/realTime/index.vue
  9. 10 1
      src/views/information/account_info/compoments/add-business/index.vue
  10. 13 9
      src/views/information/account_info/compoments/add-child-futures/index.vue
  11. 4 1
      src/views/information/account_info/compoments/add-futures/index.vue
  12. 5 0
      src/views/information/account_info/compoments/detail-commom-business/index.vue
  13. 19 7
      src/views/information/account_info/compoments/detail-commom-futures/index.vue
  14. 10 1
      src/views/information/account_info/compoments/modify-business/index.vue
  15. 6 2
      src/views/information/account_info/compoments/modify-futures-son/index.vue
  16. 28 25
      src/views/information/account_info/compoments/modify-futures/index.vue
  17. 47 45
      src/views/information/account_info/list/account_info_business/index.vue
  18. 84 84
      src/views/information/account_info/list/account_info_futures/index.vue
  19. 47 46
      src/views/information/account_info/list/account_info_manager/index.vue
  20. 47 45
      src/views/information/account_info/list/account_info_trade/index.vue
  21. 85 1
      src/views/information/custom/compoments/add/index.vue
  22. 51 32
      src/views/information/custom/compoments/common-detail/index.vue
  23. 185 135
      src/views/information/warehouse-info/compoments/add/index.vue
  24. 30 24
      src/views/information/warehouse-info/compoments/detail/index.vue
  25. 31 25
      src/views/information/warehouse-info/compoments/disable/index.vue
  26. 31 25
      src/views/information/warehouse-info/compoments/recover/index.vue
  27. 99 71
      src/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/components/post-buying/index.vue
  28. 3 3
      src/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/components/post-buying/setup.ts
  29. 2 2
      src/views/ping_an/risk_parameter_settings/index.vue

+ 3 - 0
public/config/readMe.txt

@@ -16,6 +16,9 @@ http://192.168.30.211:8080/cfg?key=test_211
 仓单贸易:"apiUrl": "http://192.168.31.118:8080/cfg?key=test_118"
 "apiUrl": "http://192.168.31.174:8080/cfg?key=test_174" // 邓工环境
 
+// 千海金 客户环境 "apiUrl":"http://103.40.249.123:8280/cfg?key=mtp_20"
+账号: qhjadmin 密码:123456
+
 31.175 账号
     110000000001
     199990000012

+ 4 - 0
public/proto/mtp.proto

@@ -1523,6 +1523,10 @@ message HdWROrderReq {
 	optional uint32 WRStandardID = 37; // uint32 现货品种ID
 	repeated DGFactoryItems FactoryItems = 38; // DGFactoryItems 要素类型明细集合(没有仓单要素ID填写)
 	optional uint64 DelistMinQty = 39; // uint64 起摘数量
+	optional uint32 MarginFlag = 40; // uint32 挂牌是否指定保证金 0:否 1:是
+	optional uint32 MarginAlgorithm = 41; // uint32 指定保证金方式 1:比率 2:固定
+	optional double MarginValue = 42; // double 指定保证金设置值
+	optional uint32 AllFriendsFlag = 43; // uint32 是否全好友可见 0:否 1:是
 }
 // 持仓单挂牌应答 0 22 16
 message HdWROrderRsp {

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 608 - 448
src/assets/styles/index.css


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 252 - 61
src/assets/styles/mixin.less


+ 5 - 0
src/common/config/projectName.ts

@@ -16,3 +16,8 @@ export function getOem(): OemType {
 export function isOemByEnum(type: OemType): boolean {
     return getOem() === type
 }
+
+// 是否是平安项目
+export function isPingAnOem() {
+    return isOemByEnum(OemType.pingan)
+}

+ 19 - 9
src/router/index.ts

@@ -351,17 +351,17 @@ const routes: Array<RouteRecordRaw> = [
                 ],
             },
             {
-                path: '/risk_parameter_settings_sub',
-                name: 'risk_parameter_settings_sub',
+                path: '/risk_parameter_settings',
+                name: 'risk_parameter_settings',
                 component: Main,
                 meta: {
                     requireAuth: true,
                 },
-                redirect: { name: 'risk_parameter_settings' },
+                redirect: { name: 'risk_parameter_settings_sub' },
                 children: [
                     {
-                        path: '/risk_parameter_settings_sub/risk_parameter_settings',
-                        name: 'risk_parameter_settings',
+                        path: '/risk_parameter_settings_sub/risk_parameter_settings_sub',
+                        name: 'risk_parameter_settings_sub',
                         component: () => import('@/views/ping_an/risk_parameter_settings/index.vue'),
                         meta: {
                             requireAuth: true,
@@ -1093,7 +1093,7 @@ const routes: Array<RouteRecordRaw> = [
                 children: [
                     {
                         path: '/division_management/division_management_sub',
-                        name: 'trading_strategy_notes',
+                        name: 'division_management_sub',
                         component: () => import('@/views/ping_an/division_management/division_management_sub/index.vue'),
                         meta: {
                             requireAuth: true,
@@ -1943,12 +1943,22 @@ const routes: Array<RouteRecordRaw> = [
                 ]
             },
             {
-                path: '/entry_of_spot_information',
-                name: EnumRouterName.entry_of_spot_information,
-                component: () => import('@/views/hedging/entry_of_spot_information/index.vue'),
+                path: '/entry_of_spot_information_sub',
+                name: 'entry_of_spot_information_sub',
+                component: Main,
                 meta: {
                     requireAuth: true,
                 },
+                children: [
+                    {
+                        path: '/entry_of_spot_information_sub/entry_of_spot_information',
+                        name: 'entry_of_spot_information',
+                        component: () => import('@/views/hedging/entry_of_spot_information/index.vue'),
+                        meta: {
+                            requireAuth: true,
+                        },
+                    },
+                ]
             },
             {
                 path: '/spot_price_management',

+ 1 - 0
src/utils/timer/timerUtil.ts

@@ -8,6 +8,7 @@ export interface IntervalTimerNames {
     accountStauts: string; // 账号状态
     spotTrade: string; // 仓单报价列表
     buyAndSellMartet: string; // 买卖大厅
+    realTime: string; // 实时敞口监控
 }
 export interface TimeoutTimerNames {
     logoutTimer: string; //登出1s延时器

+ 57 - 3
src/views/business/exposure/list/realTime/index.vue

@@ -2,7 +2,28 @@
   <!-- 实时敞口-->
   <div class="exposure-real-time table-height"
        :loading="loading">
-    <filterCustomTable @search="updateColumn">
+
+    <div class="real-time-header"
+         v-if="isPingAnOem()">
+      <span class="dialogSpan">每隔</span>
+      <a-select class="typeSelect"
+                style="width: 100px"
+                v-model:value="timer"
+                @change="timerChange"
+                placeholder="请选择间隔时间">
+        <a-select-option :value="item.id"
+                         v-for="item in diffTimes"
+                         :key="item.id">
+          {{item.name}}
+        </a-select-option>
+      </a-select>
+      <span class="dialogSpan">刷新一次,倒计时 </span> <span class="red">3</span>
+      <a-button type="button"
+                class="operBtn ant-btn"
+                @click="setTimerAction">{{isStart ? '停止监控' : '开始监控'}}</a-button>
+    </div>
+    <filterCustomTable @search="updateColumn"
+                       v-else>
     </filterCustomTable>
     <a-table :columns="columns"
              class="topOrderTable"
@@ -78,7 +99,7 @@
 </template>
 
 <script lang="ts">
-import { defineComponent, watchEffect } from 'vue';
+import { defineComponent, ref, watchEffect } from 'vue';
 import filterCustomTable from '../../components/filterTable/index.vue';
 import { QueryActualExposure, QueryActualExposureDetail, QueryAutualExposurePosition } from '@/services/go/ermcp/exposure/index';
 import { ErmcpRealExposureModel } from '@/services/go/ermcp/exposure/interface';
@@ -93,6 +114,8 @@ import { formatValue } from '@/common/methods';
 import { formatNumber } from '@/common/methods/format';
 import { getBizTypeName, getContractTypeName, getLogType } from '@/common/constants/enumsName';
 import { getPlanContractType } from '@/views/business/plan/setup';
+import timerUtil from '@/utils/timer/timerUtil';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: EnumRouterName.exposure_realtime,
@@ -101,6 +124,13 @@ export default defineComponent({
         filterCustomTable,
     },
     setup() {
+        const diffTimes = [
+            { id: 1, name: '3秒' },
+            { id: 2, name: '5秒' },
+            { id: 3, name: '10秒' },
+        ];
+        const timer = ref<number>(1);
+        const isStart = ref<boolean>(false);
         // 表格列表数据
         const { loading, tableList, queryTable } = queryTableList<ErmcpRealExposureModel>(true, 2);
         // 获取列表数据
@@ -111,6 +141,26 @@ export default defineComponent({
             tableFilterKey: ['MiddleGoodsName'], // 表格过滤字段
             menuType: EnumRouterName.exposure_realtime, // 当前tab页对应的code
         };
+        // 切换间隔时间
+        function timerChange() {
+            setTimer();
+        }
+        function setTimer() {
+            timerUtil.clearInterval('realTime');
+            if (isStart.value) {
+                timerUtil.setInterval(
+                    () => {
+                        queryTableAction();
+                    },
+                    timer.value * 1000,
+                    'realTime'
+                );
+            }
+        }
+        function setTimerAction() {
+            isStart.value = !isStart.value;
+            setTimer();
+        }
         const {
             visible,
             closeDrawer, // 控制 drawer 组件是否显示
@@ -159,7 +209,7 @@ export default defineComponent({
             }
         });
 
-        return { loading, tableList, visible, closeDrawer, columns, updateColumn, columnsDetail, detailTableList, expandedRowKeys, selectedRow, Rowclick, tabList, changeTab, formatNumber, getBizTypeName, getPlanContractType, getLogType };
+        return { loading, tableList, visible, closeDrawer, columns, updateColumn, columnsDetail, detailTableList, expandedRowKeys, selectedRow, Rowclick, tabList, changeTab, formatNumber, getBizTypeName, getPlanContractType, getLogType, diffTimes, timer, timerChange, isStart, setTimerAction, isPingAnOem };
     },
 });
 </script>
@@ -180,4 +230,8 @@ export default defineComponent({
         }
     }
 }
+.real-time-header {
+    padding: 5px 0 5px 5px;
+    text-align: left;
+}
 </style>;

+ 10 - 1
src/views/information/account_info/compoments/add-business/index.vue

@@ -21,8 +21,11 @@
         <a-col :span="12">
           <a-form-item label="账户角色"
                        name="roleids">
+            <span v-if="isPingAnOem()"
+                  class="dialogSpan">业务员</span>
             <a-checkbox-group class="commonCheckboxGroup"
-                              v-model:value="formState.roleids">
+                              v-model:value="formState.roleids"
+                              v-else>
               <a-row>
                 <a-col :span="12">
                   <a-checkbox :value="22">业务员</a-checkbox>
@@ -85,6 +88,7 @@ import { loginAccountOperate } from '@/services/proto/accountinfo';
 import { validateAction } from '@/common/setup/form';
 import { _closeModal } from '@/common/setup/modal/modal';
 import { ErmcpLoginUserEx } from '@/services/go/ermcp/account/interface';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'add-business-info',
@@ -102,6 +106,10 @@ export default defineComponent({
         const loading = ref<boolean>(false);
         const { rules, formState, formRef, initFormData } = handleBusinessForm();
         formState.roleids = [props.selectedRow.roleid];
+        // 平安项目
+        if (isPingAnOem()) {
+            formState.roleids = [22];
+        }
         function submit() {
             validateAction<BusinessFormState>(formRef, formState).then((param) => {
                 const reqParam = {
@@ -126,6 +134,7 @@ export default defineComponent({
             closeAction,
             submit,
             loading,
+            isPingAnOem,
         };
     },
 });

+ 13 - 9
src/views/information/account_info/compoments/add-child-futures/index.vue

@@ -27,7 +27,8 @@
         <a-col :span="12">
           <a-form-item label="所属期货账户"
                        name="userinfotype">
-            <span class="white">{{selectedData.mainAcc.accountname}}/{{selectedData.mainAcc.hedgeaccountcode}}</span>
+            <span
+                  class="white">{{selectedData.mainAcc.accountname}}/{{selectedData.mainAcc.hedgeaccountcode}}</span>
           </a-form-item>
         </a-col>
         <a-col :span="12">
@@ -69,7 +70,8 @@
             </a-select>
           </a-form-item>
         </a-col>
-        <a-col :span="12">
+        <a-col :span="12"
+               v-if="!isPingAnOem()">
           <a-form-item label="指定交易用户"
                        name="traderUserId">
             <a-select class="inlineFormSelect"
@@ -96,22 +98,23 @@
 import { closeModal, openModal } from '@/common/setup/modal/index';
 import { defineComponent, PropType, ref, watchEffect } from 'vue';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
-import {ErmcpBizGroupReq, HedgeOutMainConfigReq} from '@/services/proto/accountinfo/interface';
+import { ErmcpBizGroupReq, HedgeOutMainConfigReq } from '@/services/proto/accountinfo/interface';
 import { validateAction } from '@/common/setup/form';
 import { FormState } from './interface';
 import { handleBusinessForm, handleTradeTemplate } from './setup';
 import { hedgeOutMainReq } from '@/services/proto/accountinfo';
 import { ErmcpLoginUserEx, ErmcpTaAccountEx } from '@/services/go/ermcp/account/interface';
 import { handlerManagerList } from '@/common/setup/user';
-import {getLongTypeLoginID} from "@/services/bus/login";
-import {getUserId} from "@/services/bus/account";
-import AddTrader from '../add-traders/index.vue'
+import { getLongTypeLoginID } from '@/services/bus/login';
+import { getUserId } from '@/services/bus/account';
+import AddTrader from '../add-traders/index.vue';
 import { ErmcpTradeConfigTMP } from '@/services/go/ermcp/business-review/interface';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'account_info_futures_btn_add',
     components: {
-      AddTrader,
+        AddTrader,
     },
     props: {
         selectedData: {
@@ -135,11 +138,11 @@ export default defineComponent({
         // 控制关闭弹窗
         const { visible, cancel } = closeModal('account_info_futures_btn_child_add');
         // 新增交易用户
-        const {openAction: addTrader} = openModal('account_info_trade_btn_add') 
+        const { openAction: addTrader } = openModal('account_info_trade_btn_add');
         const loading = ref<boolean>(false);
         const { rules, formState, formRef } = handleBusinessForm();
         function updateTrader() {
-          context.emit('updateTrader')
+            context.emit('updateTrader');
         }
         function submit() {
             validateAction<FormState>(formRef, formState).then((res) => {
@@ -179,6 +182,7 @@ export default defineComponent({
             addTrader,
             updateTrader,
             loading,
+            isPingAnOem,
         };
     },
 });

+ 4 - 1
src/views/information/account_info/compoments/add-futures/index.vue

@@ -66,7 +66,8 @@
                               placeholder="请输入交易密码" />
           </a-form-item>
         </a-col>
-        <a-col :span="24">
+        <a-col :span="24"
+               v-if="!isPingAnOem()">
           <a-form-item label="指定交易用户"
                        name="">
             <span class="white">{{getUserName()}}</span>
@@ -92,6 +93,7 @@ import { AddFuturesFormState } from '../interface';
 import { getLongTypeLoginID } from '@/services/bus/login';
 import { LongType } from '@/services/socket/login/interface';
 import { getUserId } from '@/services/bus/account';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'account_info_futures_btn_add',
@@ -149,6 +151,7 @@ export default defineComponent({
             getUserName,
             submit,
             loading,
+            isPingAnOem,
         };
     },
 });

+ 5 - 0
src/views/information/account_info/compoments/detail-commom-business/index.vue

@@ -2,7 +2,10 @@
   <!-- 账户角色-->
   <Des :list="desList"
        :slotDesName="'账户角色'">
+    <span v-if="isPingAnOem()"
+          class="dialogSpan">业务员</span>
     <a-checkbox-group class="commonCheckboxGroup"
+                      v-else
                       v-model:value="selectedRole">
       <a-row>
         <a-col :span="12"
@@ -23,6 +26,7 @@ import { defineComponent, PropType, watchEffect } from 'vue';
 import { ErmcpLoginUser } from '@/services/go/ermcp/account/interface';
 import { Des, handleDesList } from '@/common/components/commonDes';
 import { handleRoles } from '../setup';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'business-comom-detail',
@@ -55,6 +59,7 @@ export default defineComponent({
             roleTypeList,
             selectedRole,
             desList,
+            isPingAnOem,
         };
     },
 });

+ 19 - 7
src/views/information/account_info/compoments/detail-commom-futures/index.vue

@@ -7,6 +7,7 @@
 import { defineComponent, PropType, watchEffect } from 'vue';
 import { ErmcpLoginUserEx, ErmcpTaAccount, ErmcpTaAccountEx } from '@/services/go/ermcp/account/interface';
 import { Des, handleDesList } from '@/common/components/commonDes';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'futures-comom-detail',
@@ -37,13 +38,24 @@ export default defineComponent({
             if (props.selectedData) {
                 const { secondeData, selectedData } = props;
                 const data = props.selectedData;
-                getDesList([
-                    { label: '所属期货账户', value: selectedData.mainAcc?.accountname },
-                    { label: '账户名称', value: secondeData.accountname },
-                    { label: '期货保证金', value: secondeData.trademargintmpname },
-                    { label: '期货手续费', value: secondeData.tradefeetmpname },
-                    { label: '指定交易用户', value: getRoleName() },
-                ]);
+                let list = [];
+                if (isPingAnOem()) {
+                    list = [
+                        { label: '所属期货账户', value: selectedData.mainAcc?.accountname },
+                        { label: '账户名称', value: secondeData.accountname },
+                        { label: '期货保证金', value: secondeData.trademargintmpname },
+                        { label: '期货手续费', value: secondeData.tradefeetmpname },
+                    ];
+                } else {
+                    list = [
+                        { label: '所属期货账户', value: selectedData.mainAcc?.accountname },
+                        { label: '账户名称', value: secondeData.accountname },
+                        { label: '期货保证金', value: secondeData.trademargintmpname },
+                        { label: '期货手续费', value: secondeData.tradefeetmpname },
+                        { label: '指定交易用户', value: getRoleName() },
+                    ];
+                }
+                getDesList(list);
             }
         });
         return {

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

@@ -21,8 +21,11 @@
         <a-col :span="12">
           <a-form-item label="账户角色"
                        name="roleids">
+            <span v-if="isPingAnOem()"
+                  class="dialogSpan">业务员</span>
             <a-checkbox-group class="commonCheckboxGroup"
-                              v-model:value="formState.roleids">
+                              v-model:value="formState.roleids"
+                              v-else>
               <a-row>
                 <a-col :span="12">
                   <a-checkbox :value="22">业务员</a-checkbox>
@@ -78,6 +81,7 @@ import { ErmcpLoginUser } from '@/services/go/ermcp/account/interface';
 import { getUserId } from '@/services/bus/account';
 import { validateAction } from '@/common/setup/form';
 import { _closeModal } from '@/common/setup/modal/modal';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'account_info_business_btn_modify',
@@ -97,6 +101,10 @@ export default defineComponent({
         mergeTwoObj(formState, props.selectedRow);
         // roletype	:string;//角色类型(逗号隔开,如22,23), 22:业务员 23:跟单员 24:交易员
         formState.roleids = props.selectedRow.roletype.split(',').map((e) => +e);
+        // 平安项目
+        if (isPingAnOem()) {
+            formState.roleids = [22];
+        }
         function submit() {
             validateAction<BusinessFormState>(formRef, formState).then((param) => {
                 const name = param.loginname;
@@ -125,6 +133,7 @@ export default defineComponent({
             cancel,
             submit,
             loading,
+            isPingAnOem,
         };
     },
 });

+ 6 - 2
src/views/information/account_info/compoments/modify-futures-son/index.vue

@@ -25,7 +25,8 @@
         <a-col :span="12">
           <a-form-item label="所属期货账户"
                        name="userinfotype">
-            <span class="white">{{selectedData.mainAcc.accountname}}/{{selectedData.mainAcc.hedgeaccountcode}}</span>
+            <span
+                  class="white">{{selectedData.mainAcc.accountname}}/{{selectedData.mainAcc.hedgeaccountcode}}</span>
           </a-form-item>
         </a-col>
         <a-col :span="12">
@@ -67,7 +68,8 @@
             </a-select>
           </a-form-item>
         </a-col>
-        <a-col :span="24">
+        <a-col :span="24"
+               v-if="!isPingAnOem()">
           <a-form-item label="指定交易用户"
                        name="traderUserId">
             <span class="white">{{getRoleName()}}</span>
@@ -92,6 +94,7 @@ import { handleBusinessForm } from '../add-child-futures/setup';
 import { ErmcpLoginUserEx, ErmcpTaAccount, ErmcpTaAccountEx } from '@/services/go/ermcp/account/interface';
 import { mergeTwoObj } from '@/utils/objHandle';
 import { ErmcpTradeConfigTMP } from '@/services/go/ermcp/business-review/interface';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'account_info_futures_btn_child_modify',
@@ -175,6 +178,7 @@ export default defineComponent({
             submit,
             getRoleName,
             loading,
+            isPingAnOem,
         };
     },
 });

+ 28 - 25
src/views/information/account_info/compoments/modify-futures/index.vue

@@ -64,7 +64,8 @@
                               placeholder="请输入登录密码" />
           </a-form-item>
         </a-col>
-        <a-col :span="24">
+        <a-col :span="24"
+               v-if="!isPingAnOem()">
           <a-form-item label="指定交易用户"
                        name="">
             <span class="white">{{getUserName()}}</span>
@@ -87,9 +88,10 @@ import { validateAction } from '@/common/setup/form';
 import { AddFuturesFormState } from '../interface';
 import { hedgeOutMainReq } from '@/services/proto/accountinfo';
 import { mergeTwoObj } from '@/utils/objHandle';
-import { getUserId } from "@/services/bus/account";
-import { getLongTypeLoginID } from "@/services/bus/login";
+import { getUserId } from '@/services/bus/account';
+import { getLongTypeLoginID } from '@/services/bus/login';
 import { HedgeOutMainConfigReq } from '@/services/proto/accountinfo/interface';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'account_info_futures_btn_modify',
@@ -108,11 +110,11 @@ export default defineComponent({
         const { rules, formState, formRef, initFormData } = handleAddOrModifyFuturesForm();
         watchEffect(() => {
             if (visible.value) {
-              console.log(props.selectedData);
-              
+                console.log(props.selectedData);
+
                 mergeTwoObj(formState, props.selectedData?.mainAcc);
-                if(props.selectedData?.mainAcc) {
-                  formState.accountid = props.selectedData.mainAcc.hedgeaccountcode
+                if (props.selectedData?.mainAcc) {
+                    formState.accountid = props.selectedData.mainAcc.hedgeaccountcode;
                 }
                 queryResultLoadingAndInfo(QueryFuturesCompany, loading).then((res) => {
                     companyList.value = res;
@@ -122,22 +124,22 @@ export default defineComponent({
         function submit() {
             validateAction<AddFuturesFormState>(formRef, formState).then((res) => {
                 let reqParam: HedgeOutMainConfigReq = {
-                      marketid: 15101, // uint64 内部市场ID(HedgeOutMainConfig)
-                      hedgeaccountcode: res.accountid, // string 对冲账号ID(HedgeOutMainConfig)
-                      hedgeaccountpwd: res.password, // string 对冲账号密码(HedgeOutMainConfig)
-                      limitnumber: 0, // uint64 挂单笔数限额默认0(HedgeOutMainConfig)
-                      status: 1, // int32 渠道账号状态 1-可买入可卖出 2-可卖出不可买入默认1(HedgeOutMainConfig)
-                      accountname: res.accountname, // string 账户名称accountname1(Taaccount)
-                      accountid: props.selectedData.mainAcc.accountid, // uint64 资金账户ID(Taaccount)
-                      taaccounttype: 1, // int32 账号类型 - 1:外部账号 2:内部账号 3:内部做市自营账号 4:内部做市接单账号(Taaccount)
-                      currencyid: 1, // int32 货币ID默认为1(Taaccount)
-                      outthreshold: 0, // double 出金阈值默认为0(Taaccount)
-                      ismain: 1, // int32 是否母账号 0:不是母账户 1:是母账户(Taaccount)
-                      relateduserid: getUserId(), // uint64 关联用户(Taaccount)
-                      maxsubaccouts: 0, // uint64 最大子账户数[最大99999][外部母账户用 默认0(TAACCOUNTCONFIG)
-                      fcid: res.fcid as number, // uint64 期货公司
-                      modifierid: Number(getLongTypeLoginID()), // uint64 修改人
-                      areauserid: getUserId(), // uint64 机构用户ID
+                    marketid: 15101, // uint64 内部市场ID(HedgeOutMainConfig)
+                    hedgeaccountcode: res.accountid, // string 对冲账号ID(HedgeOutMainConfig)
+                    hedgeaccountpwd: res.password, // string 对冲账号密码(HedgeOutMainConfig)
+                    limitnumber: 0, // uint64 挂单笔数限额默认0(HedgeOutMainConfig)
+                    status: 1, // int32 渠道账号状态 1-可买入可卖出 2-可卖出不可买入默认1(HedgeOutMainConfig)
+                    accountname: res.accountname, // string 账户名称accountname1(Taaccount)
+                    accountid: props.selectedData.mainAcc.accountid, // uint64 资金账户ID(Taaccount)
+                    taaccounttype: 1, // int32 账号类型 - 1:外部账号 2:内部账号 3:内部做市自营账号 4:内部做市接单账号(Taaccount)
+                    currencyid: 1, // int32 货币ID默认为1(Taaccount)
+                    outthreshold: 0, // double 出金阈值默认为0(Taaccount)
+                    ismain: 1, // int32 是否母账号 0:不是母账户 1:是母账户(Taaccount)
+                    relateduserid: getUserId(), // uint64 关联用户(Taaccount)
+                    maxsubaccouts: 0, // uint64 最大子账户数[最大99999][外部母账户用 默认0(TAACCOUNTCONFIG)
+                    fcid: res.fcid as number, // uint64 期货公司
+                    modifierid: Number(getLongTypeLoginID()), // uint64 修改人
+                    areauserid: getUserId(), // uint64 机构用户ID
                 };
 
                 requestResultLoadingAndInfo(hedgeOutMainReq, reqParam, loading, ['修改账户成功', '修改账户失败:']).then(() => {
@@ -147,8 +149,8 @@ export default defineComponent({
             });
         }
         function closeAction() {
-          Object.assign(formState, initFormData())
-          cancel();
+            Object.assign(formState, initFormData());
+            cancel();
         }
         return {
             formState,
@@ -161,6 +163,7 @@ export default defineComponent({
             submit,
             loading,
             cancel,
+            isPingAnOem,
         };
     },
 });

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

@@ -1,6 +1,6 @@
 <template>
   <!-- 业务账户 -->
-  <div class="account_info_business"
+  <div class="account_info_business account_info_container"
        :loading="loading">
     <filterCustomTable @search="search"></filterCustomTable>
     <div class="tltLeft">
@@ -12,51 +12,53 @@
         {{getUserName()}}
       </span>
     </div>
-    <a-collapse class="spotCollapse"
-                v-for="(item, i) in tableList"
-                :key="i + '11'"
-                :bordered="false">
-      <template #expandIcon="props">
-        <svg class="icon svg-icon"
-             aria-hidden="true"
-             v-if="props.isActive == 0">
-          <use xlink:href="#icon-shouqi1"></use>
-        </svg>
-        <svg class="icon svg-icon"
-             aria-hidden="true"
-             v-else>
-          <use xlink:href="#icon-shouqi2"></use>
-        </svg>
-      </template>
-      <a-collapse-panel>
-        <template #header>
-          <a-row class="headRow">
-            <a-col :span="12">{{item.rolename}}({{item.userlist.length}})</a-col>
-            <a-col :span="12">
-              <BtnList :btnList="firstBtn"
-                       :record="item"
-                       @click="openComponent" />
-            </a-col>
-          </a-row>
+    <div class="a-collapse-container">
+      <a-collapse class="spotCollapse"
+                  v-for="(item, i) in tableList"
+                  :key="i + '11'"
+                  :bordered="false">
+        <template #expandIcon="props">
+          <svg class="icon svg-icon"
+               aria-hidden="true"
+               v-if="props.isActive == 0">
+            <use xlink:href="#icon-shouqi1"></use>
+          </svg>
+          <svg class="icon svg-icon"
+               aria-hidden="true"
+               v-else>
+            <use xlink:href="#icon-shouqi2"></use>
+          </svg>
         </template>
-        <a-collapse class="busyCollapse"
-                    v-for="(sub, j) in item.userlist"
-                    :key="j + '11'"
-                    :bordered="false">
-          <a-collapse-panel :show-arrow="false">
-            <template #header>
-              <a-row class="contRow">
-                <a-col :span="12">{{sub.loginname}}-{{sub.logincode}}</a-col>
-                <a-col :span="12">{{getLoginStatusEnumItemName(sub.loginstatus)}}</a-col>
-              </a-row>
-            </template>
-            <BtnList :btnList="sub.btnList"
-                     :record="sub"
-                     @click="openComponent" />
-          </a-collapse-panel>
-        </a-collapse>
-      </a-collapse-panel>
-    </a-collapse>
+        <a-collapse-panel>
+          <template #header>
+            <a-row class="headRow">
+              <a-col :span="12">{{item.rolename}}({{item.userlist.length}})</a-col>
+              <a-col :span="12">
+                <BtnList :btnList="firstBtn"
+                         :record="item"
+                         @click="openComponent" />
+              </a-col>
+            </a-row>
+          </template>
+          <a-collapse class="busyCollapse"
+                      v-for="(sub, j) in item.userlist"
+                      :key="j + '11'"
+                      :bordered="false">
+            <a-collapse-panel :show-arrow="false">
+              <template #header>
+                <a-row class="contRow">
+                  <a-col :span="12">{{sub.loginname}}-{{sub.logincode}}</a-col>
+                  <a-col :span="12">{{getLoginStatusEnumItemName(sub.loginstatus)}}</a-col>
+                </a-row>
+              </template>
+              <BtnList :btnList="sub.btnList"
+                       :record="sub"
+                       @click="openComponent" />
+            </a-collapse-panel>
+          </a-collapse>
+        </a-collapse-panel>
+      </a-collapse>
+    </div>
     <component :is="componentId"
                v-if="componentId"
                :selectedRow="selectedData"

+ 84 - 84
src/views/information/account_info/list/account_info_futures/index.vue

@@ -1,97 +1,97 @@
 <template>
-    <!-- 期货账户 -->
-    <div class="account_info_futures" :loading="loading">
-        <filterCustomTable @search="search"></filterCustomTable>
-        <div class="tltLeft">
-            <span class="blue">
-                <svg class="icon svg-icon" aria-hidden="true">
-                    <use xlink:href="#icon-shuzhuangtu" />
-                </svg>
-                {{getUserName()}}
-            </span>
-            <BtnList :btnList="firstBtn" />
-        </div>
-        <a-collapse
-            class="spotCollapse"
-            v-for="(item, i) in tableList"
-            :key="i + '11'"
-            :bordered="false"
-        >
-            <template #expandIcon="props">
-                <svg class="icon svg-icon" aria-hidden="true" v-if="props.isActive == 0">
-                    <use xlink:href="#icon-shouqi1" />
-                </svg>
-                <svg class="icon svg-icon" aria-hidden="true" v-else>
-                    <use xlink:href="#icon-shouqi2" />
-                </svg>
-            </template>
-            <a-collapse-panel>
-                <template #header>
-                    <a-row class="headRow">
-                        <a-col :span="12">
-                            {{item.mainAcc.accountname}} {{ '-' + item.mainAcc.hedgeaccountcode}}
-                            ({{item.subacclist.length}}){{item.mainAcc.fcname}}
-                        </a-col>
-                        <a-col :span="12">
-                            <BtnList :btnList="secondBtn" @onClick="secondeClick(item)" />
-                        </a-col>
-                    </a-row>
-                </template>
-                <a-collapse class="futureCollapse" accordion :bordered="false">
-                    <a-collapse-panel
-                        :show-arrow="false"
-                        v-for="(sub, i) in item.subacclist"
-                        :key="i + '11'"
-                    >
-                        <template #header>
-                            <a-row class="contRow">
-                                <a-col :span="12">{{sub.accountname}}-{{sub.accountid}}</a-col>
-                                <a-col :span="12">{{getTaAccountStatus(sub.tradestatus)}}</a-col>
-                            </a-row>
-                        </template>
-                        <BtnList
-                            :btnList="getBtnList(sub.tradestatus)"
-                            @onClick="thirdClick(item, sub)"
-                        />
-                    </a-collapse-panel>
-                </a-collapse>
+  <!-- 期货账户 -->
+  <div class="account_info_futures account_info_container"
+       :loading="loading">
+    <filterCustomTable @search="search"></filterCustomTable>
+    <div class="tltLeft">
+      <span class="blue">
+        <svg class="icon svg-icon"
+             aria-hidden="true">
+          <use xlink:href="#icon-shuzhuangtu" />
+        </svg>
+        {{getUserName()}}
+      </span>
+      <BtnList :btnList="firstBtn" />
+    </div>
+    <div class="a-collapse-container">
+      <a-collapse class="spotCollapse"
+                  v-for="(item, i) in tableList"
+                  :key="i + '11'"
+                  :bordered="false">
+        <template #expandIcon="props">
+          <svg class="icon svg-icon"
+               aria-hidden="true"
+               v-if="props.isActive == 0">
+            <use xlink:href="#icon-shouqi1" />
+          </svg>
+          <svg class="icon svg-icon"
+               aria-hidden="true"
+               v-else>
+            <use xlink:href="#icon-shouqi2" />
+          </svg>
+        </template>
+        <a-collapse-panel>
+          <template #header>
+            <a-row class="headRow">
+              <a-col :span="12">
+                {{item.mainAcc.accountname}} {{ '-' + item.mainAcc.hedgeaccountcode}}
+                ({{item.subacclist.length}}){{item.mainAcc.fcname}}
+              </a-col>
+              <a-col :span="12">
+                <BtnList :btnList="secondBtn"
+                         @onClick="secondeClick(item)" />
+              </a-col>
+            </a-row>
+          </template>
+          <a-collapse class="futureCollapse"
+                      accordion
+                      :bordered="false">
+            <a-collapse-panel :show-arrow="false"
+                              v-for="(sub, i) in item.subacclist"
+                              :key="i + '11'">
+              <template #header>
+                <a-row class="contRow">
+                  <a-col :span="12">{{sub.accountname}}-{{sub.accountid}}</a-col>
+                  <a-col :span="12">{{getTaAccountStatus(sub.tradestatus)}}</a-col>
+                </a-row>
+              </template>
+              <BtnList :btnList="getBtnList(sub.tradestatus)"
+                       @onClick="thirdClick(item, sub)" />
             </a-collapse-panel>
-        </a-collapse>
-        <Add @refresh="queryTable" />
-        <AddChild
-            :selectedData="firstData"
-            :userList="userList"
-            :marginList="marginList"
-            :feeList="feeList"
-            @updateTrader="queryUserList"
-            @refresh="queryTable"
-        />
-        <Modify :selectedData="firstData" @refresh="queryTable" />
-        <ModifyChild
-            @refresh="queryTable"
-            :userList="userList"
-            :marginList="marginList"
-            :feeList="feeList"
-            :secondeData="secondeData"
-            :selectedData="firstData"
-        />
-        <Detail
-            :selectedData="firstData"
+          </a-collapse>
+        </a-collapse-panel>
+      </a-collapse>
+    </div>
+    <Add @refresh="queryTable" />
+    <AddChild :selectedData="firstData"
+              :userList="userList"
+              :marginList="marginList"
+              :feeList="feeList"
+              @updateTrader="queryUserList"
+              @refresh="queryTable" />
+    <Modify :selectedData="firstData"
+            @refresh="queryTable" />
+    <ModifyChild @refresh="queryTable"
+                 :userList="userList"
+                 :marginList="marginList"
+                 :feeList="feeList"
+                 :secondeData="secondeData"
+                 :selectedData="firstData" />
+    <Detail :selectedData="firstData"
             :secondeData="secondeData"
             :userList="userList"
             :marginList="marginList"
-            :feeList="feeList"
-        />
-        <Cancel
-            @refresh="queryTable"
+            :feeList="feeList" />
+    <Cancel @refresh="queryTable"
             :userList="userList"
             :marginList="marginList"
             :feeList="feeList"
             :secondeData="secondeData"
+            :selectedData="firstData" />
+    <Credit @refresh="queryTable"
             :selectedData="firstData"
-        />
-        <Credit @refresh="queryTable" :selectedData="firstData" :secondeData="secondeData" />
-    </div>
+            :secondeData="secondeData" />
+  </div>
 </template>
 
 <script lang="ts">

+ 47 - 46
src/views/information/account_info/list/account_info_manager/index.vue

@@ -1,6 +1,6 @@
 <template>
   <!-- 管理账户 -->
-  <div class="account_info_manager"
+  <div class="account_info_manager account_info_container"
        :loading="loading">
     <filterCustomTable @search="search"></filterCustomTable>
     <div class="tltLeft">
@@ -13,52 +13,53 @@
       </span>
       <BtnList :btnList="firstBtn" />
     </div>
-
-    <a-collapse class="spotCollapse"
-                v-for="(item, i) in tableList"
-                :key="i + '11'"
-                :bordered="false">
-      <template #expandIcon="props">
-        <svg class="icon svg-icon"
-             aria-hidden="true"
-             v-if="props.isActive == 0">
-          <use xlink:href="#icon-shouqi1"></use>
-        </svg>
-        <svg class="icon svg-icon"
-             aria-hidden="true"
-             v-else>
-          <use xlink:href="#icon-shouqi2"></use>
-        </svg>
-      </template>
-      <a-collapse-panel>
-        <template #header>
-          <a-row class="headRow">
-            <a-col :span="12">{{item.rolename}}({{item.userlist.length}})</a-col>
-            <a-col :span="12">
-              <BtnList :selectedData="item"
-                       :btnList="secondBtn"
-                       @onClick="openAction" />
-            </a-col>
-          </a-row>
+    <div class="a-collapse-container">
+      <a-collapse class="spotCollapse"
+                  v-for="(item, i) in tableList"
+                  :key="i + '11'"
+                  :bordered="false">
+        <template #expandIcon="props">
+          <svg class="icon svg-icon"
+               aria-hidden="true"
+               v-if="props.isActive == 0">
+            <use xlink:href="#icon-shouqi1"></use>
+          </svg>
+          <svg class="icon svg-icon"
+               aria-hidden="true"
+               v-else>
+            <use xlink:href="#icon-shouqi2"></use>
+          </svg>
         </template>
-        <a-collapse class="busyCollapse"
-                    v-for="(sub, i) in item.userlist"
-                    :key="i + '11'"
-                    :bordered="false">
-          <a-collapse-panel :show-arrow="false">
-            <template #header>
-              <a-row class="contRow">
-                <a-col :span="12">{{sub.loginname}}-{{sub.logincode}}</a-col>
-                <a-col :span="12">{{getLoginStatusEnumItemName(sub.loginstatus)}}</a-col>
-              </a-row>
-            </template>
-            <BtnList :btnList="sub.btnList"
-                     :selectedData="sub"
-                     @onClick="moreOptenAction" />
-          </a-collapse-panel>
-        </a-collapse>
-      </a-collapse-panel>
-    </a-collapse>
+        <a-collapse-panel>
+          <template #header>
+            <a-row class="headRow">
+              <a-col :span="12">{{item.rolename}}({{item.userlist.length}})</a-col>
+              <a-col :span="12">
+                <BtnList :selectedData="item"
+                         :btnList="secondBtn"
+                         @onClick="openAction" />
+              </a-col>
+            </a-row>
+          </template>
+          <a-collapse class="busyCollapse"
+                      v-for="(sub, i) in item.userlist"
+                      :key="i + '11'"
+                      :bordered="false">
+            <a-collapse-panel :show-arrow="false">
+              <template #header>
+                <a-row class="contRow">
+                  <a-col :span="12">{{sub.loginname}}-{{sub.logincode}}</a-col>
+                  <a-col :span="12">{{getLoginStatusEnumItemName(sub.loginstatus)}}</a-col>
+                </a-row>
+              </template>
+              <BtnList :btnList="sub.btnList"
+                       :selectedData="sub"
+                       @onClick="moreOptenAction" />
+            </a-collapse-panel>
+          </a-collapse>
+        </a-collapse-panel>
+      </a-collapse>
+    </div>
     <Add @refresh="handleBtnAction"
          :tableList="tableList" />
     <Modify :tableList="tableList"

+ 47 - 45
src/views/information/account_info/list/account_info_trade/index.vue

@@ -1,6 +1,6 @@
 <template>
   <!-- 交易账户 -->
-  <div class="account_info_trade"
+  <div class="account_info_trade account_info_container"
        :loading="loading">
     <filterCustomTable @search="search"></filterCustomTable>
     <div class="tltLeft">
@@ -13,51 +13,53 @@
       </span>
       <BtnList :btnList="firstBtn" />
     </div>
-    <a-collapse class="spotCollapse"
-                v-for="(item, i) in tableList"
-                :key="i + '11'"
-                :bordered="false">
-      <template #expandIcon="props">
-        <svg class="icon svg-icon"
-             aria-hidden="true"
-             v-if="props.isActive == 0">
-          <use xlink:href="#icon-shouqi1"></use>
-        </svg>
-        <svg class="icon svg-icon"
-             aria-hidden="true"
-             v-else>
-          <use xlink:href="#icon-shouqi2"></use>
-        </svg>
-      </template>
-      <a-collapse-panel>
-        <template #header>
-          <a-row class="headRow">
-            <a-col :span="12">
-              {{item.rolename}}({{item.userlist.length}})
-            </a-col>
-            <a-col :span="12">
-              <BtnList :btnList="secondBtn"
-                       @onClick="btnClick(item)" />
-            </a-col>
-          </a-row>
+    <div class="a-collapse-container">
+      <a-collapse class="spotCollapse"
+                  v-for="(item, i) in tableList"
+                  :key="i + '11'"
+                  :bordered="false">
+        <template #expandIcon="props">
+          <svg class="icon svg-icon"
+               aria-hidden="true"
+               v-if="props.isActive == 0">
+            <use xlink:href="#icon-shouqi1"></use>
+          </svg>
+          <svg class="icon svg-icon"
+               aria-hidden="true"
+               v-else>
+            <use xlink:href="#icon-shouqi2"></use>
+          </svg>
         </template>
-        <a-collapse class="busyCollapse"
-                    v-for="(sub, i) in item.userlist"
-                    :key="i + '11'"
-                    :bordered="false">
-          <a-collapse-panel :show-arrow="false">
-            <template #header>
-              <a-row class="contRow">
-                <a-col :span="12">{{sub.loginname}}-{{sub.logincode}}</a-col>
-                <a-col :span="12">{{getRoleTypeName(sub.loginstatus)}}</a-col>
-              </a-row>
-            </template>
-            <BtnList :btnList="sub.btnList"
-                     @onClick="btnClick(item, sub)" />
-          </a-collapse-panel>
-        </a-collapse>
-      </a-collapse-panel>
-    </a-collapse>
+        <a-collapse-panel>
+          <template #header>
+            <a-row class="headRow">
+              <a-col :span="12">
+                {{item.rolename}}({{item.userlist.length}})
+              </a-col>
+              <a-col :span="12">
+                <BtnList :btnList="secondBtn"
+                         @onClick="btnClick(item)" />
+              </a-col>
+            </a-row>
+          </template>
+          <a-collapse class="busyCollapse"
+                      v-for="(sub, i) in item.userlist"
+                      :key="i + '11'"
+                      :bordered="false">
+            <a-collapse-panel :show-arrow="false">
+              <template #header>
+                <a-row class="contRow">
+                  <a-col :span="12">{{sub.loginname}}-{{sub.logincode}}</a-col>
+                  <a-col :span="12">{{getRoleTypeName(sub.loginstatus)}}</a-col>
+                </a-row>
+              </template>
+              <BtnList :btnList="sub.btnList"
+                       @onClick="btnClick(item, sub)" />
+            </a-collapse-panel>
+          </a-collapse>
+        </a-collapse-panel>
+      </a-collapse>
+    </div>
     <Add @refresh="handleBtnAction" />
     <AddChild @refresh="handleBtnAction"
               :accountList="accountList"

+ 85 - 1
src/views/information/custom/compoments/add/index.vue

@@ -1,6 +1,88 @@
 <template>
-  <!-- 新增客户资料 -->
+  <!-- 平安客户资料 -->
+  <a-modal class="add-custom "
+           title="新增客户资料"
+           v-model:visible="visible"
+           @cancel="cancel"
+           centered
+           :maskClosable="false"
+           v-if="isPingAnOem()"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                class="cancelBtn"
+                :loading="loading"
+                :disabled="loading"
+                @click="submit(1)">完成
+      </a-button>
+    </template>
+    <a-form class="inlineForm"
+            ref="formRef"
+            :model="formState"
+            :rules="rules">
+      <a-row :gutter="24">
+        <a-col :span="12">
+          <a-form-item label="客户类型"
+                       name="userinfotype">
+            <a-select class="typeSelect"
+                      style="width: 200px"
+                      v-model:value="formState.userinfotype"
+                      placeholder="请选择客户类型">
+              <a-select-option value="1">
+                个人
+              </a-select-option>
+              <a-select-option value="2">
+                企业
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <template v-if="!isPersonal()">
+          <a-col :span="12">
+            <a-form-item label="企业名称"
+                         name="customername">
+              <a-input class="dialogInput"
+                       v-model:value="formState.customername"
+                       style="width: 200px"
+                       placeholder="请输入企业名称" />
+            </a-form-item>
+          </a-col>
+        </template>
+        <template v-else>
+          <a-col :span="12">
+            <a-form-item label="姓名"
+                         name="username">
+              <a-input class="dialogInput"
+                       style="width: 200px"
+                       v-model:value="formState.username"
+                       placeholder="请输入姓名" />
+            </a-form-item>
+          </a-col>
+        </template>
+        <a-col :span="12">
+          <a-form-item label="点价联系人"
+                       name="contactname">
+            <a-input class="dialogInput"
+                     style="width: 200px"
+                     v-model:value="formState.contactname"
+                     placeholder="请输入联系人" />
+          </a-form-item>
+        </a-col>
+        <a-col :span="12">
+          <a-form-item label="联系人手机号"
+                       name="mobilephone">
+            <a-input class="dialogInput"
+                     style="width: 200px"
+                     v-model:value="formState.mobilephone"
+                     placeholder="请输入联系人手机号" />
+          </a-form-item>
+        </a-col>
+      </a-row>
+    </a-form>
+  </a-modal>
+  <!-- 其他项目客户资料 -->
   <a-modal class="add-custom"
+           v-else
            title="新增客户资料"
            v-model:visible="visible"
            @cancel="cancel"
@@ -279,6 +361,7 @@ import { getUploadImg } from '@/common/setup/upload';
 import { addCustomerInfoOperate } from '@/services/proto/accountinfo';
 import { CustomerInfoOperateReq } from '@/services/proto/accountinfo/interface';
 import { getAreaUserId } from '@/services/bus/user';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'add-custom',
@@ -357,6 +440,7 @@ export default defineComponent({
             attachmentUpLoad,
             cardbackphotourlUpLoad,
             cardfrontphotourlUpLoad,
+            isPingAnOem,
         };
     },
 });

+ 51 - 32
src/views/information/custom/compoments/common-detail/index.vue

@@ -21,6 +21,7 @@ import { formatValue } from '@/common/methods';
 import { getCardTypeEnumItemName } from '@/common/constants/enumsName';
 import { Des, DescriptionsList, handleDesList } from '@/common/components/commonDes';
 import { handlePreviewImg } from '@/common/setup/upload';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'custom-detail-desc',
@@ -57,38 +58,56 @@ export default defineComponent({
         watchEffect(() => {
             // if (props.selectedRow.customername) {
             const data = props.selectedRow;
-            // 个人
-            const person = [
-                { label: '客户类型', value: '个人' },
-                { label: '姓名', value: formatValue(data.username) },
-                { label: '身份证号码', value: formatValue(data.cardnum) },
-                { label: '手机号码', value: formatValue(data.mobile) },
-                { label: '身份证正面照', value: formatValue(getImgName(data.cardfrontphotourl)), className: 'blue' },
-                { label: '身份证反面照', value: formatValue(getImgName(data.cardbackphotourl)), className: 'blue' },
-                { label: '邮箱', value: formatValue(data.email) },
-                { label: '联系电话', value: formatValue(data.telphone) },
-                { label: '通讯地址', value: formatValue(data.provincename + data.cityname + data.districtname + data.address) },
-                { label: '备注', value: formatValue(data.remark) },
-            ];
-            // 企业
-            const company = [
-                { label: '客户类型', value: '企业' },
-                { label: '企业名称', value: data.customername },
-                { label: '企业简称', value: formatValue(data.nickname) },
-                { label: '证件类型', value: getCardTypeEnumItemName(data.cardtype) },
-                { label: '法定代表人', value: formatValue(data.legalpersonname) },
-                { label: '证件号码', value: formatValue(data.cardnum) },
-                { label: '纳税人识别号', value: formatValue(data.taxpayernum) },
-                { label: '营业执照', value: formatValue(getImgName(data.cardfrontphotourl)), className: 'blue' },
-                { label: '联系人', value: formatValue(data.contactname) },
-                { label: '联系人手机号', value: formatValue(data.mobile) },
-                { label: '联系电话', value: formatValue(data.telphone) },
-                { label: '状态', value: getStatusName(data.status), className: 'green' },
-                { label: '通讯地址', value: formatValue(data.provincename + data.cityname + data.districtname + data.address) },
-                { label: '备注', value: formatValue(data.remark) },
-            ];
-            getDesList(isPersonal() ? person : company);
-            // }
+            if (isPingAnOem()) {
+                const person = [
+                    { label: '客户类型', value: '个人' },
+                    { label: '姓名', value: formatValue(data.username) },
+                    { label: '点价联系人', value: formatValue(data.contactname) },
+                    { label: '联系人手机号', value: formatValue(data.mobile) },
+                    { label: '状态', value: getStatusName(data.status), className: 'green' },
+                ];
+                const company = [
+                    { label: '客户类型', value: '企业' },
+                    { label: '企业名称', value: formatValue(data.customername) },
+                    { label: '点价联系人', value: formatValue(data.contactname) },
+                    { label: '联系人手机号', value: formatValue(data.mobile) },
+                    { label: '状态', value: getStatusName(data.status), className: 'green' },
+                ];
+                getDesList(isPersonal() ? person : company);
+            } else {
+                // 个人
+                const person = [
+                    { label: '客户类型', value: '个人' },
+                    { label: '姓名', value: formatValue(data.username) },
+                    { label: '身份证号码', value: formatValue(data.cardnum) },
+                    { label: '手机号码', value: formatValue(data.mobile) },
+                    { label: '身份证正面照', value: formatValue(getImgName(data.cardfrontphotourl)), className: 'blue' },
+                    { label: '身份证反面照', value: formatValue(getImgName(data.cardbackphotourl)), className: 'blue' },
+                    { label: '邮箱', value: formatValue(data.email) },
+                    { label: '联系电话', value: formatValue(data.telphone) },
+                    { label: '通讯地址', value: formatValue(data.provincename + data.cityname + data.districtname + data.address) },
+                    { label: '备注', value: formatValue(data.remark) },
+                ];
+                // 企业
+                const company = [
+                    { label: '客户类型', value: '企业' },
+                    { label: '企业名称', value: data.customername },
+                    { label: '企业简称', value: formatValue(data.nickname) },
+                    { label: '证件类型', value: getCardTypeEnumItemName(data.cardtype) },
+                    { label: '法定代表人', value: formatValue(data.legalpersonname) },
+                    { label: '证件号码', value: formatValue(data.cardnum) },
+                    { label: '纳税人识别号', value: formatValue(data.taxpayernum) },
+                    { label: '营业执照', value: formatValue(getImgName(data.cardfrontphotourl)), className: 'blue' },
+                    { label: '联系人', value: formatValue(data.contactname) },
+                    { label: '联系人手机号', value: formatValue(data.mobile) },
+                    { label: '联系电话', value: formatValue(data.telphone) },
+                    { label: '状态', value: getStatusName(data.status), className: 'green' },
+                    { label: '通讯地址', value: formatValue(data.provincename + data.cityname + data.districtname + data.address) },
+                    { label: '备注', value: formatValue(data.remark) },
+                ];
+                getDesList(isPersonal() ? person : company);
+                // }
+            }
         });
         return {
             desList,

+ 185 - 135
src/views/information/warehouse-info/compoments/add/index.vue

@@ -1,139 +1,187 @@
 <template>
-    <!-- 新增仓库信息 -->
-    <a-modal
-        class="add-warehouse commonModal"
-        title="新增仓库信息"
-        v-model:visible="visible"
-        centered
-        :maskClosable="false"
-        @cancel="cancel"
-        width="890px"
-    >
-        <template #footer>
-            <a-button key="submit" type="primary" :loading="loading" @click="cancel">取消</a-button>
-            <a-button key="submit" type="primary" :loading="loading" @click="submit">完成</a-button>
-        </template>
-        <a-form class="inlineForm" ref="formRef" :model="formState" :rules="rules">
-            <a-row :gutter="24">
-                <a-col :span="12">
-                    <a-form-item label="仓库类型" name="warehousetype">
-                        <a-select
-                            class="typeSelect"
-                            style="width: 200px"
-                            v-model:value="formState.warehousetype"
-                            placeholder="请选择仓库类型"
-                        >
-                            <a-select-option
-                                v-for="item in warehouseType"
-                                :key="item.enumitemname"
-                                :value="item.enumitemname"
-                            >{{item.enumdicname}}</a-select-option>
-                        </a-select>
-                    </a-form-item>
-                </a-col>
-                <a-col :span="12">
-                    <a-form-item label="仓库名称" name="warehousename">
-                        <a-input
-                            class="dialogInput"
-                            style="width: 200px"
-                            v-model:value="formState.warehousename"
-                            placeholder="请输入仓库名称"
-                        />
-                    </a-form-item>
-                </a-col>
-            </a-row>
-            <a-row :gutter="24">
-                <a-col :span="12">
-                    <a-form-item label="仓库简称" name="warehousecode">
-                        <a-input
-                            class="dialogInput"
-                            style="width: 200px"
-                            v-model:value="formState.warehousecode"
-                            placeholder="请输入仓库简称"
-                        />
-                    </a-form-item>
-                </a-col>
-                <a-col :span="12">
-                    <a-form-item label="联系人" name="contactname">
-                        <a-input
-                            class="dialogInput"
-                            style="width: 200px"
-                            v-model:value="formState.contactname"
-                            placeholder="请输入联系人"
-                        />
-                    </a-form-item>
-                </a-col>
-            </a-row>
-            <a-row :gutter="24">
-                <a-col :span="24">
-                    <a-form-item label="联系电话" name="contactnum">
-                        <a-input
-                            class="dialogInput"
-                            style="width: 200px"
-                            v-model:value="formState.contactnum"
-                            placeholder="请输入联系电话"
-                        />
-                    </a-form-item>
-                </a-col>
-            </a-row>
-            <a-row :gutter="24">
-                <a-col :span="24">
-                    <a-form-item label="所在地区">
-                        <a-select
-                            class="inlineFormSelect"
-                            style="width: 205px"
-                            v-model:value="formState.provinceid"
-                            @change="getCityList"
-                            placeholder="请选择省"
-                        >
-                            <a-select-option
-                                v-for="item in provinceList"
-                                :key="item.autoid"
-                                :value="item.autoid"
-                            >{{item.divisionname}}</a-select-option>
-                        </a-select>
-                        <a-select
-                            class="inlineFormSelect ml9"
-                            style="width: 205px"
-                            v-model:value="formState.cityid"
-                            @change="getDistrictList"
-                            placeholder="请选择市"
-                        >
-                            <a-select-option
-                                v-for="item in cityList"
-                                :key="item.autoid"
-                                :value="item.autoid"
-                            >{{item.divisionname}}</a-select-option>
-                        </a-select>
-                        <a-select
-                            class="inlineFormSelect ml9"
-                            v-model:value="formState.districtid"
-                            style="width: 205px"
-                            placeholder="请选择县(区)"
-                        >
-                            <a-select-option
-                                v-for="item in districtList"
-                                :key="item.autoid"
-                                :value="item.autoid"
-                            >{{item.divisionname}}</a-select-option>
-                        </a-select>
-                    </a-form-item>
-                </a-col>
-            </a-row>
-            <a-row :gutter="24">
-                <a-col :span="24">
-                    <a-form-item label="详细地址" name="address">
-                        <a-input
-                            class="dialogInput"
-                            v-model:value="formState.address"
-                            style="width: 635px"
-                            placeholder="请输入详细地址"
-                        />
-                    </a-form-item>
-                </a-col>
-            </a-row>
-        </a-form>
-    </a-modal>
+  <!-- 平安 新增仓库信息 -->
+  <a-modal v-if="isPingAnOem()"
+           class="add-warehouse commonModal"
+           title="新增仓库信息"
+           v-model:visible="visible"
+           centered
+           :maskClosable="false"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="cancel">取消</a-button>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="submit">完成</a-button>
+    </template>
+    <a-form class="inlineForm"
+            ref="formRef"
+            :model="formState"
+            :rules="rules">
+      <a-row :gutter="24">
+        <a-col :span="12">
+          <a-form-item label="仓库类型"
+                       name="warehousetype">
+            <a-select class="typeSelect"
+                      style="width: 200px"
+                      v-model:value="formState.warehousetype"
+                      placeholder="请选择仓库类型">
+              <a-select-option v-for="item in warehouseType"
+                               :key="item.enumitemname"
+                               :value="item.enumitemname">{{item.enumdicname}}</a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <a-col :span="12">
+          <a-form-item label="仓库名称"
+                       name="warehousename">
+            <a-input class="dialogInput"
+                     style="width: 200px"
+                     v-model:value="formState.warehousename"
+                     placeholder="请输入仓库名称" />
+          </a-form-item>
+        </a-col>
+      </a-row>
+      <a-row :gutter="24">
+        <a-col :span="12">
+          <a-form-item label="仓库简称"
+                       name="warehousecode">
+            <a-input class="dialogInput"
+                     style="width: 200px"
+                     v-model:value="formState.warehousecode"
+                     placeholder="请输入仓库简称" />
+          </a-form-item>
+        </a-col>
+      </a-row>
+    </a-form>
+  </a-modal>
+  <!-- 其他项目 新增仓库信息 -->
+  <a-modal v-else
+           class="add-warehouse commonModal"
+           title="新增仓库信息"
+           v-model:visible="visible"
+           centered
+           :maskClosable="false"
+           @cancel="cancel"
+           width="890px">
+    <template #footer>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="cancel">取消</a-button>
+      <a-button key="submit"
+                type="primary"
+                :loading="loading"
+                @click="submit">完成</a-button>
+    </template>
+    <a-form class="inlineForm"
+            ref="formRef"
+            :model="formState"
+            :rules="rules">
+      <a-row :gutter="24">
+        <a-col :span="12">
+          <a-form-item label="仓库类型"
+                       name="warehousetype">
+            <a-select class="typeSelect"
+                      style="width: 200px"
+                      v-model:value="formState.warehousetype"
+                      placeholder="请选择仓库类型">
+              <a-select-option v-for="item in warehouseType"
+                               :key="item.enumitemname"
+                               :value="item.enumitemname">{{item.enumdicname}}</a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <a-col :span="12">
+          <a-form-item label="仓库名称"
+                       name="warehousename">
+            <a-input class="dialogInput"
+                     style="width: 200px"
+                     v-model:value="formState.warehousename"
+                     placeholder="请输入仓库名称" />
+          </a-form-item>
+        </a-col>
+      </a-row>
+      <a-row :gutter="24">
+        <a-col :span="12">
+          <a-form-item label="仓库简称"
+                       name="warehousecode">
+            <a-input class="dialogInput"
+                     style="width: 200px"
+                     v-model:value="formState.warehousecode"
+                     placeholder="请输入仓库简称" />
+          </a-form-item>
+        </a-col>
+        <a-col :span="12">
+          <a-form-item label="联系人"
+                       name="contactname">
+            <a-input class="dialogInput"
+                     style="width: 200px"
+                     v-model:value="formState.contactname"
+                     placeholder="请输入联系人" />
+          </a-form-item>
+        </a-col>
+      </a-row>
+      <a-row :gutter="24">
+        <a-col :span="24">
+          <a-form-item label="联系电话"
+                       name="contactnum">
+            <a-input class="dialogInput"
+                     style="width: 200px"
+                     v-model:value="formState.contactnum"
+                     placeholder="请输入联系电话" />
+          </a-form-item>
+        </a-col>
+      </a-row>
+      <a-row :gutter="24">
+        <a-col :span="24">
+          <a-form-item label="所在地区">
+            <a-select class="inlineFormSelect"
+                      style="width: 205px"
+                      v-model:value="formState.provinceid"
+                      @change="getCityList"
+                      placeholder="请选择省">
+              <a-select-option v-for="item in provinceList"
+                               :key="item.autoid"
+                               :value="item.autoid">{{item.divisionname}}</a-select-option>
+            </a-select>
+            <a-select class="inlineFormSelect ml9"
+                      style="width: 205px"
+                      v-model:value="formState.cityid"
+                      @change="getDistrictList"
+                      placeholder="请选择市">
+              <a-select-option v-for="item in cityList"
+                               :key="item.autoid"
+                               :value="item.autoid">{{item.divisionname}}</a-select-option>
+            </a-select>
+            <a-select class="inlineFormSelect ml9"
+                      v-model:value="formState.districtid"
+                      style="width: 205px"
+                      placeholder="请选择县(区)">
+              <a-select-option v-for="item in districtList"
+                               :key="item.autoid"
+                               :value="item.autoid">{{item.divisionname}}</a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-col>
+      </a-row>
+      <a-row :gutter="24">
+        <a-col :span="24">
+          <a-form-item label="详细地址"
+                       name="address">
+            <a-input class="dialogInput"
+                     v-model:value="formState.address"
+                     style="width: 635px"
+                     placeholder="请输入详细地址" />
+          </a-form-item>
+        </a-col>
+      </a-row>
+    </a-form>
+  </a-modal>
 </template>
 
 <script lang="ts">
@@ -149,6 +197,7 @@ import { getWarehouseTypeEnumList } from '@/common/constants/enumsList';
 import { addWarehouseApply } from '@/services/proto/warehouse';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
 import { validateAction } from '@/common/setup/form';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'warehouse_info_btn_add',
@@ -201,6 +250,7 @@ export default defineComponent({
             formState,
             rules,
             warehouseType,
+            isPingAnOem,
         };
     },
 });

+ 30 - 24
src/views/information/warehouse-info/compoments/detail/index.vue

@@ -35,35 +35,39 @@
           </a-form-item>
         </a-col>
         <a-col :span="12">
-          <a-form-item label="联系人">
-            <span class="white">{{ formatValue(selectedRow.contactname) }}</span>
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="联系电话">
-            <span class="white">{{ formatValue(selectedRow.contactnum) }}</span>
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
           <a-form-item label="状态">
             <span class="white">{{ gerWareHouseStatusName(selectedRow.warehousestatus) }}</span>
           </a-form-item>
         </a-col>
+
       </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="所在地区">
-            <span class="white">{{ getProvinceName(selectedRow.provinceid) + getCityName(selectedRow.cityid) + getDistrictName(selectedRow.districtid) }}</span>
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="详细地址">
-            <span class="white">{{ formatValue(selectedRow.address) }}</span>
-          </a-form-item>
-        </a-col>
-      </a-row>
+      <template v-if="!isPingAnOem()">
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item label="联系电话">
+              <span class="white">{{ formatValue(selectedRow.contactnum) }}</span>
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item label="联系人">
+              <span class="white">{{ formatValue(selectedRow.contactname) }}</span>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item label="所在地区">
+              <span
+                    class="white">{{ getProvinceName(selectedRow.provinceid) + getCityName(selectedRow.cityid) + getDistrictName(selectedRow.districtid) }}</span>
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item label="详细地址">
+              <span class="white">{{ formatValue(selectedRow.address) }}</span>
+            </a-form-item>
+          </a-col>
+        </a-row>
+      </template>
     </a-form>
   </a-modal>
 </template>
@@ -76,6 +80,7 @@ import { ErmcpWareHouseInfo } from '@/services/go/ermcp/warehouse-info/interface
 import { gerWareHouseStatusName, getAddressInfo, getWareHouseTypeName } from '@/views/information/warehouse-info/setup';
 import { formatValue } from '@/common/methods';
 import { getAddress } from '@/services/go/adress';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'warehouse_info_btn-detail',
@@ -107,6 +112,7 @@ export default defineComponent({
             getProvinceName,
             getCityName,
             getDistrictName,
+            isPingAnOem,
         };
     },
 });

+ 31 - 25
src/views/information/warehouse-info/compoments/disable/index.vue

@@ -29,7 +29,7 @@
         </a-col>
         <a-col :span="12">
           <a-form-item label="仓库名称">
-            <span class="white">{{ formatValue(selectedRow.warehousename) }}</span>
+            <span class="white">{{ formatValue(selectedRow.warehousename)}}</span>
           </a-form-item>
         </a-col>
       </a-row>
@@ -40,35 +40,39 @@
           </a-form-item>
         </a-col>
         <a-col :span="12">
-          <a-form-item label="联系人">
-            <span class="white">{{ formatValue(selectedRow.contactname) }}</span>
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="联系电话">
-            <span class="white">{{ formatValue(selectedRow.contactnum) }}</span>
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
           <a-form-item label="状态">
             <span class="white">{{ gerWareHouseStatusName(selectedRow.warehousestatus) }}</span>
           </a-form-item>
         </a-col>
+
       </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="所在地区">
-            <span class="white">{{ formatValue(selectedRow.address) }}</span>
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="详细地址">
-            <span class="white">{{ formatValue(selectedRow.address) }}</span>
-          </a-form-item>
-        </a-col>
-      </a-row>
+      <template v-if="!isOemByEnum()">
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item label="联系电话">
+              <span class="white">{{ formatValue(selectedRow.contactnum) }}</span>
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item label="联系人">
+              <span class="white">{{ formatValue(selectedRow.contactname) }}</span>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item label="所在地区">
+              <span
+                    class="white">{{ getProvinceName(selectedRow.provinceid) + getCityName(selectedRow.cityid) + getDistrictName(selectedRow.districtid) }}</span>
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item label="详细地址">
+              <span class="white">{{ formatValue(selectedRow.address) }}</span>
+            </a-form-item>
+          </a-col>
+        </a-row>
+      </template>
     </a-form>
   </a-modal>
 </template>
@@ -84,6 +88,7 @@ import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo
 import { getSelectedAccountId } from '@/services/bus/account';
 import { WarehouseStateChangeReq } from '@/services/proto/warehouse/interface';
 import { warehouseStateChangeReq } from '@/services/proto/warehouse';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'warehouse_info_btn_disable',
@@ -130,6 +135,7 @@ export default defineComponent({
             gerWareHouseStatusName,
             getWareHouseTypeName,
             formatValue,
+            isPingAnOem,
         };
     },
 });

+ 31 - 25
src/views/information/warehouse-info/compoments/recover/index.vue

@@ -29,7 +29,7 @@
         </a-col>
         <a-col :span="12">
           <a-form-item label="仓库名称">
-            <span class="white">{{ formatValue(selectedRow.warehousename) }}</span>
+            <span class="white">{{ formatValue(selectedRow.warehousename)}}</span>
           </a-form-item>
         </a-col>
       </a-row>
@@ -40,35 +40,39 @@
           </a-form-item>
         </a-col>
         <a-col :span="12">
-          <a-form-item label="联系人">
-            <span class="white">{{ formatValue(selectedRow.contactname) }}</span>
-          </a-form-item>
-        </a-col>
-      </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="联系电话">
-            <span class="white">{{ formatValue(selectedRow.contactnum) }}</span>
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
           <a-form-item label="状态">
             <span class="white">{{ gerWareHouseStatusName(selectedRow.warehousestatus) }}</span>
           </a-form-item>
         </a-col>
+
       </a-row>
-      <a-row :gutter="24">
-        <a-col :span="12">
-          <a-form-item label="所在地区">
-            <span class="white">{{ formatValue(selectedRow.address) }}</span>
-          </a-form-item>
-        </a-col>
-        <a-col :span="12">
-          <a-form-item label="详细地址">
-            <span class="white">{{ formatValue(selectedRow.address) }}</span>
-          </a-form-item>
-        </a-col>
-      </a-row>
+      <template v-if="!isPingAnOem()">
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item label="联系电话">
+              <span class="white">{{ formatValue(selectedRow.contactnum) }}</span>
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item label="联系人">
+              <span class="white">{{ formatValue(selectedRow.contactname) }}</span>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item label="所在地区">
+              <span
+                    class="white">{{ getProvinceName(selectedRow.provinceid) + getCityName(selectedRow.cityid) + getDistrictName(selectedRow.districtid) }}</span>
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item label="详细地址">
+              <span class="white">{{ formatValue(selectedRow.address) }}</span>
+            </a-form-item>
+          </a-col>
+        </a-row>
+      </template>
     </a-form>
   </a-modal>
 </template>
@@ -84,6 +88,7 @@ import { getSelectedAccountId } from '@/services/bus/account';
 import { WarehouseStateChangeReq } from '@/services/proto/warehouse/interface';
 import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
 import { warehouseStateChangeReq } from '@/services/proto/warehouse';
+import { isPingAnOem } from '@/common/config/projectName';
 
 export default defineComponent({
     name: 'warehouse_info_btn_recover',
@@ -130,6 +135,7 @@ export default defineComponent({
             gerWareHouseStatusName,
             getWareHouseTypeName,
             formatValue,
+            isPingAnOem,
         };
     },
 });

+ 99 - 71
src/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/components/post-buying/index.vue

@@ -97,7 +97,7 @@
             </a-col>
             <a-col :span="24">
               <a-form-item label="履约保证金">
-                <span class="white ml8">55555</span>
+                <span class="white ml8">{{getMargin()}}</span>
               </a-form-item>
             </a-col>
             <a-col :span="24">
@@ -156,6 +156,7 @@ import { getCanUseMoney } from '@/services/bus/account';
 import { TempWrOrderQuoteDetail } from '@/views/market/spot_trade/components/post_buying/interface';
 import Friend from './friend.vue';
 import Permance from './permancePlanTmp.vue';
+import { message } from 'ant-design-vue';
 
 export default defineComponent({
     emits: ['cancel', 'update'],
@@ -181,86 +182,112 @@ export default defineComponent({
             formState.accountid = accountList[0].accountid;
         }
         //
-        const priceCheck = ref<boolean>(false);
-        const numCheck = ref<boolean>(false);
+        const priceCheck = ref<boolean>(false); // 是否可议价
+        const numCheck = ref<boolean>(false); // 是否整单
+        const friendCheck = ref<boolean>(false); // 是否不限好友
         function getSelectedAccount() {
             return accountList.find((e) => e.accountid === formState.accountid);
         }
         // 挂牌金额
         function getMoney() {
             let result = 0;
-            if (formState.FixedPrice && formState.OrderQty) {
-                result = formState.FixedPrice * formState.OrderQty;
+            const { FixedPrice, OrderQty } = formState;
+            if (FixedPrice && OrderQty) {
+                result = FixedPrice * OrderQty;
+            }
+            return result ? result.toFixed(2) : '--';
+        }
+        // 履约保证金
+        function getMargin() {
+            let result = 0;
+            const { FixedPrice, OrderQty, margin } = formState;
+            if (FixedPrice && OrderQty && margin) {
+                result = (FixedPrice * OrderQty * margin) / 100;
             }
             return result ? result.toFixed(2) : '--';
         }
-
         function submit() {
-            // const marketInfo = getMarketRunByTradeMode(17);
-            // if (marketInfo) {
-            //     validateAction<FormParam>(formRef, formState).then((res) => {
-            //         // 现在增加一种挂牌求购的情况
-            //         // 这种求购模式会生成一种仓单贸易商品
-            //         const wrGoodsInfo: WRGoodsInfo = {
-            //             GoodsID: props.selectedRow.goodsid, // uint32 配置商品ID
-            //             GoodsCode: props.selectedRow.goodscode, // string 配置商品代码
-            //             PriceFactor: 1, // double 商品价格系数
-            //             PriceMove: 0, // double 商品升贴水值
-            //             WeightRatio: 1, // double 商品重量系数
-            //         };
-            //         const param = {
-            //             AccountID: res.accountid, // 默认内部资金账号第一个
-            //             ClientSerialNo: uuidv4(), // 客户端流水号
-            //             // OperateSrc: 2,
-            //             ClientType: 4,
-            //             // MarketID: marketInfo.marketid,
-            //             LadingBillId: 0, // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
-            //             // LadingBillId: 'uint642081626946446000001', // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
-            //             TradeDate: moment(marketInfo.tradedate).format('YYYYMMDD'), // 交易日 string
-            //             // SubNum: '0', // 提单子单号
-            //             SubNum: 0,
-            //             // WRFactorTypeId: '2121626946446000001', // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
-            //             WRFactorTypeId: props.selectedRow.wrfactortypeid ? props.selectedRow.wrfactortypeid : 0, // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
-            //             IsSpecified: 0, // 是否指定对手 0:不指定 1:指定 uint32
-            //             // MatchUserIDs: 0, // 仓单贸易对手资金账号ID集合(指定对手时填写) uint32
-            //             OrderQty: res.OrderQty, // 委托数量(可挂部分数据量) ======
-            //             DeliveryGoodsID: props.selectedRow.deliverygoodsid, // 交割商品商品ID  // 有仓单求购
-            //             WRPriceType: isFloat() ? 2 : 1, // 价格方式 1:固定价 2:浮动价
-            //             FixedPrice: res.FixedPrice, // 固定价格
-            //             PriceFactor: 1, // 价格系数(浮动价时填写)
-            //             PriceMove: res.PriceMove, // 升贴水(浮动价时填写)
-            //             TimevalidType: 4, // 时间有效类型 1:当日有效 2:本周有效 3:指定时间有效 4:一直有效
-            //             // ValidTime: moment('2021-08-25 00:00:00').format('YYYY-MM-DD HH:mm:ss'), // 有效期限
-            //             ClientOrderTime: moment().format('YYYY-MM-DD HH:mm:ss'),
-            //             FirstRatio: 0, // 首付比例
-            //             PerformanceTemplateID: 0, // 履约计划模板ID
-            //             UserID: getUserId(),
-            //             OperatorID: getUserId(), // 操作员账号ID
-            //             BuyOrSell: 0, // 买卖方向 0买1卖
-            //             PriceDisplayMode: 1, // 浮动价显示方式 1:合并显示 2:分开显示
-            //             CanBargain: 0, // 挂牌是否可议价0:不可1:可-摘牌是否议价
-            //             Attachment1: '', // 附件1
-            //             Attachment2: '', // 附件2
-            //             Remark: '', // 备注
-            //             ApplyID: 0, // 申请ID
-            //             WRTradeGoods: isFloat() ? [wrGoodsInfo] : [],
-            //             CanPart: 1, // 是否允许部份摘牌0:不允许;1:允许
-            //             WRStandardID: props.selectedRow.wrstandardid,
-            //             HasWr: isWR(), // 无仓单挂牌  是否有无仓单
-            //             DeliveryMonth: isWR() ? '' : moment(res.DeliveryMonth).format('YYYY-MM'),
-            //             FactoryItems: props.selectedRow.wrResult != undefined ? props.selectedRow.wrResult.flatMap((it) => {
-            //                 return {
-            //                     DGFactoryItemTypeID: it.dgfactoryitemtypeid, // uint64 要素项类型ID
-            //                     DGFactoryItemID: it.dgfactoryitemid, // uint64 预约要素项类型值
-            //                     ItemTypeMode: 1, // uint32 要素项类型模式
-            //                 };
-            //             }): [], // DGFactoryItems 要素类型明细集合(没有仓单要素ID填写)
-            //         };
-            //         requestResultLoadingAndInfo(hdWROrder, param, loading, ['求购成功', '求购失败:']).then(() => {
-            //             cancel(true);
-            //         });
-            //     });
-            // }
+            if (!selectedPermance) {
+                message.error('请选择履约模板');
+                return;
+            }
+            if (!frineds) {
+                message.error('请选择朋友');
+                return;
+            }
+            const marketInfo = getMarketRunByTradeMode(17);
+            if (marketInfo) {
+                validateAction<FormParam>(formRef, formState).then((res) => {
+                    // 现在增加一种挂牌求购的情况
+                    // 这种求购模式会生成一种仓单贸易商品
+                    const wrGoodsInfo: WRGoodsInfo = {
+                        GoodsID: props.selectedRow.goodsid, // uint32 配置商品ID
+                        GoodsCode: props.selectedRow.goodscode, // string 配置商品代码
+                        PriceFactor: 1, // double 商品价格系数
+                        PriceMove: 0, // double 商品升贴水值
+                        WeightRatio: 1, // double 商品重量系数
+                    };
+                    const param = {
+                        AccountID: res.accountid, // 默认内部资金账号第一个
+                        ClientSerialNo: uuidv4(), // 客户端流水号
+                        // OperateSrc: 2,
+                        ClientType: 4,
+                        // MarketID: marketInfo.marketid,
+                        LadingBillId: 0, // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
+                        // LadingBillId: 'uint642081626946446000001', // 提单id(wrholdlb的LadingBillId字段),卖的时候填写 uint64
+                        TradeDate: moment(marketInfo.tradedate).format('YYYYMMDD'), // 交易日 string
+                        // SubNum: '0', // 提单子单号
+                        SubNum: 0,
+                        // WRFactorTypeId: '2121626946446000001', // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
+                        WRFactorTypeId: props.selectedRow.wrfactortypeid ? props.selectedRow.wrfactortypeid : 0, // 仓单要素ID(wrholdlb的WRFactorTypeId字段),卖的时候填写 uint64
+                        IsSpecified: 1, // 是否指定对手 0:不指定 1:指定 uint32
+                        MatchUserIDs: frineds.value, // 仓单贸易对手资金账号ID集合(指定对手时填写) uint32
+                        OrderQty: res.OrderQty, // 委托数量(可挂部分数据量) ======
+                        DeliveryGoodsID: props.selectedRow.deliverygoodsid, // 交割商品商品ID  // 有仓单求购
+                        WRPriceType: 1, // 价格方式 1:固定价 2:浮动价
+                        FixedPrice: res.FixedPrice, // 固定价格
+                        PriceFactor: 1, // 价格系数(浮动价时填写)
+                        PriceMove: 0, // 升贴水(浮动价时填写)
+                        TimevalidType: 4, // 时间有效类型 1:当日有效 2:本周有效 3:指定时间有效 4:一直有效
+                        ValidTime: moment(formState.vidaliteTime).format('YYYY-MM-DD HH:mm:ss'), // 有效期限
+                        ClientOrderTime: moment().format('YYYY-MM-DD HH:mm:ss'),
+                        FirstRatio: 0, // 首付比例
+                        PerformanceTemplateID: selectedPermance.value?.autoid, // 履约计划模板ID
+                        UserID: getUserId(),
+                        OperatorID: getUserId(), // 操作员账号ID
+                        BuyOrSell: 0, // 买卖方向 0买1卖
+                        PriceDisplayMode: 1, // 浮动价显示方式 1:合并显示 2:分开显示
+                        CanBargain: 0, // 挂牌是否可议价0:不可1:可-摘牌是否议价
+                        Attachment1: '', // 附件1
+                        Attachment2: '', // 附件2
+                        Remark: '', // 备注
+                        ApplyID: 0, // 申请ID
+                        WRTradeGoods: [],
+                        CanPart: numCheck.value ? 0 : 1, // 是否允许部份摘牌0:不允许;1:允许
+                        WRStandardID: props.selectedRow.wrstandardid,
+                        HasWr: 1, // 无仓单挂牌  是否有无仓单
+                        DeliveryMonth: '',
+                        DelistMinQty: numCheck.value ? formState.delistingQty : 0, // 起摘数量
+                        MarginFlag: 1, // 挂牌是否指定保证金 0:否 1:是
+                        MarginAlgorithm: 1, // 指定保证金方式 1:比率 2:固定
+                        MarginValue: formState.margin, // 指定保证金设置值
+                        AllFriendsFlag: friendCheck.value ? 1 : 0, //是否全好友可见 0:否 1:是
+                        FactoryItems:
+                            props.selectedRow.wrResult != undefined
+                                ? props.selectedRow.wrResult.map((it) => {
+                                      return {
+                                          DGFactoryItemTypeID: it.dgfactoryitemtypeid, // uint64 要素项类型ID
+                                          DGFactoryItemID: it.dgfactoryitemid, // uint64 预约要素项类型值
+                                          ItemTypeMode: 1, // uint32 要素项类型模式
+                                      };
+                                  })
+                                : [], // DGFactoryItems 要素类型明细集合(没有仓单要素ID填写)
+                    };
+                    requestResultLoadingAndInfo(hdWROrder, param, loading, ['求购成功', '求购失败:']).then(() => {
+                        cancel(true);
+                    });
+                });
+            }
         }
         return {
             submit,
@@ -287,6 +314,7 @@ export default defineComponent({
             numCheck,
 
             getMoney,
+            getMargin,
         };
     },
 });

+ 3 - 3
src/views/market/spot_trade/warehouse_receipt_trade/warehouse_receipt_trade_blocs/components/post-buying/setup.ts

@@ -24,15 +24,15 @@ export function handleForm() {
         FixedPrice: [{ required: true, message: '请输入挂牌价格', trigger: 'blur', type: 'number', }],
         OrderQty: [
             { required: true, message: '请输入挂牌数量', trigger: 'blur', type: 'number' },
-            { min: 1, message: '挂牌挂牌数量不能小于1', }
+            { min: 1, message: '挂牌挂牌数量不能小于1', type: 'number' }
         ],
         delistingQty: [
             { required: true, message: '请输入起摘数量', trigger: 'blur', type: 'number' },
-            { min: 1, message: '起摘数量不能小于1', }
+            { min: 1, message: '起摘数量不能小于1', type: 'number' }
         ],
         margin: [
             { required: true, message: '请输入履约保证金', trigger: 'blur', type: 'number' },
-            { validator: validateMargin, trigger: 'blur' }
+            { validator: validateMargin, trigger: 'blur', type: 'number' }
         ],
         accountid: [{ required: true, message: '请输入交易账号' }],
     }

+ 2 - 2
src/views/ping_an/risk_parameter_settings/index.vue

@@ -12,11 +12,11 @@ import { IfameRouteParam } from '@/common/setup/iframe/interface';
 import { handleIfameRouter } from '@/common/setup/iframe';
 
 export default defineComponent({
-    name: 'risk_parameter_settings',
+    name: 'risk_parameter_settings_sub',
     components: {},
     setup() {
         const param: IfameRouteParam = {
-            code: 'risk_parameter_settings',
+            code: 'risk_parameter_settings_sub',
             btnCodeList: [
                 //  权限按钮 info(详情):add(新增):edit(修改):del(停用启用)
                 { btnCode: 'risk_parameter_settings_add', urlCode: 'add' },

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.