li.shaoyi пре 2 година
родитељ
комит
063ce9dc9e
46 измењених фајлова са 116 додато и 236 уклоњено
  1. 2 2
      app/package.json
  2. 3 0
      file/android/fxgl.txt
  3. 2 2
      oem/gstj/config/appconfig.json
  4. 0 117
      oem/gstj/config/router.json
  5. 0 1
      oem/qdhs/config/router.json
  6. 2 2
      oem/tjmd/config/appconfig.json
  7. 2 2
      src/components/base/tabs/index.vue
  8. 1 1
      src/packages/mobile/views/order/position/components/goods/detail/Index.vue
  9. 5 4
      src/packages/pc/assets/themes/default/default.less
  10. 3 3
      src/packages/pc/components/base/region/index.vue
  11. 1 1
      src/packages/pc/components/base/table-filter/index.vue
  12. 1 1
      src/packages/pc/components/base/table-setting/index.vue
  13. 1 1
      src/packages/pc/components/layouts/footer/index.vue
  14. 3 3
      src/packages/pc/components/layouts/header/components/avater/index.vue
  15. 3 3
      src/packages/pc/components/layouts/header/components/modify/index.vue
  16. 2 2
      src/packages/pc/components/layouts/header/components/report/index.vue
  17. 3 3
      src/packages/pc/components/layouts/header/components/setting/index.vue
  18. 1 1
      src/packages/pc/components/layouts/header/index.vue
  19. 5 2
      src/packages/pc/components/layouts/page/index.vue
  20. 7 5
      src/packages/pc/components/modules/goods-detail/order/delisting/index.vue
  21. 1 1
      src/packages/pc/components/modules/performance/index.vue
  22. 1 1
      src/packages/pc/views/account/address/components/edit/index.vue
  23. 1 1
      src/packages/pc/views/account/sign/components/certification/index.vue
  24. 2 2
      src/packages/pc/views/account/sign/components/sign/index.vue
  25. 2 1
      src/packages/pc/views/footer/goods/detail/index.vue
  26. 1 1
      src/packages/pc/views/footer/goods/order/clear/index.vue
  27. 2 2
      src/packages/pc/views/footer/inout/out/add/index.vue
  28. 1 1
      src/packages/pc/views/footer/spot/position/components/pickup/index.vue
  29. 0 26
      src/packages/pc/views/market/trade/goods/index.vue
  30. 1 1
      src/packages/pc/views/market/trade/goods/list/listing/index.vue
  31. 40 26
      src/packages/pc/views/market/trade/index.vue
  32. 1 1
      src/packages/pc/views/market/trade/presell/transfer/listing/index.vue
  33. 3 3
      src/packages/pc/views/market/trade/spot/listing/index.vue
  34. 1 1
      src/packages/pc/views/query/capital/history/index.vue
  35. 1 1
      src/packages/pc/views/query/inoutapply/history/index.vue
  36. 1 1
      src/packages/pc/views/query/order/goods/history/index.vue
  37. 1 1
      src/packages/pc/views/query/order/presell/history/index.vue
  38. 1 1
      src/packages/pc/views/query/order/presell/transferhistory/index.vue
  39. 1 1
      src/packages/pc/views/query/order/spot/history/index.vue
  40. 1 1
      src/packages/pc/views/query/order/swap/history/index.vue
  41. 1 1
      src/packages/pc/views/query/performance/buy/all/index.vue
  42. 1 1
      src/packages/pc/views/query/performance/sell/all/index.vue
  43. 1 1
      src/packages/pc/views/query/trade/goods/history/index.vue
  44. 1 1
      src/packages/pc/views/query/trade/presell/history/index.vue
  45. 1 1
      src/packages/pc/views/query/trade/spot/history/index.vue
  46. 1 1
      src/packages/pc/views/query/trade/swap/history/index.vue

+ 2 - 2
app/package.json

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

+ 3 - 0
file/android/fxgl.txt

@@ -66,6 +66,9 @@ http://112.74.182.230:8280/cfg?key=yjhj_sp
 
 
 海南掉期市场(天津麦顿)
+模拟盘
+cn.muchinfo.tjmd_demo_v1.0.0.apk
+http://120.27.21.42:8280/cfg?key=tjmd_mnp
 实盘
 cn.muchinfo.tjmd_release_v1.0.0.apk
 http://47.104.141.54:8280/cfg?key=tjmd_sp

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

@@ -1,8 +1,8 @@
 {
   "appId": "com.muchinfo.gstj",
   "appName": "甘肃碳交",
-  "version": "1.0.19",
-  "versionCode": "100019",
+  "version": "1.0.20",
+  "versionCode": "100020",
   "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204",
   "tradeChannel": "ws",
   "modules": [

+ 0 - 117
oem/gstj/config/router.json

@@ -30,7 +30,6 @@
                                 "authType": 3,
                                 "title": "交收",
                                 "code": "bottom_goods_position_delivery16",
-                                "hidden": true,
                                 "component": "views/footer/goods/position/components/delivery16/index.vue",
                                 "className": "el-button--primary"
                             },
@@ -272,71 +271,6 @@
                                 "component": "views/query/order/goods/history/index.vue"
                             }
                         ]
