li.shaoyi 1 年之前
父節點
當前提交
b2e78237d1

+ 1 - 1
app/package.json

@@ -1,6 +1,6 @@
 {
   "name": "trading",
-  "version": "1.0.4",
+  "version": "1.0.2",
   "main": "main.js",
   "dependencies": {
     "electron-updater": "^6.1.4",

+ 2 - 2
oem/gcszt/config/appconfig.json

@@ -1,8 +1,8 @@
 {
   "appId": "com.muchinfo.gcszt",
   "appName": "贵茶数字通",
-  "version": "1.0.11",
-  "versionCode": "100011",
+  "version": "1.0.12",
+  "versionCode": "100012",
   "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204",
   "tradeChannel": "ws",
   "modules": [

+ 3 - 3
oem/gcszt/manifest.json

@@ -5,9 +5,9 @@
     "name" : "贵茶数字通",
     /*应用名称,程序桌面图标名称*/
     "version" : {
-        "name" : "1.0.1",
+        "name" : "1.0.12",
         /*应用版本名称*/
-        "code" : 100001
+        "code" : 100012
     },
     "description" : "",
     /*应用描述信息*/
@@ -153,7 +153,7 @@
                     "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
                     "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>"
                 ],
-                "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ],
+                "abiFilters" : [ "arm64-v8a" ],
                 "autoSdkPermissions" : false,
                 "minSdkVersion" : 26
             },

+ 2 - 2
oem/gzcj/config/appconfig.json

@@ -1,8 +1,8 @@
 {
   "appId": "com.muchinfo.gzcj",
   "appName": "贵州茶交",
-  "version": "1.0.1",
-  "versionCode": "100001",
+  "version": "1.0.2",
+  "versionCode": "100002",
   "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204",
   "tradeChannel": "ws",
   "modules": [

+ 3 - 3
oem/gzcj/manifest.json

@@ -5,9 +5,9 @@
     "name" : "贵州茶交",
     /*应用名称,程序桌面图标名称*/
     "version" : {
-        "name" : "1.0.0",
+        "name" : "1.0.2",
         /*应用版本名称*/
-        "code" : 100000
+        "code" : 100002
     },
     "description" : "",
     /*应用描述信息*/
@@ -153,7 +153,7 @@
                     "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
                     "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>"
                 ],
-                "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ],
+                "abiFilters" : [ "arm64-v8a" ],
                 "autoSdkPermissions" : false,
                 "minSdkVersion" : 26
             },

+ 3 - 2
oem/thj/config/appconfig.json

@@ -1,8 +1,8 @@
 {
   "appId": "com.muchinfo.thj",
   "appName": "铁合金掌上行",
-  "version": "1.0.4",
-  "versionCode": "100004",
+  "version": "1.0.5",
+  "versionCode": "100005",
   "apiUrl": "http://192.168.31.167:8080/cfg?key=test_167",
   "tradeChannel": "ws",
   "modules": [
@@ -12,5 +12,6 @@
   "quotationPropertys": [
     "totalvolume"
   ],
+  "registrationCodeRule": 0,
   "slogan": "铁合金供应链\r\n交易服务平台"
 }

+ 9 - 8
src/hooks/menu/index.ts

@@ -13,7 +13,7 @@ export function useMenu(authCode?: string) {
     const componentMap = new Map<string, Component>()
 
     // 过滤菜单
-    const filterMenu = (data: Model.UserRoutes[], parentPath = '') => {
+    const filterMenus = (data: Model.UserRoutes[], parentPath = '') => {
         const result: Model.UserRoutes[] = []
         data.forEach((e) => {
             if (!e.hidden && e.authType === AuthType.Menu) {
@@ -21,7 +21,7 @@ export function useMenu(authCode?: string) {
                 result.push({
                     ...e,
                     url: routePath,
-                    children: e.children ? filterMenu(e.children, routePath) : [],
+                    children: e.children ? filterMenus(e.children, routePath) : [],
                 })
             }
         })
@@ -46,11 +46,11 @@ export function useMenu(authCode?: string) {
     }
 
     /**
-     * 获取路由菜单(无限级)
+     * 获取用户菜单(无限级)
      * @param level 
      * @returns 
      */
-    const getMenus = (level = 0) => {
+    const getUserMenus = (level = 0) => {
         // 过滤层级
         const filterLevel = (data: Model.UserRoutes[], n: number): Model.UserRoutes[] => {
             if (level) {
@@ -58,7 +58,7 @@ export function useMenu(authCode?: string) {
             }
             return data
         }
-        return filterMenu(filterLevel(userRoutes.value, level))
+        return filterMenus(filterLevel(userRoutes.value, level))
     }
 
     /**
@@ -68,7 +68,7 @@ export function useMenu(authCode?: string) {
     */
     const getChildrenMenus = (code?: string) => {
         const children = findChildren(userRoutes.value, code)
-        return filterMenu(children)
+        return filterMenus(children)
     }
 
     /**
@@ -76,6 +76,7 @@ export function useMenu(authCode?: string) {
      * @returns 
      */
     const getHomeUrl = () => {
+        const menus = getUserMenus()
         const findNode = (tree: Model.UserRoutes[]): string => {
             for (const node of tree) {
                 if (node.children?.length) {
@@ -87,7 +88,7 @@ export function useMenu(authCode?: string) {
             }
             return '/404'
         }
-        return findNode(getMenus())
+        return findNode(menus)
     }
 
     /**
@@ -153,7 +154,7 @@ export function useMenu(authCode?: string) {
         router,
         userRoutes,
         componentMap,
-        getMenus,
+        getUserMenus,
         getHomeUrl,
         getChildrenMenus,
         getAuthButtons,

+ 41 - 36
src/hooks/menu/index@next.ts

@@ -12,45 +12,49 @@ export function useMenu(authCode?: string) {
     const router = useRouter()
     const componentMap = new Map<string, Component>()
 
-    // 过滤菜单
-    const filterMenu = (data: Model.UserRoutes[], parentPath = '') => {
-        const result: Model.UserRoutes[] = []
-        data.forEach((e) => {
-            if (!e.hidden && e.authType === AuthType.Menu) {
-                const routePath = (parentPath ? parentPath + '/' : '') + e.url
-                result.push({
-                    ...e,
+    /**
+     * 过滤菜单
+     * @returns 
+     */
+    const filterMenus = (data: Model.UserRoutes[], parentPath = '') => {
+        return data.reduce<Model.UserRoutes[]>((pre, cur) => {
+            if (!cur.hidden && cur.authType === AuthType.Menu) {
+                const routePath = (parentPath ? parentPath + '/' : '') + cur.url
+                pre.push({
+                    ...cur,
                     url: routePath,
-                    children: e.children ? filterMenu(e.children, routePath) : [],
+                    children: cur.children ? filterMenus(cur.children, routePath) : [],
                 })
             }
-        })
-        return result
+            return pre
+        }, [])
     }
 
     /**
-     * 根据 code 查找对应的子菜单
+     * 根据 code 查找对应的子路由
      * @returns 
      */
-    const findChildren = (data: Model.UserRoutes[], code?: string): Model.UserRoutes[] => {
-        const routeName = code ?? route.name?.toString()
-        for (const item of data) {
-            const { code, children } = item
-            if (code === routeName) return children ?? []
-            if (children) {
-                const res = findChildren(children, routeName)
-                if (res.length) return res
+    const filterChildrenRoutes = (routeName?: string) => {
+        const findChildren = (data: Model.UserRoutes[]): Model.UserRoutes[] => {
+            for (const item of data) {
+                const { code, children } = item
+                if (code === routeName) return children ?? []
+                if (children) {
+                    const res = findChildren(children)
+                    if (res.length) return res
+                }
             }
+            return []
         }
-        return []
+        return findChildren(userRoutes.value)
     }
 
     /**
-     * 获取路由菜单(无限级)
+     * 获取用户菜单(无限级)
      * @param level 
      * @returns 
      */
-    const getMenus = (level = 0) => {
+    const getUserMenus = (level = 0) => {
         // 过滤层级
         const filterLevel = (data: Model.UserRoutes[], n: number): Model.UserRoutes[] => {
             if (level) {
@@ -58,17 +62,17 @@ export function useMenu(authCode?: string) {
             }
             return data
         }
-        return filterMenu(filterLevel(userRoutes.value, level))
+        return filterMenus(filterLevel(userRoutes.value, level))
     }
 
     /**
-    * 获取路由子菜单
-    * @param code 
-    * @returns 
-    */
-    const getChildrenMenus = (code?: string) => {
-        const children = findChildren(userRoutes.value, code)
-        return filterMenu(children)
+     * 获取路由子菜单
+     * @param routeName 
+     * @returns 
+     */
+    const getChildrenMenus = (routeName: string) => {
+        const children = filterChildrenRoutes(routeName)
+        return filterMenus(children)
     }
 
     /**
@@ -76,8 +80,9 @@ export function useMenu(authCode?: string) {
      * @returns 
      */
     const getHomeUrl = () => {
-        const findNode = (tree: Model.UserRoutes[]): string => {
-            for (const node of tree) {
+        const menus = getUserMenus()
+        const findNode = (data: Model.UserRoutes[]): string => {
+            for (const node of data) {
                 if (node.children?.length) {
                     const res = findNode(node.children)
                     if (res) return res
@@ -87,7 +92,7 @@ export function useMenu(authCode?: string) {
             }
             return '/404'
         }
-        return findNode(getMenus())
+        return findNode(menus)
     }
 
     /**
@@ -95,7 +100,7 @@ export function useMenu(authCode?: string) {
      * @returns 
      */
     const getAuth = (authType: AuthType) => {
-        const children = findChildren(userRoutes.value, authCode)
+        const children = filterChildrenRoutes(authCode)
         return children.reduce<Model.UserRoutes[]>((res, cur) => {
             if (!cur.hidden && cur.authType === authType) {
                 if (!componentMap.get(cur.code) && cur.component) {
@@ -153,7 +158,7 @@ export function useMenu(authCode?: string) {
         router,
         userRoutes,
         componentMap,
-        getMenus,
+        getUserMenus,
         getHomeUrl,
         getChildrenMenus,
         getAuthButtons,

+ 15 - 7
src/packages/mobile/views/user/register/Index.vue

@@ -5,9 +5,9 @@
     </template>
     <Form ref="formRef" class="g-form__container register__form" @submit="formSubmit">
       <CellGroup inset>
-        <Field v-model="formData.mobilephone" type="tel" name="mobilephone" label="手机号码" placeholder="请输入"
+        <Field v-model="formData.mobilephone" type="tel" name="mobilephone" label="手机号码" placeholder="必填"
           :rules="formRules.mobilephone" />
-        <Field v-model="formData.vcode" type="digit" name="vcode" label="短信验证码" placeholder="请输入"
+        <Field v-model="formData.vcode" type="digit" name="vcode" label="短信验证码" placeholder="必填"
           :rules="formRules.vcode">
           <template #button>
             <Button size="small" type="danger" :disabled="isCountdown" @click="sendVerifyCode">
@@ -18,11 +18,12 @@
         </Field>
       </CellGroup>
       <CellGroup inset>
-        <Field v-model="formData.loginpwd" name="loginpwd" type="password" label="登录密码" placeholder="请输入"
+        <Field v-model="formData.loginpwd" name="loginpwd" type="password" label="登录密码" placeholder="必填"
           :rules="formRules.loginpwd" />
-        <Field v-model="confirmpassword" name="confirmpassword" type="password" label="确认密码" placeholder="请输入"
+        <Field v-model="confirmpassword" name="confirmpassword" type="password" label="确认密码" placeholder="必填"
           :rules="formRules.confirmpassword" />
-        <Field v-model="formData.refernum" name="refernum" label="注册编码" placeholder="请输入" :rules="formRules.refernum">
+        <Field v-model="formData.refernum" name="refernum" label="注册编码" :placeholder="registrationCodeRule ? '必填' : '选填'"
+          :rules="formRules.refernum" v-if="registrationCodeRule > -1">
           <!-- <template #button>
             <app-qrcode-scan @success="onScanSuccess">
               <Button size="small" type="danger">扫码</Button>
@@ -59,12 +60,15 @@ import { fullloading, dialog } from '@/utils/vant'
 import { validateRules } from '@/constants/regex'
 import { useNavigation } from '@mobile/router/navigation'
 import { userRegister, sendRegisterVerifyCode, queryMyRegisterMoney } from '@/services/api/common'
+import { useGlobalStore } from '@/stores'
 import cryptojs from 'crypto-js'
 import plus from '@/utils/h5plus'
 import AppReward from '@mobile/components/modules/reward/index.vue'
 // import AppQrcodeScan from '@mobile/components/base/qrcode-scan/index.vue'
 
 const { router, routerTo } = useNavigation()
+const globalStore = useGlobalStore()
+const registrationCodeRule = globalStore.getSystemInfo('registrationCodeRule')
 const formRef = ref<FormInstance>()
 const checked = ref(false) // 是否同意注册条款
 const isCountdown = ref(false) // 是否正在倒计时
@@ -135,8 +139,12 @@ const formRules: { [key: string]: FieldRule[] } = {
     message: '请输入短信验证码',
   }],
   refernum: [{
-    required: true,
-    message: '请输入注册编码',
+    validator: (val) => {
+      if (!registrationCodeRule || val) {
+        return true
+      }
+      return '请输入注册编码'
+    }
   }],
 }
 

+ 2 - 2
src/packages/pc/components/layouts/sidemenu/index.vue

@@ -9,9 +9,9 @@ import { computed } from 'vue'
 import { useMenu } from '@/hooks/menu'
 import AppSubmenu from './submenu.vue'
 
-const { route, getMenus } = useMenu()
+const { route, getUserMenus } = useMenu()
 const level = 2 // 菜单层级
-const menus = getMenus(level) // 如果是无限级菜单,activeMenu 应该直接返回 route.name
+const menus = getUserMenus(level) // 如果是无限级菜单,activeMenu 应该直接返回 route.name
 
 // 高亮菜单
 const activeMenu = computed(() => {

+ 64 - 0
src/packages/sbyj/views/order/history/components/detail/index.vue

@@ -0,0 +1,64 @@
+<!-- 水贝亿爵 - 全部订单 - 详情 -->
+<template>
+    <app-modal direction="right-top" height="100%" width="100%" v-model:show="showModal">
+        <app-view class="g-form">
+            <template #header>
+                <app-navbar title="订单详情" @back="closed" />
+            </template>
+            <div class="order-detail__container g-form__container">
+                <CellGroup inset>
+                    <Cell :title="selectedRow.buyorsell === BuyOrSell.Buy ? '买料订单' : '卖料订单'"
+                        :value="selectedRow.tradeid" />
+                    <Cell title="商品代码/名称" :value="selectedRow.goodscode + '/' + selectedRow.goodsname" />
+                    <Cell title="订单重量"
+                        :value="(selectedRow.openqty * selectedRow.agreeunit) + getGoodsUnitName(selectedRow.goodunitid)" />
+                    <Cell title="可用量" :value="enableqty(selectedRow) + getGoodsUnitName(selectedRow.goodunitid)" />
+                    <Cell title="订单价格" :value="selectedRow.openprice" />
+                    <Cell title="已付定金" :value="selectedRow.payeddeposit" />
+                    <Cell title="终止结余" :value="selectedRow.closepl" />
+                    <Cell title="已补定金" :value="selectedRow.restockdeposit" />
+                    <Cell title="订单天数" :value="selectedRow.holddays" />
+                    <Cell title="滞纳金" :value="selectedRow.callatefee" />
+                    <Cell title="交易时间" :value="selectedRow.tradetime" />
+                </CellGroup>
+            </div>
+        </app-view>
+    </app-modal>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, PropType } from 'vue'
+import { CellGroup, Cell } from 'vant'
+import { BuyOrSell } from '@/constants/order'
+import AppModal from '@/components/base/modal/index.vue'
+import { getGoodsUnitName } from '@/constants/unit'
+
+const props = defineProps({
+    selectedRow: {
+        type: Object as PropType<Model.TradeHolderDetailExRsp>,
+        required: true,
+    }
+})
+
+const showModal = shallowRef(true)
+
+// 获取标签名称
+const getTagName = () => {
+    return props.selectedRow.buyorsell === BuyOrSell.Buy ? '提料' : '交料'
+}
+
+// 可用重量
+const enableqty = (item: Model.TradeHolderDetailExRsp) => {
+    return (item.holderqty - item.freezeqty) * item.agreeunit
+}
+
+// 关闭弹窗
+const closed = () => {
+    showModal.value = false
+}
+
+// 暴露组件属性给父组件调用
+defineExpose({
+    closed,
+})
+</script>

+ 36 - 13
src/packages/sbyj/views/order/history/index.vue

@@ -3,8 +3,8 @@
         <template #header>
             <app-navbar title="全部订单" />
         </template>
-        <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" v-model:pageIndex="pageIndex"
-            :page-count="pageCount" @refresh="run">
+        <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error"
+            v-model:pageIndex="pageIndex" :page-count="pageCount" @refresh="run">
             <div class="g-order-list">
                 <div class="g-order-list__box" v-for="(item, index) in dataList" :key="index">
                     <div class="g-order-list__titlebar">
@@ -25,6 +25,11 @@
                                 </span>
                             </li>
                             <li>
+                                <span>交收重量</span>
+                                <span>{{ (item.deliveryqty * item.agreeunit) + getGoodsUnitName(item.goodunitid)
+                                    }}</span>
+                            </li>
+                            <li>
                                 <span>可用重量</span>
                                 <span>
                                     {{ enableqty(item) + getGoodsUnitName(item.goodunitid) }}
@@ -38,18 +43,17 @@
                                 <span>订单价格</span>
                                 <span>{{ formatDecimal(item.openprice) }}</span>
                             </li>
-                            
                             <li>
                                 <span>已付定金</span>
                                 <span>{{ item.payeddeposit }}</span>
                             </li>
                             <li>
-                                <span>浮动权益</span>
-                                <span :class="handlePriceColor(item.floatpl)">{{ item.floatpl }}</span>
+                                <span>终止结余</span>
+                                <span :class="handlePriceColor(item.closepl)">{{ item.closepl }}</span>
                             </li>
                             <li>
                                 <span>已补定金</span>
-                                <span>{{ handleNumberValue(item.restockdeposit) }}</span>
+                                <span>{{ item.restockdeposit }}</span>
                             </li>
                             <li>
                                 <span>订单天数</span>
@@ -57,32 +61,41 @@
                             </li>
                             <li>
                                 <span>滞纳金</span>
-                                <span>{{ handleNumberValue(item.callatefee) }}</span>
+                                <span>{{ item.callatefee }}</span>
                             </li>
                         </ul>
                     </div>
+                    <div class="g-order-list__btnbar">
+                        <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
+                    </div>
                 </div>
             </div>
         </app-pull-refresh>
+        <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)"
+            @closed="closeComponent" v-if="componentId" />
     </app-view>
 </template>
 
 <script lang="ts" setup>
-import { shallowRef } from 'vue'
-import { formatDecimal, handleNumberValue, handlePriceColor } from '@/filters'
+import { shallowRef, defineAsyncComponent } from 'vue'
+import { Button } from 'vant'
+import { formatDecimal,  handlePriceColor } from '@/filters'
 import { BuyOrSell } from '@/constants/order'
 import { getGoodsUnitName } from '@/constants/unit'
+import { useComponent } from '@/hooks/component'
 import { useRequest } from '@/hooks/request'
 import { queryTradeHolderDetailEx } from '@/services/api/order'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
 
+const componentMap = new Map<string, unknown>([
+    ['detail', defineAsyncComponent(() => import('./components/detail/index.vue'))], // 详情
+])
+
 const error = shallowRef(false)
 const dataList = shallowRef<Model.TradeHolderDetailExRsp[]>([])
+const selectedRow = shallowRef<Model.TradeHolderDetailExRsp>()
 
-// 可用重量
-const enableqty = (item: Model.TradeHolderDetailExRsp) => {
-    return (item.holderqty - item.freezeqty) * item.agreeunit
-}
+const { componentRef, componentId, openComponent, closeComponent } = useComponent()
 
 const { loading, pageIndex, pageCount, run } = useRequest(queryTradeHolderDetailEx, {
     params: {
@@ -98,4 +111,14 @@ const { loading, pageIndex, pageCount, run } = useRequest(queryTradeHolderDetail
         error.value = true
     }
 })
+
+// 可用重量
+const enableqty = (item: Model.TradeHolderDetailExRsp) => {
+    return (item.holderqty - item.freezeqty) * item.agreeunit
+}
+
+const showComponent = (componentName: string, row: Model.TradeHolderDetailExRsp) => {
+    selectedRow.value = row
+    openComponent(componentName)
+}
 </script>

+ 0 - 0
src/packages/sbyj/views/order/detail/index.vue → src/packages/sbyj/views/order/list/components/detail/index.vue


+ 10 - 8
src/packages/sbyj/views/order/list/index.vue

@@ -9,7 +9,8 @@
                 </template>
             </app-navbar>
         </template>
-        <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error" @refresh="getSBYJMyOrders">
+        <app-pull-refresh ref="pullRefreshRef" v-model:loading="loading" v-model:error="error"
+            @refresh="getSBYJMyOrders">
             <div class="g-order-list">
                 <div class="g-order-list__box" v-for="(item, index) in orderComputedList" :key="index">
                     <div class="g-order-list__titlebar">
@@ -57,7 +58,7 @@
                             </li>
                             <li>
                                 <span>已补定金</span>
-                                <span>{{ handleNumberValue(item.tHDetailEx.restockDeposit) }}</span>
+                                <span>{{ item.tHDetailEx.restockDeposit }}</span>
                             </li>
                             <li>
                                 <span>订单天数</span>
@@ -65,7 +66,7 @@
                             </li>
                             <li>
                                 <span>滞纳金</span>
-                                <span>{{ handleNumberValue(item.tHDetailEx.callAteFee) }}</span>
+                                <span>{{ item.tHDetailEx.callAteFee }}</span>
                             </li>
                         </ul>
                     </div>
@@ -73,7 +74,8 @@
                         <Button size="small" @click="showComponent('supplement', item)" round
                             v-if="item.tHDetailEx.holderQty">补充</Button>
                         <template v-if="enableqty(item)">
-                            <Button size="small" @click="showComponent('delivery', item)" round>{{ getTagName(item.tHDetailEx.buyOrSell) }}</Button>
+                            <Button size="small" @click="showComponent('delivery', item)" round>{{
+                        getTagName(item.tHDetailEx.buyOrSell) }}</Button>
                             <Button size="small" @click="showComponent('closeholder', item)" round>终止</Button>
                         </template>
                         <Button size="small" @click="showComponent('detail', item)" round>详情</Button>
@@ -81,15 +83,15 @@
                 </div>
             </div>
         </app-pull-refresh>
-        <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)" @closed="closeComponent"
-            v-if="componentId" />
+        <component ref="componentRef" v-bind="{ selectedRow }" :is="componentMap.get(componentId)"
+            @closed="closeComponent" v-if="componentId" />
     </app-view>
 </template>
 
 <script lang="ts" setup>
 import { onMounted, shallowRef, defineAsyncComponent } from 'vue'
 import { BuyOrSell } from '@/constants/order'
-import { formatDecimal, parsePercent, handleNumberValue, handlePriceColor } from '@/filters'
+import { formatDecimal, parsePercent, handlePriceColor } from '@/filters'
 import { getGoodsUnitName } from '@/constants/unit'
 import { useComponent } from '@/hooks/component'
 import { Button } from 'vant'
@@ -97,7 +99,7 @@ import { useSBYJOrderStore } from '@/stores'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
 
 const componentMap = new Map<string, unknown>([
-    ['detail', defineAsyncComponent(() => import('../detail/index.vue'))], // 详情
+    ['detail', defineAsyncComponent(() => import('./components/detail/index.vue'))], // 详情
     ['supplement', defineAsyncComponent(() => import('./components/supplement-deposit/index.vue'))], // 补充
     ['delivery', defineAsyncComponent(() => import('./components/market-order-delivery/index.vue'))], // 交收
     ['closeholder', defineAsyncComponent(() => import('./components/close-holder/index.vue'))], // 转让

+ 3 - 1
src/stores/modules/global.ts

@@ -15,6 +15,7 @@ export interface SystemInfo {
     quotationPropertys: (keyof Model.QuoteDayRsp)[]; // 盘面可显示的属性
     forcedPasswordChange: boolean; // 首次登录是否强制修改密码
     slogan: string;
+    registrationCodeRule: -1 | 0 | 1; // 注册编码规则,-1隐藏,0非必填,1必填
 }
 
 export const useGlobalStore = defineStore(() => {
@@ -35,7 +36,8 @@ export const useGlobalStore = defineStore(() => {
             modules: [],
             quotationPropertys: [],
             forcedPasswordChange: false,
-            slogan: '数字化交易平台\r\n现代化综合服务'
+            slogan: '数字化交易平台\r\n现代化综合服务',
+            registrationCodeRule: 1
         }
     })
 

+ 1 - 1
src/types/model/account.d.ts

@@ -1,4 +1,4 @@
-import { AuthType, UrlType } from '@/constants/enum/menu'
+import { AuthType, UrlType } from '@/constants/menu'
 
 declare global {
     namespace Model {