-                    },
-                    {
-                        "authType": 1,
-                        "sort": 3,
-                        "title": "预售转让",
-                        "code": "query_order_presell",
-                        "url": "spot",
-                        "urlType": 1,
-                        "component": "views/query/order/presell/index.vue",
-                        "hidden": true,
-                        "children": [
-                            {
-                                "authType": 2,
-                                "sort": 1,
-                                "title": "当前认购",
-                                "code": "query_order_presell__list",
-                                "component": "views/query/order/presell/list/index.vue"
-                            },
-                            {
-                                "authType": 2,
-                                "sort": 2,
-                                "title": "历史认购",
-                                "code": "query_order_presell_history",
-                                "component": "views/query/order/presell/history/index.vue"
-                            },
-                            {
-                                "authType": 2,
-                                "sort": 3,
-                                "title": "当前转让",
-                                "code": "query_order_presell_transferlist",
-                                "component": "views/query/order/presell/transferlist/index.vue"
-                            },
-                            {
-                                "authType": 2,
-                                "sort": 4,
-                                "title": "历史转让",
-                                "code": "query_order_presell_transferhistory",
-                                "component": "views/query/order/presell/transferhistory/index.vue"
-                            }
-                        ]
-                    },
-                    {
-                        "authType": 1,
-                        "sort": 2,
-                        "title": "现货仓单",
-                        "code": "query_order_spot",
-                        "url": "spot",
-                        "urlType": 1,
-                        "component": "views/query/order/spot/index.vue",
-                        "children": [
-                            {
-                                "authType": 2,
-                                "sort": 1,
-                                "title": "当前记录",
-                                "code": "query_order_spot_list",
-                                "component": "views/query/order/spot/list/index.vue"
-                            },
-                            {
-                                "authType": 2,
-                                "sort": 2,
-                                "title": "历史记录",
-                                "code": "query_order_spot_history",
-                                "component": "views/query/order/spot/history/index.vue"
-                            }
-                        ]
                     }
                 ]
             },
@@ -373,57 +307,6 @@
                                 "component": "views/query/trade/goods/history/index.vue"
                             }
                         ]
-                    },
-                    {
-                        "authType": 1,
-                        "sort": 2,
-                        "title": "预售转让",
-                        "code": "query_trade_presell",
-                        "url": "spot",
-                        "urlType": 1,
-                        "component": "views/query/trade/presell/index.vue",
-                        "hidden": true,
-                        "children": [
-                            {
-                                "authType": 2,
-                                "sort": 1,
-                                "title": "当前记录",
-                                "code": "query_trade_presell_list",
-                                "component": "views/query/trade/presell/list/index.vue"
-                            },
-                            {
-                                "authType": 2,
-                                "sort": 2,
-                                "title": "历史记录",
-                                "code": "query_trade_presell_history",
-                                "component": "views/query/trade/presell/history/index.vue"
-                            }
-                        ]
-                    },
-                    {
-                        "authType": 1,
-                        "sort": 3,
-                        "title": "现货仓单",
-                        "code": "query_trade_spot",
-                        "url": "spot",
-                        "urlType": 1,
-                        "component": "views/query/trade/spot/index.vue",
-                        "children": [
-                            {
-                                "authType": 2,
-                                "sort": 1,
-                                "title": "当前记录",
-                                "code": "query_trade_spot_list",
-                                "component": "views/query/trade/spot/list/index.vue"
-                            },
-                            {
-                                "authType": 2,
-                                "sort": 2,
-                                "title": "历史记录",
-                                "code": "query_trade_spot_history",
-                                "component": "views/query/trade/spot/history/index.vue"
-                            }
-                        ]
                     }
                 ]
             },

+ 0 - 1
oem/qdhs/config/router.json

@@ -23,7 +23,6 @@
                         "authType": 3,
                         "title": "交收",
                         "code": "bottom_goods_position_delivery16",
-                        "hidden": true,
                         "component": "views/footer/goods/position/components/delivery16/index.vue",
                         "className": "el-button--primary"
                     },

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

@@ -1,8 +1,8 @@
 {
   "appId": "com.muchinfo.tjmd",
   "appName": "海南掉期市场",
-  "version": "1.0.11",
-  "versionCode": "100011",
+  "version": "1.0.12",
+  "versionCode": "100012",
   "apiUrl": "http://192.168.31.132:8080/cfg?key=test_132",
   "tradeChannel": "ws",
   "modules": [

+ 2 - 2
src/components/base/tabs/index.vue

@@ -1,7 +1,7 @@
 <template>
     <div :class="['app-tabs', 'app-tabs--' + direction]">
-        <div class="app-tabs__navbar">
-            <ul class="tabs" v-if="dataList.length">
+        <div class="app-tabs__navbar" v-if="dataList.length">
+            <ul class="tabs">
                 <li :class="['tabs-item', index === selectedIndex && 'is-active']" v-for="(item, index) in dataList"
                     :key="index" @click="onTabChange(index)">
                     {{ item[propLabel] ?? '标签' + index }}

+ 1 - 1
src/packages/mobile/views/order/position/components/goods/detail/Index.vue

@@ -43,7 +43,7 @@
                                 </li>
                             </ul>
                         </div>
-                        <div class="g-order-list__btnbar" v-if="item.holderqty">
+                        <div class="g-order-list__btnbar" v-if="item.trademode === 50 && item.holderqty">
                             <Button size="small" @click="showComponent('close', item)" round>转让</Button>
                         </div>
                     </div>

+ 5 - 4
src/packages/pc/assets/themes/default/default.less

@@ -60,11 +60,12 @@
 }
 
 .el-popper {
-    &.is-light {
-        --el-bg-color-overlay: #424E59;
+    &.is-dark {
+        --el-text-color-primary: #424E59;
+        --el-bg-color-overlay: var(--el-text-color-primary);
     }
 
-    &.is-light &__arrow::before {
+    &.is-dark &__arrow::before {
         --el-border-color-light: #424E59;
     }
 }
@@ -464,7 +465,7 @@
     }
 }
 
-.g-fieldset{
+.g-fieldset {
     border: 1px solid #162534;
     padding: 20px;
 

+ 3 - 3
src/packages/pc/components/base/region/index.vue

@@ -1,13 +1,13 @@
 <template>
     <div class="app-region">
-        <el-select v-model="provinceId" @change="provinceChange">
+        <el-select effect="dark" v-model="provinceId" @change="provinceChange">
             <el-option :label="item.divisionname" :value="item.autoid" v-for="(item, index) in provinceList"
                 :key="index" />
         </el-select>
-        <el-select v-model="cityId" @change="cityChange">
+        <el-select effect="dark" v-model="cityId" @change="cityChange">
             <el-option :label="item.divisionname" :value="item.autoid" v-for="(item, index) in cityList" :key="index" />
         </el-select>
-        <el-select v-model="districtId" @change="districtChange">
+        <el-select effect="dark" v-model="districtId" @change="districtChange">
             <el-option :label="item.divisionname" :value="item.autoid" v-for="(item, index) in districtList"
                 :key="index" />
         </el-select>

+ 1 - 1
src/packages/pc/components/base/table-filter/index.vue

@@ -4,7 +4,7 @@
       <slot name="before"></slot>
     </el-form-item>
     <el-form-item v-for="item in options.selectList" :key="item.key" :label="item.label">
-      <el-select :placeholder="item.placeholder ?? '请选择'" v-model="item.selectedValue" @change="item.onChange">
+      <el-select effect="dark" :placeholder="item.placeholder ?? '请选择'" v-model="item.selectedValue" @change="item.onChange">
         <el-option v-for="option in item.options" :key="option.value" :value="option.value" :label="option.label" />
       </el-select>
     </el-form-item>

+ 1 - 1
src/packages/pc/components/base/table-setting/index.vue

@@ -6,7 +6,7 @@
                 <li v-for="(item, index) in tableColumns" :key="index">
                     <div class="sortable-content">
                         <el-checkbox v-model="item.show" :label="item.label" size="large" />
-                        <el-select v-model="item.fixed">
+                        <el-select effect="dark" v-model="item.fixed">
                             <el-option label="不固定" value="" />
                             <el-option label="固定左边" value="left" />
                             <el-option label="固定右边" value="right" />

+ 1 - 1
src/packages/pc/components/layouts/footer/index.vue

@@ -35,7 +35,7 @@
         <div class="app-footer__right">
             <app-auth-component code="bottom" @tab-change="(index) => emit('tabChange', index)">
                 <template #navbar>
-                    <el-select placeholder="请选择资金账户" :disabled="loading" v-model="currentAccountId" @change="getAccountList"
+                    <el-select effect="dark" placeholder="请选择资金账户" :disabled="loading" v-model="currentAccountId" @change="getAccountList"
                         v-if="false">
                         <el-option :label="item.accountid" :value="item.accountid" v-for="(item, index) in accountList"
                             :key="index" />

+ 3 - 3
src/packages/pc/components/layouts/header/components/avater/index.vue

@@ -1,7 +1,7 @@
 <!-- 系统公告 -->
 <template>
-    <app-drawer title="头像" :width="600" v-model:show="show" :refresh="refresh">
-        <el-form ref="formRef" class="el-form--vertical" label-width="100px" :model="formData" :rules="formRules">
+    <app-drawer title="头像" :width="400" v-model:show="show" :refresh="refresh">
+        <el-form ref="formRef" class="el-form--vertical" label-width="80px" :model="formData" :rules="formRules">
             <el-form-item prop="cardbackphotourl" label="用户头像">
                 <app-upload :file-types="['image']" type-message="请选择正确的图片类型" @change="f_afterRead"
                     :rules="formRules.cardbackphotourl" />
@@ -9,7 +9,7 @@
         </el-form>
         <template #footer>
             <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="danger" @click="onSubmit">修改</el-button>
+            <el-button type="primary" @click="onSubmit">保存</el-button>
         </template>
     </app-drawer>
 </template>

+ 3 - 3
src/packages/pc/components/layouts/header/components/modify/index.vue

@@ -1,12 +1,12 @@
 <!-- 系统公告 -->
 <template>
     <app-drawer title="修改登录密码" :width="400" v-model:show="show" :loading="loading" :refresh="refresh">
-        <el-form ref="formRef" class="el-form--vertical" label-width="100px" :model="formData" :rules="formRules">
+        <el-form ref="formRef" class="el-form--vertical" label-width="80px" :model="formData" :rules="formRules">
             <el-form-item label="原密码" prop="OldPwd">
                 <el-input placeholder="请输入原密码" show-password v-model="formData.OldPwd" />
             </el-form-item>
             <el-form-item label="新密码" prop="NewPwd">
-                <el-tooltip effect="light" placement="top" trigger="click" :hide-after="0">
+                <el-tooltip placement="top" trigger="click" :hide-after="0">
                     <template #content>
                         <span style="color: #f2f2f2;">{{ validateRules.password.message }}</span>
                     </template>
@@ -19,7 +19,7 @@
         </el-form>
         <template #footer>
             <el-button type="info" @click="onCancel(false)">取消</el-button>
-            <el-button type="danger" @click="onSubmit">修改密码</el-button>
+            <el-button type="primary" @click="onSubmit">提交</el-button>
         </template>
     </app-drawer>
 </template>

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

@@ -3,11 +3,11 @@
     <app-drawer title="交易商结算单" :width="1000" v-model:show="show" :show-close="!!reportAgree[agreeIndex]?.isAgree">
         <div class="el-form--horizontal">
             <div class="el-form-item--col">
-                <el-select placeholder="请选择" v-model="reporttype" @change="onChange" style="width: 160px;">
+                <el-select effect="dark" placeholder="请选择" v-model="reporttype" @change="onChange" style="width: 160px;">
                     <el-option v-for="option in selectList" :key="option.value" :value="option.value"
                         :label="option.label" />
                 </el-select>
-                <el-date-picker :type="pickerType" placeholder="查询日期" :value-format="pickerFormat" :clearable="false"
+                <el-date-picker effect="dark" :type="pickerType" placeholder="查询日期" :value-format="pickerFormat" :clearable="false"
                     v-model="cycletime" />
                 <el-button type="primary" :loading="loading" @click="requestData">查询</el-button>
             </div>

+ 3 - 3
src/packages/pc/components/layouts/header/components/setting/index.vue

@@ -5,7 +5,7 @@
             <legend class="g-fieldset__legend">下单设置</legend>
             <el-form ref="formRef" class="el-form--horizontal" label-width="140px" :model="formData">
                 <el-form-item prop="orderBuyOrSell" label="默认买卖方向">
-                    <el-select placeholder="请选择" v-model="formData.orderBuyOrSell">
+                    <el-select effect="dark" placeholder="请选择" v-model="formData.orderBuyOrSell">
                         <template v-for="(item, index) in getBuyOrSellList()" :key="index">
                             <el-option :label="item.label" :value="item.value" />
                         </template>
@@ -18,7 +18,7 @@
                     <el-switch v-model="formData.orderQtyIsEmpty" />
                 </el-form-item>
                 <el-form-item prop="orderFocusType" label="下单价格类型">
-                    <el-select placeholder="请选择" v-model="formData.orderPriceType">
+                    <el-select effect="dark" placeholder="请选择" v-model="formData.orderPriceType">
                         <el-option label="现价" :value="1" />
                         <el-option label="对手价" :value="2" />
                         <el-option label="实时现价" :value="3" />
@@ -29,7 +29,7 @@
                     <el-switch v-model="formData.showOrderEnableQty" />
                 </el-form-item>
                 <el-form-item prop="orderFocusType" label="下单后默认焦点">
-                    <el-select placeholder="请选择" v-model="formData.orderFocusType">
+                    <el-select effect="dark" placeholder="请选择" v-model="formData.orderFocusType">
                         <el-option label="价格" :value="1" />
                         <el-option label="数量" :value="2" />
                     </el-select>

+ 1 - 1
src/packages/pc/components/layouts/header/index.vue

@@ -15,7 +15,7 @@
                 <!-- <app-icon icon="g-icon-minimize" @click="exitFullSreen" v-if="fullScreen" />
                 <app-icon icon="g-icon-maximize" @click="setFullSreen" v-else /> -->
             </div>
-            <el-dropdown class="user-dropdown" trigger="click">
+            <el-dropdown class="user-dropdown" effect="dark" trigger="click">
                 <span class="user-dropdown__link">
                     <img class="g-image--avatar" :title="userStore.customerName" :src="userAvatar" />
                     <span v-if="!globalStore.isMobile">{{ userStore.customerName }}</span>

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

@@ -45,8 +45,11 @@
       <div class="statusbar-right">
         <ul>
           <li>
-            <span>风险率:</span>
-            <span>{{ parsePercent(accountStore.currentAccount.hazardRatio) }}</span>
+            <el-popover trigger="hover" title="公式" content="风险率 = (占用 / 净值) * 100%" :width="220">
+              <template #reference>
+                <span style="cursor: pointer;">风险率:{{ parsePercent(accountStore.currentAccount.hazardRatio) }}</span>
+              </template>
+            </el-popover>
           </li>
           <li>
             <span>用户ID:</span>

+ 7 - 5
src/packages/pc/components/modules/goods-detail/order/delisting/index.vue

@@ -13,7 +13,7 @@
             </el-form-item>
             <el-form-item prop="OrderQty" label="摘牌数量">
                 <div class="g-qty-group">
-                    <el-input-number placeholder="请输入" :min="0" :precision="0" :step="qtyStep"
+                    <el-input-number placeholder="请输入" :min="0" :max="selectedRow.orderqty" :precision="0" :step="qtyStep"
                         v-model="formData.OrderQty" />
                     <el-radio-group size="small" v-model="qtyStep" @change="onRadioChange">
                         <el-radio v-for="(value, index) in qtyStepList" :key="index" :label="value" border />
@@ -24,9 +24,9 @@
         <template #footer>
             <template v-if="selectedRow.buyorsell === BuyOrSell.Buy">
                 <el-button type="primary" :disabled="!formData.OrderQty || formData.OrderQty > selectedRow.orderqty"
-                    @click="onSubmit(EBuildType.BUILDTYPE_OPEN)">订立卖出</el-button>
+                    @click="onSubmit(EBuildType.BUILDTYPE_OPEN)" v-if="quote?.tradeproperty === 1">订立卖出</el-button>
                 <el-button type="primary" :disabled="!formData.OrderQty || !buyQty || (formData.OrderQty > buyQty)"
-                    @click="onSubmit(EBuildType.BUILDTYPE_CLOSE)" v-if="quote?.tradeproperty === 1">
+                    @click="onSubmit(EBuildType.BUILDTYPE_CLOSE)">
                     <span>转让卖出</span>
                     <span v-if="buyQty">(≤{{ buyQty }})</span>
                 </el-button>
@@ -74,6 +74,8 @@ const qtyStep = shallowRef(qtyStepList[0]) // 数量步长
 // 商品盘面
 const quote = futuresStore.getGoodsQuote(props.selectedRow.goodsid)
 
+const isTrademode16 = computed(() => quote.value?.trademode === 16)
+
 // 买方向持仓数量
 const buyQty = computed(() => getOrderQty(BuyOrSell.Buy, props.selectedRow.goodsid))
 
@@ -106,8 +108,8 @@ const onSubmit = (buildType: number) => {
     formRef.value?.validate((valid) => {
         if (valid) {
             ElMessageBox.confirm(
-                '*若存在价格匹配的反方向委托订单,系统将会自动撤销。',
-                '是否立即摘牌?'
+                isTrademode16.value ? '是否立即摘牌?' : '*若存在价格匹配的反方向委托订单,系统将会自动撤销。',
+                isTrademode16.value ? '提示' : '是否立即摘牌?'
             ).then(() => {
                 const { goodsid, orderid, orderprice, buyorsell } = props.selectedRow
                 const { marketid = 0 } = quote.value ?? {}

+ 1 - 1
src/packages/pc/components/modules/performance/index.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-select popper-class="app-performance" value-key="autoid" :placeholder="placeholder" v-model="data"
+    <el-select effect="dark" popper-class="app-performance" value-key="autoid" :placeholder="placeholder" v-model="data"
         @change="onChange" clearable>
         <el-option class="app-performance-item" v-for="(item, i) in dataList" :key="i" :label="item.templatename"
             :value="item">

+ 1 - 1
src/packages/pc/views/account/address/components/edit/index.vue

@@ -7,7 +7,7 @@
                 <el-input placeholder="请输入" v-model="formData.ReceiverName" />
             </el-form-item>
             <!-- <el-form-item label="证件类型" prop="CardTypeID">
-                <el-select v-model="formData.CardTypeID">
+                <el-select effect="dark" v-model="formData.CardTypeID">
                     <el-option :label="item.label" :value="item.value" v-for="(item, index) in certificateTypeList.slice(0, 1)"
                         :key="index" />
                 </el-select>

+ 1 - 1
src/packages/pc/views/account/sign/components/certification/index.vue

@@ -3,7 +3,7 @@
     <app-drawer title="实名认证" v-model:show="show" :width="500" :loading="loading" :refresh="refresh">
         <el-form ref="formRef" class="el-form--vertical" label-width="120px" :model="formData" :rules="formRules">
             <el-form-item label="证件类型" prop="cardtype">
-                <el-select v-model="formData.cardtype">
+                <el-select effect="dark" v-model="formData.cardtype">
                     <el-option :label="item.label" :value="item.value" v-for="(item, index) in getCertificateTypeList()"
                         :key="index" />
                 </el-select>

+ 2 - 2
src/packages/pc/views/account/sign/components/sign/index.vue

@@ -4,7 +4,7 @@
         :loading="loading" :refresh="refresh">
         <el-form ref="formRef" class="el-form--horizontal" label-width="120px" :model="formData" :rules="formRules">
             <el-form-item label="开户银行" prop="OpenBankAccId">
-                <el-select v-model="formData.OpenBankAccId">
+                <el-select effect="dark" v-model="formData.OpenBankAccId">
                     <el-option :label="item.bankname" :value="item.bankid" v-for="(item, index) in banklist" :key="index" />
                 </el-select>
             </el-form-item>
@@ -38,7 +38,7 @@
                 </template>
                 <template v-else-if="(item.fieldcode === 'bank_branch_name')">
                     <el-form-item :label="item.fieldname" :prop="item.fieldcode" v-if="showExtendInfo(item)">
-                        <el-select placeholder="请输入" v-model="item.value" value-key="branchnum" :loading="searchLoading"
+                        <el-select effect="dark" placeholder="请输入" v-model="item.value" value-key="branchnum" :loading="searchLoading"
                             :remote-method="remoteMethod" filterable remote clearable allow-create @change="onBankChange"
                             @clear="dataList = []">
                             <template v-for="(item, index) in dataList" :key="index">

+ 2 - 1
src/packages/pc/views/footer/goods/detail/index.vue

@@ -7,9 +7,10 @@
         </template>
         <!-- 操作 -->
         <template #operate="{ row }">
-            <div class="buttonbar">
+            <div class="buttonbar" v-if="row.trademode === 50">
                 <el-button type="danger" size="small" @click="showComponent('transfer', row)">转让</el-button>
             </div>
+            <span v-else>--</span>
         </template>
         <template #append>
             <el-button size="small" plain @click="loadMore" v-if="showLoadMore">加载更多</el-button>

+ 1 - 1
src/packages/pc/views/footer/goods/order/clear/index.vue

@@ -4,7 +4,7 @@
         <el-form ref="formRef" class="el-form--vertical" label-width="100px" :model="formModel" :rules="formRules"
             @submit.prevent>
             <el-form-item prop="goodsId" label="委托商品">
-                <el-select placeholder="请选择" v-model="formModel.goodsId">
+                <el-select effect="dark" placeholder="请选择" v-model="formModel.goodsId">
                     <template v-for="(item, index) in goodsList" :key="index">
                         <el-option :label="item.goodsname" :value="item.goodsid" />
                     </template>

+ 2 - 2
src/packages/pc/views/footer/inout/out/add/index.vue

@@ -4,7 +4,7 @@
         <el-form ref="formRef" class="el-form--horizontal" label-width="100px" :model="formData" :rules="formRules"
             @submit.prevent>
             <el-form-item prop="InUserID" label="转入客户">
-                <el-select placeholder="请输入客户编号或手机号" v-model="formData.InUserID" :loading="searchLoading"
+                <el-select effect="dark" placeholder="请输入客户编号或手机号" v-model="formData.InUserID" :loading="searchLoading"
                     :remote-method="remoteMethod" filterable remote clearable>
                     <template v-for="(item, index) in dataList" :key="index">
                         <el-option :label="item.customername" :value="item.userid" />
@@ -12,7 +12,7 @@
                 </el-select>
             </el-form-item>
             <el-form-item prop="GoodsID" label="转让商品">
-                <el-select placeholder="请选择" v-model="selectedGoods" value-key="goodsid" @change="onGoodsChange">
+                <el-select effect="dark" placeholder="请选择" v-model="selectedGoods" value-key="goodsid" @change="onGoodsChange">
                     <template v-for="(item, index) in goodsList" :key="index">
                         <el-option :label="`${item.goodscode}/${item.goodsname}`" :value="item" />
                     </template>

+ 1 - 1
src/packages/pc/views/footer/spot/position/components/pickup/index.vue

@@ -21,7 +21,7 @@
                 <el-input-number placeholder="请输入提货数量" v-model="orderQty" :max="selectedRow.enableqty" :min="0" />
             </el-form-item>
             <el-form-item prop="AppointmentModel" label="提货方式">
-                <el-select v-model="formData.AppointmentModel" :disabled="loading">
+                <el-select effect="dark" v-model="formData.AppointmentModel" :disabled="loading">
                     <el-option :label="item.label" :value="item.value" v-for="(item, index) in getAppointmentModelOutList()"
                         :key="index" />
                 </el-select>

+ 0 - 26
src/packages/pc/views/market/trade/goods/index.vue

@@ -4,35 +4,9 @@
 </template>
 
 <script lang="ts" setup>
-// import { computed } from 'vue'
-// import { useUserStore } from '@/stores'
 import AppAuthComponent from '@pc/components/modules/auth-component/index.vue'
 
 defineProps({
     code: String
 })
-
-//const userStore = useUserStore()
-
-// 用户市场权限
-// const userMarket = computed(() => userStore.userData.markets.reduce<string[]>((pre, cur) => {
-//     switch (cur.marketid) {
-//         case 50101:
-//             pre.push('market_trade_goods_50101')
-//             break
-//         case 50102:
-//             pre.push('market_trade_goods_50102')
-//             break
-//         case 50103:
-//             pre.push('market_trade_goods_50103')
-//             break
-//         case 50104:
-//             pre.push('market_trade_goods_50104')
-//             break
-//         case 16201:
-//             pre.push('market_trade_goods_16201')
-//             break
-//     }
-//     return pre
-// }, []))
 </script>

+ 1 - 1
src/packages/pc/views/market/trade/goods/list/listing/index.vue

@@ -8,7 +8,7 @@
             <el-form ref="formRef" class="el-form--vertical" label-width="60px" :show-message="false" :model="formData"
                 :rules="formRules">
                 <el-form-item prop="GoodsID" label="商品">
-                    <el-select placeholder="请选择" v-model="selectedGoodsId" filterable>
+                    <el-select effect="dark" placeholder="请选择" v-model="selectedGoodsId" filterable>
                         <el-option :label="item.goodsname" :value="item.goodsid" v-for="(item, index) in marketGoodsList"
                             :key="index" />
                     </el-select>

+ 40 - 26
src/packages/pc/views/market/trade/index.vue

@@ -1,63 +1,77 @@
-<!-- 根据市场板块动态配置(未完成) -->
+<!-- 根据市场板块动态配置 -->
 <template>
-    <app-tabs class="app-tabs--primary" :data-list="dataList" prop-label="marketsectionname" @change="onTabChange">
+    <app-tabs class="app-tabs--primary" :data-list="tabList" prop-label="marketsectionname" @change="onTabChange">
         <app-tabs class="app-tabs--primary" :data-list="marketList" v-model:data-index="marketIndex" direction="bottom"
             prop-label="displayname" @change="onMarketChange">
-            <component ref="componentRef" :is="componentMap.get(componentId)" v-bind="{ marketids }"
-                @closed="closeComponent" v-if="componentId" />
+            <component :is="componentMap.get(componentId)" v-if="componentId" />
         </app-tabs>
     </app-tabs>
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, defineAsyncComponent } from 'vue'
-import { useComponent } from '@/hooks/component'
+import { shallowRef, defineAsyncComponent, computed } from 'vue'
 import { useRequest } from '@/hooks/request'
 import { getMarketSections } from '@/services/api/market'
+import { useFuturesStore, useUserStore } from '@/stores'
 import AppTabs from '@/components/base/tabs/index.vue'
 
-const componentMap = new Map<string, unknown>([
-    ['orderList', defineAsyncComponent(() => import('./goods/list/index.vue'))], // 订单挂牌
-    ['99201', defineAsyncComponent(() => import('./market/index.vue'))], // 参考行情
+const componentMap = new Map([
+    ['goodsList', defineAsyncComponent(() => import('./goods/list/index.vue'))], // 订单挂牌
+    ['tradeModel_51', defineAsyncComponent(() => import('./presell/ballot/index.vue'))], // 预售中签
+    ['tradeModel_49', defineAsyncComponent(() => import('./presell/transfer/index.vue'))], // 定金转让
+    ['tradeModel_17', defineAsyncComponent(() => import('./spot/index.vue'))], // 现货挂牌
+    ['tradeModel_46', defineAsyncComponent(() => import('./swap/index.vue'))], // 掉期市场
+    ['tradeModel_99', defineAsyncComponent(() => import('./market/index.vue'))], // 参考行情
 ])
 
-const { componentRef, componentId, openComponent, closeComponent } = useComponent()
+const userStore = useUserStore()
+const futuresStore = useFuturesStore()
 const marketList = shallowRef<Model.GetMarketSectionsRsp['marketsectionconfignews']>([])
-const marketIndex = shallowRef(-1)
-const marketids = shallowRef<number[]>([])
+const marketIndex = shallowRef(0)
+const componentId = shallowRef('')
 
 const { dataList } = useRequest(getMarketSections, {
-    onSuccess: (res) => {
-        const [firstTab] = res.data
-        const [firstMarket] = firstTab?.marketsectionconfignews ?? []
-        if (firstMarket) {
+    onFinally: () => {
+        const [firstTab] = tabList.value
+        if (firstTab) {
             onTabChange(0)
         }
     }
 })
 
+// 板块标签列表
+const tabList = computed(() => {
+    const ids = userStore.userData.markets.map((e) => e.marketid.toString())
+    // 过滤掉没有市场权限的板块
+    return dataList.value.filter((item) => item.marketsectionconfignews.some((e) => {
+        const arr = e.marketids.split(',')
+        e.marketids = arr.filter((id) => ids.includes(id)).join(',')
+        return e.marketids
+    }))
+})
+
+// 切换板块
 const onTabChange = (index: number) => {
-    const item = dataList.value[index]
+    const item = tabList.value[index]
     marketList.value = item.marketsectionconfignews
-    componentId.value = undefined
-
-    if (marketList.value.length) {
-        marketIndex.value = 0
-        onMarketChange(0)
-    }
+    marketIndex.value = 0
+    componentId.value = ''
+    onMarketChange(0)
 }
 
+// 切换市场
 const onMarketChange = (index: number) => {
     const item = marketList.value[index]
     if (item) {
-        marketids.value = item.marketids.split(',').map((val) => Number(val))
+        const marketids = item.marketids.split(',').map((val) => Number(val))
+        futuresStore.setMarketId(...marketids)
         switch (true) {
             case [50, 16].includes(item.trademode): {
-                openComponent('orderList')
+                componentId.value = 'goodsList'
                 break
             }
             default: {
-                openComponent(item.marketids)
+                componentId.value = 'tradeModel_' + item.trademode
             }
         }
     }

+ 1 - 1
src/packages/pc/views/market/trade/presell/transfer/listing/index.vue

@@ -7,7 +7,7 @@
             <h4 class="header-title">订单交易</h4>
             <el-form ref="formRef" class="el-form--vertical" label-width="60px" :model="formData" :rules="formRules">
                 <el-form-item prop="GoodsID" label="商品">
-                    <el-select placeholder="请选择" v-model="selectedGoodsId" filterable @change="onGoodsChange">
+                    <el-select effect="dark" placeholder="请选择" v-model="selectedGoodsId" filterable @change="onGoodsChange">
                         <el-option :label="item.goodsname" :value="item.goodsid" v-for="(item, index) in marketGoodsList"
                             :key="index" />
                     </el-select>

+ 3 - 3
src/packages/pc/views/market/trade/spot/listing/index.vue

@@ -6,19 +6,19 @@
                 <Performance :market-id="17201" tmptype="0,2" v-model="formData.PerformanceTemplateID" />
             </el-form-item>
             <el-form-item prop="DeliveryGoodsID" label="品种">
-                <el-select placeholder="请选择" v-model="formData.DeliveryGoodsID" @change="onDeliveryGoodsChange">
+                <el-select effect="dark" placeholder="请选择" v-model="formData.DeliveryGoodsID" @change="onDeliveryGoodsChange">
                     <el-option :label="item.deliverygoodsname" :value="item.deliverygoodsid"
                         v-for="(item, index) in ftDeliveryGoodsList" :key="index" />
                 </el-select>
             </el-form-item>
             <el-form-item prop="WRStandardID" label="商品">
-                <el-select placeholder="请选择" v-model="formData.WRStandardID" @change="onGoodsChange">
+                <el-select effect="dark" placeholder="请选择" v-model="formData.WRStandardID" @change="onGoodsChange">
                     <el-option :label="item.wrstandardname" :value="item.wrstandardid" v-for="(item, index) in goodsList"
                         :key="index" />
                 </el-select>
             </el-form-item>
             <el-form-item prop="dgFactoryItemId" label="仓库">
-                <el-select placeholder="请选择" v-model="dgFactoryItemId" @change="onWarehouseChange">
+                <el-select effect="dark" placeholder="请选择" v-model="dgFactoryItemId" @change="onWarehouseChange">
                     <el-option :label="item.dgfactoryitemvalue" :value="item.dgfactoryitemid"
                         v-for="(item, index) in warehouseList" :key="index" />
                 </el-select>

+ 1 - 1
src/packages/pc/views/query/capital/history/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/inoutapply/history/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/order/goods/history/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/order/presell/history/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/order/presell/transferhistory/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/order/spot/history/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/order/swap/history/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/performance/buy/all/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/performance/sell/all/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #after>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/trade/goods/history/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/trade/presell/history/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/trade/spot/history/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>

+ 1 - 1
src/packages/pc/views/query/trade/swap/history/index.vue

@@ -4,7 +4,7 @@
         <template #headerLeft>
             <app-filter :options="filterOptons">
                 <template #before>
-                    <el-date-picker type="daterange" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
+                    <el-date-picker type="daterange" effect="dark" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYYMMDD"
                         v-model="filterDate" />
                 </template>
             </app-filter>