Explorar el Código

:facepunch:feat: "用户等级,买卖确认"

Ritchie hace 1 año
padre
commit
59c3d1ba75

+ 1 - 0
README.md

@@ -33,6 +33,7 @@ Sunzee company internal stock trading system front-end project
 - 红 #FF3456 rgba(255, 52, 86, 1)
 - 蓝 #39a6fe rgba(252, 104, 94, 1)
 
+- 备选苹果红 #ff0077
 
 ## Customize configuration
 

BIN
src/assets/user/logoutIcon.png


BIN
src/assets/user/payeeIcon.png


BIN
src/assets/user/payerIcon.png


+ 4 - 0
src/main.js

@@ -66,6 +66,8 @@ import {
   GridItem,
   CountDown,
   Space,
+  Rate,
+  NumberKeyboard,
 } from "vant";
 import { Image as VanImage } from "vant";
 import App from "./App.vue";
@@ -158,6 +160,8 @@ app
   .use(Grid)
   .use(CountDown)
   .use(Space)
+  .use(Rate)
+  .use(NumberKeyboard)
 
 app.use(router);
 app.use(store);

+ 49 - 16
src/router/index.js

@@ -51,6 +51,41 @@ const router = createRouter({
       component: () => import("@/views/trading/TradingIndex.vue"),
       meta: { index: 1, keepAlive: true },
     },
+    // 买卖
+    {
+      path: "/buyOrSell",
+      name: "buyOrSell",
+      component: () => import("@/views/buyOrSell/BuyOrSellIndex.vue"),
+      meta: { index: 1, keepAlive: true },
+    },
+    // 买家付款确认列表
+    {
+      path: "/buyConfList",
+      name: "buyConfList",
+      component: () => import("@/views/buyOrSell/BuyConfList.vue"),
+      meta: { index: 1, keepAlive: true },
+    },
+    // 买家付款图片
+    {
+      path: "/buyConf",
+      name: "buyConf",
+      component: () => import("@/views/buyOrSell/BuyConf.vue"),
+      meta: { index: 1, keepAlive: true },
+    },
+    // 卖家收款确认列表
+    {
+      path: "/sellConfList",
+      name: "sellConfList",
+      component: () => import("@/views/buyOrSell/SellConfList.vue"),
+      meta: { index: 1, keepAlive: true },
+    },
+    // 卖家确认收款
+    {
+      path: "/sellConf",
+      name: "sellConf",
+      component: () => import("@/views/buyOrSell/SellConf.vue"),
+      meta: { index: 1, keepAlive: true },
+    },
     // 持仓
     {
       path: "/position",
@@ -65,21 +100,6 @@ const router = createRouter({
       component: () => import("@/views/user/UserIndex.vue"),
       meta: { index: 1 },
     },
-    // 账号审核列表
-    {
-      path: "/taskAccountList",
-      name: "taskAccountList",
-      component: () => import("@/views/taskMessage/TaskAccountList.vue"),
-      meta: { index: 1 },
-    },
-    // 账号审核
-    {
-      path: "/setupAccount",
-      name: "setupAccount",
-      component: () => import("@/views/taskMessage/SetupAccount.vue"),
-      meta: { index: 1 },
-    },
-
     // 公告编辑
     {
       path: "/announcement",
@@ -101,7 +121,20 @@ const router = createRouter({
       component: () => import("@/views/taskMessage/index"),
       meta: { index: 1 },
     },
-
+    // 账号审核列表
+    {
+      path: "/taskAccountList",
+      name: "taskAccountList",
+      component: () => import("@/views/taskMessage/TaskAccountList.vue"),
+      meta: { index: 1 },
+    },
+    // 账号审核
+    {
+      path: "/taskAccount",
+      name: "taskAccount",
+      component: () => import("@/views/taskMessage/TaskAccount.vue"),
+      meta: { index: 1 },
+    },
     // 账户操作
     {
       path: "/accountOperation",

+ 8 - 3
src/service/login/register.js

@@ -8,11 +8,16 @@ export function sentRegisterCode(params) {
 }
 
 // 注册
-export function tAdminSave(params) {
-  return axios.post(`/SZWL-SERVER/tAdmin/save`, params);
-}
+// export function tAdminSave(params) {
+//   return axios.post(`/SZWL-SERVER/tAdmin/save`, params);
+// }
 
 // 获取最后一次发送验证码的时间
 export function getLastSendTime(params) {
   return axios.get(`/SZWL-SERVER/tMessageCode/getLastSendTime?phoneOrEmail=${params.phoneOrEmail}`, params);
+}
+
+// 注册股票账户
+export function addUserApply(params) {
+  return axios.post(`/userApply/addUserApply`, params);
 }

+ 2 - 2
src/service/taskAccount/index.js

@@ -2,8 +2,8 @@ import axios from '@/utils/axios';
 
 
 // 获取账号审批分页
-export function getPatchPage(params) {
-    return axios.get('/SZWL-SERVER/tHotUpdate/getPatchPage',{params});
+export function getPageUserApply(params) {
+    return axios.get(`/userApply/pageUserApply`,{params});
 }
 
 export function updateUserInfo(locationCheck) {

+ 324 - 279
src/styles/position/index.less

@@ -1,372 +1,417 @@
 body * {
-    box-sizing: border-box;
-    flex-shrink: 0;
+  box-sizing: border-box;
+  flex-shrink: 0;
 }
 
 body {
-    font-family: PingFangSC-Regular, Roboto, Helvetica Neue, Helvetica, Tahoma,
-        Arial, PingFang SC-Light, Microsoft YaHei;
+  font-family: PingFangSC-Regular, Roboto, Helvetica Neue, Helvetica, Tahoma,
+    Arial, PingFang SC-Light, Microsoft YaHei;
 }
 
 button {
-    margin: 0;
-    padding: 0;
-    border: 1px solid transparent;
-    outline: none;
-    background-color: transparent;
+  margin: 0;
+  padding: 0;
+  border: 1px solid transparent;
+  outline: none;
+  background-color: transparent;
 }
 
 button:active {
-    opacity: 0.6;
+  opacity: 0.6;
 }
 
 .flex-col {
-    display: flex;
-    flex-direction: column;
+  display: flex;
+  flex-direction: column;
 }
 
 .flex-row {
-    display: flex;
-    flex-direction: row;
+  display: flex;
+  flex-direction: row;
 }
 
 .justify-start {
-    display: flex;
-    justify-content: flex-start;
+  display: flex;
+  justify-content: flex-start;
 }
 
 .justify-center {
-    display: flex;
-    justify-content: center;
+  display: flex;
+  justify-content: center;
 }
 
 .justify-end {
-    display: flex;
-    justify-content: flex-end;
+  display: flex;
+  justify-content: flex-end;
 }
 
 .justify-evenly {
-    display: flex;
-    justify-content: space-evenly;
+  display: flex;
+  justify-content: space-evenly;
 }
 
 .justify-around {
-    display: flex;
-    justify-content: space-around;
+  display: flex;
+  justify-content: space-around;
 }
 
 .justify-between {
-    display: flex;
-    justify-content: space-between;
+  display: flex;
+  justify-content: space-between;
 }
 
 .align-start {
-    display: flex;
-    align-items: flex-start;
+  display: flex;
+  align-items: flex-start;
 }
 
 .align-center {
-    display: flex;
-    align-items: center;
+  display: flex;
+  align-items: center;
 }
 
 .align-end {
-    display: flex;
-    align-items: flex-end;
+  display: flex;
+  align-items: flex-end;
 }
 
 .group5 {
-    width: 15%;
+  width: 15%;
+  height: 16px;
+  margin-right: 50px;
+
+  .icon2 {
+    width: 18px;
+    height: 18px;
+    margin-right: 5px;
+  }
+
+  .TextGroup2 {
     height: 16px;
-    margin-right: 50px;
+    width: 22px;
+
+    .txt3 {
+      width: 22px;
+      height: 16px;
+      overflow-wrap: break-word;
+      color: rgba(64, 77, 116, 1);
+      font-size: 14px;
+      font-family: PingFangSC-Semibold;
+      text-align: center;
+      white-space: nowrap;
+      line-height: 16px;
+      display: block;
+    }
+  }
+}
+
+.position {
+  background-color: #fff;
+  width: 100%;
+  // height: calc(100vh - 100px);
+
+  .box1 {
+    height: 100%;
+    width: 100%;
+    height: calc(100% - 50px);
+    padding-bottom: 10px;
+    overflow: auto;
+    overflow-x: hidden;
 
-    .icon2 {
-        width: 18px;
-        height: 18px;
-        margin-right: 5px;
+    .van-tabs__line {
+      background-color: #ff3456 !important;
     }
 
-    .TextGroup2 {
-        height: 16px;
-        width: 22px;
+    .van-tab--active .van-tab__text--ellipsis {
+      color: #ff3456;
+    }
 
-        .txt3 {
-            width: 22px;
-            height: 16px;
+    .box2 {
+      height: 64px;
+      background: url(https://lanhu.oss-cn-beijing.aliyuncs.com/SketchPnged210ff8540d1e20d828b0758e650612a9ea018b41f720bede87fea0f933d8d8)
+        100% no-repeat;
+      width: 100%;
+
+      .layer1 {
+        width: 364px;
+        height: 20px;
+        margin: 1px 0 0 7px;
+
+        .group1 {
+          width: 34px;
+          height: 6px;
+          background: url(https://lanhu.oss-cn-beijing.aliyuncs.com/SketchPnga64b2ae35561e96115c75cc6dfc235eedb108ecf95df957be1ef364417a9806e)
+            100% no-repeat;
+          margin-top: 7px;
+        }
+
+        .word1 {
+          width: 38px;
+          height: 17px;
+          overflow-wrap: break-word;
+          color: rgba(81, 84, 106, 1);
+          font-size: 12px;
+          font-family: PingFangSC-Semibold;
+          text-align: right;
+          white-space: nowrap;
+          line-height: 17px;
+          margin-left: 21px;
+          display: block;
+        }
+
+        .group2 {
+          width: 30px;
+          height: 17px;
+          overflow-wrap: break-word;
+          font-size: 0;
+          font-family: PingFangSC-Semibold;
+          text-align: right;
+          white-space: nowrap;
+          line-height: 17px;
+          margin: 3px 0 0 73px;
+
+          .info1 {
+            width: 30px;
+            height: 17px;
             overflow-wrap: break-word;
-            color: rgba(64, 77, 116, 1);
-            font-size: 14px;
+            color: rgba(81, 84, 106, 1);
+            font-size: 12px;
             font-family: PingFangSC-Semibold;
-            text-align: center;
+            text-align: left;
             white-space: nowrap;
-            line-height: 16px;
-            display: block;
-        }
-    }
-}
+            line-height: 17px;
+          }
 
-.position {
-    background-color: #fff;
-    width: 100%;
-    // height: calc(100vh - 100px);
+          .word2 {
+            width: 30px;
+            height: 17px;
+            overflow-wrap: break-word;
+            color: rgba(81, 84, 106, 1);
+            font-size: 12px;
+            font-family: PingFangSC-Medium;
+            text-align: left;
+            white-space: nowrap;
+            line-height: 17px;
+          }
+        }
 
+        .group3 {
+          width: 26px;
+          height: 10px;
+          background: url(https://lanhu.oss-cn-beijing.aliyuncs.com/SketchPng2e68dee6e62554db0f6ac40572f41b7be9cc24d35fc06b24c556fed2b7b18626)
+            100% no-repeat;
+          margin: 5px 0 0 142px;
+        }
+      }
 
-    .box1 {
-        height: 100%;
-        width: 100%;
-        height: calc(100% - 50px);
-        padding-bottom: 10px;
-        overflow: auto;
-        overflow-x: hidden;
+      .layer2 {
+        width: 218px;
+        height: 22px;
+        margin: 9px 0 12px 10px;
 
-        .van-tabs__line {
-            background-color: #FF3456 !important;
+        .label1 {
+          width: 10px;
+          height: 18px;
+          margin-top: 4px;
         }
 
-        .van-tab--active .van-tab__text--ellipsis {
-            color: #FF3456;
+        .txt1 {
+          width: 80px;
+          height: 22px;
+          overflow-wrap: break-word;
+          color: rgba(64, 77, 116, 1);
+          font-size: 16px;
+          font-family: PingFangSC-Medium;
+          text-align: center;
+          white-space: nowrap;
+          line-height: 22px;
+          display: block;
         }
+      }
+    }
 
-        .box2 {
-            height: 64px;
-            background: url(https://lanhu.oss-cn-beijing.aliyuncs.com/SketchPnged210ff8540d1e20d828b0758e650612a9ea018b41f720bede87fea0f933d8d8) 100% no-repeat;
-            width: 100%;
-
-            .layer1 {
-                width: 364px;
-                height: 20px;
-                margin: 1px 0 0 7px;
+    .box3 {
+      background-color: rgba(255, 255, 255, 1);
+      height: 100%;
+      margin-top: 1px;
+      width: 100%;
 
-                .group1 {
-                    width: 34px;
-                    height: 6px;
-                    background: url(https://lanhu.oss-cn-beijing.aliyuncs.com/SketchPnga64b2ae35561e96115c75cc6dfc235eedb108ecf95df957be1ef364417a9806e) 100% no-repeat;
-                    margin-top: 7px;
-                }
+      .main1 {
+        width: 100%;
+        height: 100%;
 
-                .word1 {
-                    width: 38px;
-                    height: 17px;
-                    overflow-wrap: break-word;
-                    color: rgba(81, 84, 106, 1);
-                    font-size: 12px;
-                    font-family: PingFangSC-Semibold;
-                    text-align: right;
-                    white-space: nowrap;
-                    line-height: 17px;
-                    margin-left: 21px;
-                    display: block;
-                }
+        .groove {
+          height: 10px;
+          width: 100%;
+          background-color: #f5f5f5;
+        }
 
-                .group2 {
-                    width: 30px;
-                    height: 17px;
-                    overflow-wrap: break-word;
-                    font-size: 0;
-                    font-family: PingFangSC-Semibold;
-                    text-align: right;
-                    white-space: nowrap;
-                    line-height: 17px;
-                    margin: 3px 0 0 73px;
-
-                    .info1 {
-                        width: 30px;
-                        height: 17px;
-                        overflow-wrap: break-word;
-                        color: rgba(81, 84, 106, 1);
-                        font-size: 12px;
-                        font-family: PingFangSC-Semibold;
-                        text-align: left;
-                        white-space: nowrap;
-                        line-height: 17px;
-                    }
-
-                    .word2 {
-                        width: 30px;
-                        height: 17px;
-                        overflow-wrap: break-word;
-                        color: rgba(81, 84, 106, 1);
-                        font-size: 12px;
-                        font-family: PingFangSC-Medium;
-                        text-align: left;
-                        white-space: nowrap;
-                        line-height: 17px;
-                    }
+        .mod1 {
+          .section1 {
+            margin: 15px 15px;
+
+            .ImageText1 {
+              height: 16px;
+              margin-top: 1px;
+              width: 55%;
+
+              .group4 {
+                width: 40%;
+                height: 16px;
+
+                .layer3 {
+                  width: 16px;
+                  height: 16px;
+                  margin-right: 5px;
+                  background: url("../../assets/home/titleIcon.png") top center
+                    no-repeat;
+                  background-size: 100%;
                 }
 
-                .group3 {
-                    width: 26px;
-                    height: 10px;
-                    background: url(https://lanhu.oss-cn-beijing.aliyuncs.com/SketchPng2e68dee6e62554db0f6ac40572f41b7be9cc24d35fc06b24c556fed2b7b18626) 100% no-repeat;
-                    margin: 5px 0 0 142px;
+                .word3 {
+                  width: auto;
+                  height: 14px;
+                  overflow-wrap: break-word;
+                  color: rgba(64, 77, 116, 1);
+                  font-size: 15px;
+                  font-family: PingFangSC-Semibold;
+                  text-align: left;
+                  white-space: nowrap;
+                  line-height: 15px;
+                  display: block;
                 }
+              }
             }
 
-            .layer2 {
-                width: 218px;
-                height: 22px;
-                margin: 9px 0 12px 10px;
-
-                .label1 {
-                    width: 10px;
-                    height: 18px;
-                    margin-top: 4px;
-                }
+            .main5 {
+              width: auto;
+              cursor: pointer;
 
-                .txt1 {
-                    width: 80px;
-                    height: 22px;
-                    overflow-wrap: break-word;
-                    color: rgba(64, 77, 116, 1);
-                    font-size: 16px;
-                    font-family: PingFangSC-Medium;
-                    text-align: center;
-                    white-space: nowrap;
-                    line-height: 22px;
-                    display: block;
-                }
+              .label2 {
+                width: 20px;
+                height: 20px;
+                margin-right: 5px;
+              }
             }
+          }
         }
 
-        .box3 {
-            background-color: rgba(255, 255, 255, 1);
-            height: 100%;
-            margin-top: 1px;
-            width: 100%;
+        .robotLabelName {
+          width: 25%;
+        }
 
-            .main1 {
-                width: 100%;
-                height: 100%;
+        .mod3 {
+          background-color: rgba(255, 255, 255, 1);
+          z-index: 24;
+          height: 350px;
+          width: 100%;
+          position: relative;
+        }
 
-                .groove {
-                    height: 10px;
-                    width: 100%;
-                    background-color: #f5f5f5;
-                }
+        .mod5 {
+          background-color: rgba(255, 255, 255, 1);
+          z-index: 84;
+          height: 350px;
+          width: 100%;
+          position: relative;
+        }
 
-                .mod1 {
-
-                    .section1 {
-                        margin: 15px 15px;
-
-                        .ImageText1 {
-                            height: 16px;
-                            margin-top: 1px;
-                            width: 55%;
-
-                            .group4 {
-                                width: 40%;
-                                height: 16px;
-
-                                .layer3 {
-                                    width: 16px;
-                                    height: 16px;
-                                    margin-right: 5px;
-                                    background: url("../../assets/home/titleIcon.png") top center no-repeat;
-                                    background-size: 100%;
-                                }
-
-                                .word3 {
-                                    width: auto;
-                                    height: 14px;
-                                    overflow-wrap: break-word;
-                                    color: rgba(64, 77, 116, 1);
-                                    font-size: 15px;
-                                    font-family: PingFangSC-Semibold;
-                                    text-align: left;
-                                    white-space: nowrap;
-                                    line-height: 15px;
-                                    display: block;
-                                }
-                            }
-                        }
-
-                        .main5 {
-                            width: auto;
-                            cursor: pointer;
-
-                            .label2 {
-                                width: 20px;
-                                height: 20px;
-                                margin-right: 5px;
-                            }
-                        }
-                    }
-                }
+        .mod9 {
+          background-color: rgba(255, 255, 255, 1);
+          z-index: 156;
+          height: 350px;
+          width: 100%;
+          position: relative;
+        }
 
-                .robotLabelName {
-                    width: 25%;
-                }
+        .mod11 {
+          background-color: rgba(255, 255, 255, 1);
+          z-index: 217;
+          height: 350px;
+          width: 100%;
+          position: relative;
+        }
+      }
+    }
 
-                .mod3 {
-                    background-color: rgba(255, 255, 255, 1);
-                    z-index: 24;
-                    height: 350px;
-                    width: 100%;
-                    position: relative;
-                }
+    .tradingBox1 {
+      .searchRow {
+        margin: 18px 15px;
 
-                .mod5 {
-                    background-color: rgba(255, 255, 255, 1);
-                    z-index: 84;
-                    height: 350px;
-                    width: 100%;
-                    position: relative;
-                }
+        .bd3 {
+          width: 87px;
+          height: 16px;
 
-                .mod9 {
-                    background-color: rgba(255, 255, 255, 1);
-                    z-index: 156;
-                    height: 350px;
-                    width: 100%;
-                    position: relative;
-                }
+          .outer4 {
+            width: 16px;
+            height: 16px;
+            background: url("../../assets/home/titleIcon.png") top center
+              no-repeat;
+            background-size: 100%;
+          }
+
+          .txt2 {
+            width: 65px;
+            height: 15px;
+            overflow-wrap: break-word;
+            color: rgba(64, 77, 116, 1);
+            font-size: 15px;
+            font-family: PingFangSC-Semibold;
+            text-align: left;
+            white-space: nowrap;
+            line-height: 15px;
+            display: block;
+          }
+        }
 
-                .mod11 {
-                    background-color: rgba(255, 255, 255, 1);
-                    z-index: 217;
-                    height: 350px;
-                    width: 100%;
-                    position: relative;
-                }
-            }
+        .main5 {
+          width: auto;
+          cursor: pointer;
+
+          .label2 {
+            width: 20px;
+            height: 20px;
+            margin-right: 5px;
+          }
         }
+      }
     }
+  }
 
-    .van-field__label {
-        width: auto;
-    }
+  .van-field__label {
+    width: auto;
+  }
 
-    .van-field__control {
-        width: 70%;
-    }
+  .van-field__control {
+    width: 70%;
+  }
 
-    .van-field__body {
-        width: 100%;
-    }
+  .van-field__body {
+    width: 100%;
+  }
 
-    .van-calendar__day--start-end {
-        background-color: #FF3456;
-    }
+  .van-calendar__day--start-end {
+    background-color: #ff3456;
+  }
 
-    .van-calendar__selected-day {
-        background-color: #FF3456;
-    }
+  .van-calendar__selected-day {
+    background-color: #ff3456;
+  }
 
-    .van-calendar__day--start {
-        background-color: #FF3456;
-    }
+  .van-calendar__day--start {
+    background-color: #ff3456;
+  }
 
-    .van-calendar__day--middle {
-        color: #FF3456;
-    }
+  .van-calendar__day--middle {
+    color: #ff3456;
+  }
 
-    .van-calendar__day--end {
-        background-color: #FF3456;
-    }
+  .van-calendar__day--end {
+    background-color: #ff3456;
+  }
 
-    .van-calendar__confirm {
-        border-color: #FF3456;
-        background-color: #FF3456;
-    }
-}
+  .van-calendar__confirm {
+    border-color: #ff3456;
+    background-color: #ff3456;
+  }
+}

+ 7 - 41
src/styles/user/index.less

@@ -165,17 +165,6 @@
                         top: 0.45rem;
                     }
 
-                    &.joinPayMchIcon::after {
-                        content: "";
-                        position: absolute;
-                        background: #fff url("../../assets/user/joinPayMchIcon.png") top center no-repeat;
-                        background-size: 100%;
-                        width: 0.55rem;
-                        height: 0.55rem;
-                        right: 0.2rem;
-                        top: 0.4rem;
-                    }
-
                     &.announcementIcon::after {
                         content: "";
                         position: absolute;
@@ -187,44 +176,21 @@
                         top: 0.4rem;
                     }
 
-
-                    &.shandeMchIcon::after {
+                    &.buyConfIcon::after {
                         content: "";
                         position: absolute;
-                        background: #fff url("../../assets/user/shandeMchIcon.png") top center no-repeat;
+                        background: #fff url("../../assets/user/payerIcon.png") top center no-repeat;
                         background-size: 100%;
                         width: 0.55rem;
                         height: 0.55rem;
                         right: 0.2rem;
                         top: 0.4rem;
                     }
-
-                    &.bindWechatIcon::after {
-                        content: "";
-                        position: absolute;
-                        background: #fff url("../../assets/user/bindWechatIcon.png") top center no-repeat;
-                        background-size: 100%;
-                        width: 0.55rem;
-                        height: 0.55rem;
-                        right: 0.2rem;
-                        top: 0.4rem;
-                    }
-
-                    &.modifyLocIcon::after {
-                        content: "";
-                        position: absolute;
-                        background: #fff url("../../assets/user/modifyLocIcon.png") top center no-repeat;
-                        background-size: 100%;
-                        width: 0.55rem;
-                        height: 0.55rem;
-                        right: 0.2rem;
-                        top: 0.4rem;
-                    }
-
-                    &.syncOldDataIcon::after {
+                    
+                    &.sellConfIcon::after {
                         content: "";
                         position: absolute;
-                        background: #fff url("../../assets/user/syncOldDataIcon.png") top center no-repeat;
+                        background: #fff url("../../assets/user/payeeIcon.png") top center no-repeat;
                         background-size: 100%;
                         width: 0.55rem;
                         height: 0.55rem;
@@ -265,10 +231,10 @@
                         top: 0.4rem;
                     }
 
-                    &.loginOutIcon::after {
+                    &.logoutIcon::after {
                         content: "";
                         position: absolute;
-                        background: #fff url("../../assets/user/loginOut.png") top center no-repeat;
+                        background: #fff url("../../assets/user/logoutIcon.png") top center no-repeat;
                         background-size: 100%;
                         width: 0.55rem;
                         height: 0.55rem;

+ 10 - 19
src/utils/config.js

@@ -1,25 +1,16 @@
 let baseURL;
 // 开发环境
-if (process.env.NODE_ENV === 'development') {
-    // 测试的
-    // baseURL = 'http://szwltest.sunzee.com.cn:49002/'
-    // baseURL = 'https://szwl.sunzee.com.cn/'
-    // baseURL = 'http://120.25.151.99:49002/'
+if (process.env.NODE_ENV === "development") {
+  // 股票dev
+  // baseURL = "http://120.25.151.99:49022"
 
-    // 正式的
-    baseURL = 'https://sz.sunzee.com.cn/'
-    
-    // 编译环境
-    // baseURL = 'http://127.0.0.1:8080/'
-    // baseURL = 'https://xavi.c1.sidoc.cn'
+  // prod
+  baseURL = "https://sz.sunzee.com.cn/";
 } else {
-    // 判断当前页面的主机名是否包含 'szwltest.sunzee.com.cn'。如果包含,则条件成立(即为 true);否则,条件不成立
-    if (window.location.host.indexOf('szwltest.sunzee.com.cn') !== -1) {
-        baseURL = 'https://szwl.sunzee.com.cn/'
-    } else {
-        baseURL = 'https://sz.sunzee.com.cn/'
-    }
+  baseURL = "https://sz.sunzee.com.cn/";
+  // baseURL = 'https://szwl.sunzee.com.cn/'
+  // baseURL = "http://120.25.151.99:49022"
 }
 export default {
-    baseURL,
-}
+  baseURL,
+};

+ 32 - 0
src/views/buyOrSell/BuyConf.vue

@@ -0,0 +1,32 @@
+<script setup>
+import { ref } from 'vue'
+import sHeader from "@/components/SimpleHeader";
+const value = ref([
+    { url: 'https://fastly.jsdelivr.net/npm/@vant/assets/leaf.jpeg' },
+]);
+</script>
+
+<template>
+    <div class="buyConf">
+        <s-header :name="'交易确认'" :noback="false"></s-header>
+        
+        <!-- 买家操作 -->
+        <van-form @submit="onSubmit">
+            <van-cell-group inset>
+                <van-field name="uploader" label="买家上传付款截图">
+                    <template #input>
+                        <van-uploader v-model="value" />
+                    </template>
+                </van-field>
+            </van-cell-group>
+            <div style="margin: 16px;">
+                <van-button round block type="primary" native-type="submit">
+                    通知卖家
+                </van-button>
+            </div>
+        </van-form>
+
+    </div>
+</template>
+
+<style scoped></style>

+ 174 - 0
src/views/buyOrSell/BuyConfList.vue

@@ -0,0 +1,174 @@
+<template>
+    <div class="buyConfList">
+        <s-header name="买家确认列表" :noback="false"></s-header>
+
+        <div class="headCon l-flex-between o-plr-20 o-pt-26 o-pb-12 kBordBott">
+            <div class="l-flex-RC">
+                <div class="ruleIcon"></div>
+                <div class="c-text-color c-text-b c-text-15">
+                    共
+                    <span class="c-text-20" style="color: #df5e4c">{{ patchTotal }}</span>
+                    条记录
+                </div>
+            </div>
+        </div>
+
+        <div class="contentCon">
+            <van-pull-refresh disabled v-model="refreshing" @refresh="onRefresh">
+                <div v-for="(item, index) in tableData" :key="index">
+                    <br />
+                    <van-cell-group inset @click="toSetupAccount(item)">
+                        <van-cell>
+                            <template #title>
+                                <div class="l-flex-RC">
+                                    <span class="c-color c-text-12">姓名:</span>
+                                    <span class="c-text-color c-text-12">{{ item.actualName }}</span>
+                                </div>
+                            </template>
+                            <template #label>
+                                <div class="l-flex-RC">
+                                    <span class="c-color c-text-12">手机号:</span>
+                                    <span class="c-text-color c-text-12">{{ item.phone }}</span>
+                                </div>
+                                <div class="l-flex-RC">
+                                    <span class="c-color c-text-12">支付宝账号:</span>
+                                    <span class="c-text-color c-text-12">{{ item.payeeCode }}</span>
+                                </div>
+                                <div class="l-flex-RC">
+                                    <span class="c-color c-text-12">部门号:</span>
+                                    <span class="c-text-color c-text-12">{{ getDeptName(item.deptId) }}</span>
+                                </div>
+                                <div class="l-flex-RC">
+                                    <span class="c-color c-text-12">申请时间:</span>
+                                    <span class="c-text-color c-text-12">{{ Format_time(item.createTime) }}</span>
+                                </div>
+                                <!-- 确认状态 status:0 未确认...,1 已确认✓ -->
+                                <div class="itemRow" style="display: flex; justify-content: flex-end">
+                                    <span v-if="item.status === '0' && user.type > 1" style="color: #FFA500"> {{
+            $t('taskMessage.toBeApproved') }}</span>
+                                    <span v-if="item.status === '1'" style="color: #1989fa"> {{
+            $t('taskMessage.adopt') }}</span>
+                                    <span v-if="item.status === '2'" style="color: #ff0000"> {{
+                                        $t('taskMessage.fail') }}</span>
+                                </div>
+
+                            </template>
+                            <br />
+
+                        </van-cell>
+                    </van-cell-group>
+                </div>
+
+            </van-pull-refresh>
+        </div>
+
+
+    </div>
+</template>
+
+<script>
+import sHeader from "@/components/SimpleHeader";
+import { ref, onMounted, toRefs, reactive } from "vue";
+import { styleUrl } from "../../common/js/utils";
+import { useRouter } from "vue-router";
+import { getPageUserApply } from "@/service/taskAccount";
+import { Format_time } from "@/common/js/utils";
+
+export default {
+    components: { sHeader },
+    setup() {
+
+        onMounted(() => {
+            // 加载样式
+            styleUrl('taskAccount');
+            onRefresh();
+        });
+
+        // 多少条规则
+        const patchTotal = ref(0);
+        // 分页
+        const pageNo = ref(1);
+        const pageSize = ref(10);
+        let ruleData = reactive({
+            tableData: [],
+        });
+        // 上拉刷新
+        const loading = ref(true);
+        const finished = ref(false);
+        // 下拉刷新
+        const onRefresh = (idx) => {
+            ruleData.tableData = [];
+            // 解决请求两次问题
+            if (!idx) {
+                finished.value = false;
+            }
+            loading.value = true;
+            // 初始化分页
+            pageNo.value = 1;
+            pageSize.value = 10;
+            getList();
+        };
+
+        // 上拉加载
+        const onLoad = () => {
+            pageNo.value++;
+            getList();
+        };
+        // 下拉刷新
+        const refreshing = ref(false);
+        const getList = () => {
+            let param = {
+                current: pageNo.value,
+                size: pageSize.value,
+            };
+            getPageUserApply(param).then((res) => {
+                const { data } = res.data;
+                refreshing.value = false;
+                ruleData.tableData.push(...data.records);
+                // 加载状态结束
+                loading.value = false;
+                // 总共
+                patchTotal.value = data.total;
+                if (ruleData.tableData.length >= data.total) {
+                    finished.value = true;
+                }
+            });
+        };
+
+
+        // 获取部门名称
+        // const getDeptName = computed(() => {
+        //     const deptId = {
+        //         '0': '研发部',
+        //         '1': '行政部',
+        //     };
+        //     return (item) => deptId[item.deptId] || '';
+        // })
+
+        const router = useRouter();
+
+        const setupAccountObj = ref({});
+        // 点击卡片,跳转对应的审核
+        const toTaskAccount = (item) => {
+            setupAccountObj.value = item;
+            router.push("/taskAccount");
+        }
+
+        return {
+            patchTotal,
+            onRefresh,
+            onLoad,
+            getList,
+            loading,
+            finished,
+            ...toRefs(ruleData),
+            refreshing,
+            // getTargetAreasText,
+            Format_time,
+            toTaskAccount
+        };
+    }
+};
+</script>
+
+<style lang="less" scoped></style>

+ 61 - 0
src/views/buyOrSell/BuyOrSellIndex.vue

@@ -0,0 +1,61 @@
+<script setup>
+import { ref } from 'vue';
+import sHeader from "@/components/SimpleHeader";
+const buyNum = ref('');
+const unitPrice = ref('');
+const onSubmitBuy = (values) => {
+    console.log('submitBuy', values);
+};
+const onSubmitSell = (values) => {
+    console.log('submitSell', values);
+};
+
+
+</script>
+
+<template>
+    <div class="buyOrSellIndex">
+        <s-header :name="'买卖'" :noback="false"></s-header>
+        <div style="height: 200px;">
+            <van-tabs v-model:active="active" animated>
+                <van-tab><template #title> <van-icon name="points" />买入 </template>
+                    <van-form @submit="onSubmitBuy">
+                        <van-cell-group inset>
+                            <van-field v-model="buyNum" type="digit" name="买入量" label="买入量" placeholder="买入量"
+                                :rules="[{ required: true, message: '请填写买入量' }]" />
+
+                            <van-field v-model="unitPrice" type="number" name="单价" label="单价" placeholder="每股单价"
+                                :rules="[{ required: true, message: '请填写单价' }]" />
+                        </van-cell-group>
+                        <div style="margin: 16px;">
+                            <van-button round block type="warning" native-type="submit">
+                                提交
+                            </van-button>
+                        </div>
+                    </van-form>
+
+                </van-tab>
+                <van-tab><template #title> <van-icon name="after-sale" />卖出 </template>
+
+                    <van-form @submit="onSubmitSell">
+                        <van-cell-group inset>
+                            <van-field v-model="buyNum" type="digit" name="买入量" label="买入量" placeholder="买入量"
+                                :rules="[{ required: true, message: '请填写买入量' }]" />
+
+                            <van-field v-model="unitPrice" type="number" name="单价" label="单价" placeholder="每股单价"
+                                :rules="[{ required: true, message: '请填写单价' }]" />
+                        </van-cell-group>
+                        <div style="margin: 16px;">
+                            <van-button round block type="success" native-type="submit">
+                                提交
+                            </van-button>
+                        </div>
+                    </van-form>
+
+                </van-tab>
+            </van-tabs>
+        </div>
+    </div>
+</template>
+
+<style scoped></style>

+ 25 - 0
src/views/buyOrSell/SellConf.vue

@@ -0,0 +1,25 @@
+<script setup>
+import sHeader from "@/components/SimpleHeader";
+</script>
+
+<template>
+    <div class="sellConf">
+        <s-header :name="'交易确认'" :noback="false"></s-header>
+
+        <!-- 卖家操作 -->
+        <van-form @submit="onSubmit">
+            <van-cell-group inset>
+                <!-- 买家的付款截图 -->
+                <van-image width="100" height="100" src="https://fastly.jsdelivr.net/npm/@vant/assets/cat.jpeg" />
+            </van-cell-group>
+            <div style="margin: 16px;">
+                <van-button round block type="primary" native-type="submit">
+                    确认收款
+                </van-button>
+            </div>
+        </van-form>
+
+    </div>
+</template>
+
+<style scoped></style>

+ 174 - 0
src/views/buyOrSell/SellConfList.vue

@@ -0,0 +1,174 @@
+<template>
+    <div class="sellConfList">
+        <s-header name="卖家确认列表" :noback="false"></s-header>
+
+        <div class="headCon l-flex-between o-plr-20 o-pt-26 o-pb-12 kBordBott">
+            <div class="l-flex-RC">
+                <div class="ruleIcon"></div>
+                <div class="c-text-color c-text-b c-text-15">
+                    共
+                    <span class="c-text-20" style="color: #df5e4c">{{ patchTotal }}</span>
+                    条记录
+                </div>
+            </div>
+        </div>
+
+        <div class="contentCon">
+            <van-pull-refresh disabled v-model="refreshing" @refresh="onRefresh">
+                <div v-for="(item, index) in tableData" :key="index">
+                    <br />
+                    <van-cell-group inset @click="toSetupAccount(item)">
+                        <van-cell>
+                            <template #title>
+                                <div class="l-flex-RC">
+                                    <span class="c-color c-text-12">姓名:</span>
+                                    <span class="c-text-color c-text-12">{{ item.actualName }}</span>
+                                </div>
+                            </template>
+                            <template #label>
+                                <div class="l-flex-RC">
+                                    <span class="c-color c-text-12">手机号:</span>
+                                    <span class="c-text-color c-text-12">{{ item.phone }}</span>
+                                </div>
+                                <div class="l-flex-RC">
+                                    <span class="c-color c-text-12">支付宝账号:</span>
+                                    <span class="c-text-color c-text-12">{{ item.payeeCode }}</span>
+                                </div>
+                                <div class="l-flex-RC">
+                                    <span class="c-color c-text-12">部门号:</span>
+                                    <span class="c-text-color c-text-12">{{ getDeptName(item.deptId) }}</span>
+                                </div>
+                                <div class="l-flex-RC">
+                                    <span class="c-color c-text-12">申请时间:</span>
+                                    <span class="c-text-color c-text-12">{{ Format_time(item.createTime) }}</span>
+                                </div>
+                                <!-- 确认状态 status:0 未确认...,1 已确认✓ -->
+                                <div class="itemRow" style="display: flex; justify-content: flex-end">
+                                    <span v-if="item.status === '0' && user.type > 1" style="color: #FFA500"> {{
+            $t('taskMessage.toBeApproved') }}</span>
+                                    <span v-if="item.status === '1'" style="color: #1989fa"> {{
+            $t('taskMessage.adopt') }}</span>
+                                    <span v-if="item.status === '2'" style="color: #ff0000"> {{
+                                        $t('taskMessage.fail') }}</span>
+                                </div>
+
+                            </template>
+                            <br />
+
+                        </van-cell>
+                    </van-cell-group>
+                </div>
+
+            </van-pull-refresh>
+        </div>
+
+
+    </div>
+</template>
+
+<script>
+import sHeader from "@/components/SimpleHeader";
+import { ref, onMounted, toRefs, reactive } from "vue";
+import { styleUrl } from "../../common/js/utils";
+import { useRouter } from "vue-router";
+import { getPageUserApply } from "@/service/taskAccount";
+import { Format_time } from "@/common/js/utils";
+
+export default {
+    components: { sHeader },
+    setup() {
+
+        onMounted(() => {
+            // 加载样式
+            styleUrl('taskAccount');
+            onRefresh();
+        });
+
+        // 多少条规则
+        const patchTotal = ref(0);
+        // 分页
+        const pageNo = ref(1);
+        const pageSize = ref(10);
+        let ruleData = reactive({
+            tableData: [],
+        });
+        // 上拉刷新
+        const loading = ref(true);
+        const finished = ref(false);
+        // 下拉刷新
+        const onRefresh = (idx) => {
+            ruleData.tableData = [];
+            // 解决请求两次问题
+            if (!idx) {
+                finished.value = false;
+            }
+            loading.value = true;
+            // 初始化分页
+            pageNo.value = 1;
+            pageSize.value = 10;
+            getList();
+        };
+
+        // 上拉加载
+        const onLoad = () => {
+            pageNo.value++;
+            getList();
+        };
+        // 下拉刷新
+        const refreshing = ref(false);
+        const getList = () => {
+            let param = {
+                current: pageNo.value,
+                size: pageSize.value,
+            };
+            getPageUserApply(param).then((res) => {
+                const { data } = res.data;
+                refreshing.value = false;
+                ruleData.tableData.push(...data.records);
+                // 加载状态结束
+                loading.value = false;
+                // 总共
+                patchTotal.value = data.total;
+                if (ruleData.tableData.length >= data.total) {
+                    finished.value = true;
+                }
+            });
+        };
+
+
+        // 获取部门名称
+        // const getDeptName = computed(() => {
+        //     const deptId = {
+        //         '0': '研发部',
+        //         '1': '行政部',
+        //     };
+        //     return (item) => deptId[item.deptId] || '';
+        // })
+
+        const router = useRouter();
+
+        const setupAccountObj = ref({});
+        // 点击卡片,跳转对应的审核
+        const toTaskAccount = (item) => {
+            setupAccountObj.value = item;
+            router.push("/taskAccount");
+        }
+
+        return {
+            patchTotal,
+            onRefresh,
+            onLoad,
+            getList,
+            loading,
+            finished,
+            ...toRefs(ruleData),
+            refreshing,
+            // getTargetAreasText,
+            Format_time,
+            toTaskAccount
+        };
+    }
+};
+</script>
+
+<style lang="less" scoped></style>

+ 71 - 23
src/views/login/Register.vue

@@ -8,9 +8,9 @@
           :placeholder="$t('register.usernamePlaceholder')"
           :rules="[{ pattern: /^[a-zA-Z0-9]+$/, message: $t('register.usernameRequired') }]" />
         <br>
-        <van-field v-model="actualName" name="actualName" :label="$t('register.nameLabel')" placeholder="请输入真实姓名"
+        <!-- <van-field v-model="actualName" name="actualName" :label="$t('register.nameLabel')" placeholder="请输入真实姓名"
           :rules="[{ required: true, message: '请输入真实姓名' }]" />
-        <br>
+        <br> -->
         <van-field v-model="password" name="password" type="password" :label="$t('register.passwordLabel')"
           :placeholder="$t('register.passwordPlaceholder')"
           :rules="[{ required: true, message: $t('register.passwordRequired') }]" />
@@ -21,7 +21,7 @@
         <br>
         <van-field v-model="identityCard" name="identityCard" label="身份证号" placeholder="请输入身份证号码"
           :rules="[{ validator, message: '请输入合法的身份证号码' }]" /><br />
-        <!-- 收款账号payee_code不可修改 -->
+        <!-- 收款账号 payeeCode 不可修改 -->
         <van-field v-model="payeeCode" name="payeeCode" label="收款账号" placeholder="请输入支付宝账户(不可修改)"
           :rules="[{ required: true, message: '请输入支付宝账户' }]" />
         <br />
@@ -32,9 +32,11 @@
             :rules="[{ required: true, pattern: /^1[3456789]\d{9}$/, message: $t('register.phoneRequired') }]" />
           <br />
           <!-- 短信验证码 -->
-          <van-field v-model="code" name="code" :label="$t('register.codeLabel')"
+          <!-- <van-field v-model="code" name="code" :label="$t('register.codeLabel')"
             :placeholder="$t('register.codePlaceholder')"
-            :rules="[{ required: true, message: $t('register.codeRequired') }]">
+            :rules="[{ required: true, message: $t('register.codeRequired') }]"> -->
+            <van-field v-model="code" name="code" :label="$t('register.codeLabel')"
+            :placeholder="$t('register.codePlaceholder')">
             <template #button>
               <van-button size="small" type="primary" @click="seedVerCode()"
                 :disabled="time !== 0 || phone.length === 0" :loading=reqApi :loading-text="$t('register.sending')">{{
@@ -49,19 +51,27 @@
         <van-field v-model="email" name="email" label="邮箱地址" placeholder="请输入邮箱地址"
           :rules="[{ required: true, message: '请输入邮箱地址' }]" /><br />
 
-        <!-- 入职日期hire_date -->
+        <!-- 入职日期 hireDate -->
         <van-field v-model="hireDate" is-link readonly name="hireDate" label="入职日期" placeholder="请选择入职日期"
           @click="showPicker = true" />
         <van-popup v-model:show="showPicker" position="bottom">
           <van-date-picker @confirm="onConfirm" @cancel="showPicker = false"></van-date-picker>
         </van-popup>
         <br />
-        <!-- 部门名称dept_name -->
-        <van-field v-model="deptName" name="deptName" label="部门名称" placeholder="请输入部门名称"
-          :rules="[{ required: true, message: '请输入部门名称' }]" /><br />
-        <!-- 岗位名称job_name -->
-        <van-field v-model="jobName" name="jobName" label="岗位名称" placeholder="请输入岗位名称"
-          :rules="[{ required: true, message: '请输入岗位名称' }]" />
+        <!-- 部门id deptName -->
+        <van-field v-model="deptName" is-link readonly name="deptName" label="部门名称" placeholder="点击选择部门名称"
+          @click="showDeptPicker = true" />
+        <van-popup v-model:show="showDeptPicker" position="bottom">
+          <van-picker :columns="deptColumns" @confirm="onDeptConfirm" @cancel="showDeptPicker = false" />
+        </van-popup>
+
+        <!-- 岗位id jobName -->
+        <van-field v-model="jobName" is-link readonly name="jobName" label="岗位名称" placeholder="点击选择岗位名称"
+          @click="showJobPicker = true" />
+        <van-popup v-model:show="showJobPicker" position="bottom">
+          <van-picker :columns="jobColumns" @confirm="onJobConfirm" @cancel="showJobPicker = false" />
+        </van-popup>
+
         <!-- 提交验证信息 -->
         <van-button round type="primary" class="register" native-type="submit">{{
       $t('register.registerButton')
@@ -79,7 +89,7 @@
 import md5 from 'js-md5';
 import { ref, onMounted, reactive, toRefs } from 'vue';
 import { showFailToast, showToast } from 'vant';
-import { sentRegisterCode, tAdminSave } from '@/service/login/register';
+import { sentRegisterCode, addUserApply } from '@/service/login/register';
 import sHeader from '@/components/SimpleHeader';
 import logiLogoImgUrl from "@/assets/login/logo.png";
 import { useRouter } from 'vue-router';
@@ -92,7 +102,7 @@ export default {
     const { t } = useI18n();
     const active = ref(0);
     const userName = ref('');
-    const actualName = ref('');
+    // const actualName = ref('');
     const password = ref('');
     const passwordCheck = ref('');
     const identityCard = ref('');
@@ -101,13 +111,43 @@ export default {
     const code = ref('');
     const email = ref('');
     const hireDate = ref('');
-    const deptName = ref('');
-    const jobName = ref('');
     const verifyRef = ref(null);
     const verCodeTime = reactive({
       time: 0
     });
 
+    const deptId = ref('');
+    const deptName = ref('');
+    const showDeptPicker = ref(false);
+    const deptColumns = [
+      { text: '研发部', value: '1' },
+      { text: '生产部', value: '2' },
+      { text: '营销部', value: '3' },
+      { text: '售后', value: '4' },
+      { text: '行政部', value: '5' },
+    ];
+    const onDeptConfirm = ({ selectedOptions }) => {
+      deptName.value = selectedOptions[0]?.text;
+      deptId.value = selectedOptions[0]?.value;
+      showDeptPicker.value = false;
+    };
+
+    const jobId = ref('');
+    const jobName = ref('');
+    const showJobPicker = ref(false);
+    const jobColumns = [
+      { text: '电器工程师', value: '1' },
+      { text: '结构工程师', value: '2' },
+      { text: '软件工程师', value: '3' },
+      { text: '售后', value: '4' },
+      { text: '财务', value: '5' },
+    ];
+    const onJobConfirm = ({ selectedOptions }) => {
+      jobName.value = selectedOptions[0]?.text;
+      jobId.value = selectedOptions[0]?.value;
+      showJobPicker.value = false;
+    };
+
     const router = useRouter();
     const reqApi = ref(false);
 
@@ -125,9 +165,10 @@ export default {
         showFailToast(t('register.twoTypedDiff'));
         return false;
       }
-      const { data } = await tAdminSave({
+      console.log(jobId.value, '哈哈哈', deptId.value);
+      const { data } = await addUserApply({
         userName: userName.value,
-        actualName: actualName.value,
+        // actualName: actualName.value,
         password: md5(password.value),
         identityCard: identityCard.value,
         payeeCode: payeeCode.value,
@@ -135,8 +176,8 @@ export default {
         code: code.value,
         email: email.value,
         hireDate: hireDate.value,
-        deptName: deptName.value,
-        jobName: jobName.value
+        jobId: jobId.value,
+        deptId: deptId.value,
       });
 
       if (data.code === '00000') {
@@ -200,7 +241,7 @@ export default {
       ...toRefs(verCodeTime),
       logiLogoImgUrl,
       userName,
-      actualName,
+      // actualName,
       password,
       passwordCheck,
       phone,
@@ -218,10 +259,17 @@ export default {
       showPicker,
       identityCard,
       payeeCode,
+      hireDate,
+      deptId,
       deptName,
+      jobId,
       jobName,
-      hireDate
-
+      showDeptPicker,
+      deptColumns,
+      onDeptConfirm,
+      showJobPicker,
+      jobColumns,
+      onJobConfirm
     }
   },
   components: { sHeader }

+ 11 - 39
src/views/position/PositionIndex.vue

@@ -4,51 +4,23 @@
     <div class="box1 flex-col">
       <s-header :name="$t('position.machineSalesRanking')" :noback="true" :isFixed="false"></s-header>
 
-      <div class="box3 flex-col">
-        <div class="main1 flex-col">
-          <!-- 销售排行榜 搜索按钮 -->
-          <div class="mod1 flex-col">
-            <div class="section1 flex-row justify-between">
-              <div class="ImageText1 flex-col">
-                <div class="group4 flex-row justify-between">
-                  <div class="layer3 flex-col"></div>
-                  <span class="word3 flex-col">
-                    {{ $t("position.machineSalesRanking") }}
-                  </span>
-                </div>
-              </div>
+      <div class="tradingBox1 flex-col">
+        <div class="searchRow flex-row justify-between">
+          <div class="flex-col">
+            <div class="flex-row justify-between bd3">
+              <div class="flex-col outer4"></div>
+              <span class="flex-col txt2">持仓情况</span>
             </div>
           </div>
+        </div>
+      </div>
 
-          <img class="img1" referrerpolicy="no-referrer" src="@/assets/line.png" />
-          
-          <!-- 日,周,月,年销售排行-灰线 -->
-          <div class="groove"></div>
+      <img class="img1" referrerpolicy="no-referrer" src="../../assets/line.png" />
 
+      <div class="groove"></div>
 
-          <!-- 运行总数,总设备数 -->
-          <!-- <div class="o-plr-15 o-ptb-20">
-            <div class="bd1 flex-col">
-              <div class="box2 l-f l-flex-c l-flex-j-a">
-                <div @click="eqeStatusClk(1)" class="TextGroup3 flex-col">
-                  <div class="group1 flex-col justify-between align-center">
-                    <span class="word4">{{ equipStatus.machineUseNum }}</span>
-                    <span class="info1">{{ $t("trading.totalNumberOfRuns") }}</span>
-                  </div>
-                </div>
-                <div @click="eqeStatusClk('')" class="TextGroup4 flex-col">
-                  <div class="main6 flex-col justify-between align-center">
-                    <span class="word5">{{ equipStatus.machineTotalNum }}</span>
-                    <span class="word6">{{ $t("trading.totalNumberOfEquipment") }}</span>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div> -->
 
-          hahahha
-        </div>
-      </div>
+      
     </div>
   </div>
 </template>

+ 1 - 1
src/views/taskMessage/SetupAccount.vue

@@ -57,7 +57,7 @@ const onSubmit = async () => {
 </script>
 
 <template>
-  <!-- 用户信息审批-->
+  <!-- 账号申请审批-->
   <div class="fife" style="background-color:#ebedf0">
     <s-header :name="'用户信息审批'" :noback="false"></s-header>
     <br>

+ 4 - 4
src/views/taskMessage/TaskAccountList.vue

@@ -71,7 +71,7 @@ import sHeader from "@/components/SimpleHeader";
 import { ref, onMounted, toRefs, reactive } from "vue";
 import { styleUrl } from "../../common/js/utils";
 import { useRouter } from "vue-router";
-import { getPatchPage } from "@/service/taskAccount";
+import { getPageUserApply } from "@/service/taskAccount";
 import { Format_time } from "@/common/js/utils";
 
 export default {
@@ -88,7 +88,7 @@ export default {
         const patchTotal = ref(0);
         // 分页
         const pageNo = ref(1);
-        const pageSize = ref(20);
+        const pageSize = ref(10);
         let ruleData = reactive({
             tableData: [],
         });
@@ -105,7 +105,7 @@ export default {
             loading.value = true;
             // 初始化分页
             pageNo.value = 1;
-            pageSize.value = 20;
+            pageSize.value = 10;
             getList();
         };
 
@@ -121,7 +121,7 @@ export default {
                 current: pageNo.value,
                 size: pageSize.value,
             };
-            getPatchPage(param).then((res) => {
+            getPageUserApply(param).then((res) => {
                 const { data } = res.data;
                 refreshing.value = false;
                 ruleData.tableData.push(...data.records);

+ 3 - 2
src/views/taskMessage/index.vue

@@ -3,13 +3,14 @@
   <div class="taskMessagePage flex-col">
     <s-header :name="$t('taskMessage.taskMessage')" :noback="false"></s-header>
     <div class="taskMessageBox flex-col">
-      <!-- 账号申请审批 -->
-      <div class="taskListRow flex-col" @click="pushPageList('/taskAccount')">
+      <!-- 账号申请 -->
+      <div class="taskListRow flex-col" @click="pushPageList('/taskAccountList')">
         <div class="taskIcon retailIcon"></div>
         <div class="taskRight">
           <div class="taskTitle">账号申请审批</div>
         </div>
       </div>
+
     </div>
   </div>
 </template>

+ 2 - 2
src/views/trading/TradingIndex.vue

@@ -458,6 +458,6 @@ export default {
 </script>
 
 <style lang="less" scoped>
-@import "../../common/style/common";
-@import "../../styles/trading/index";
+@import "../../common/style/common.less";
+@import "../../styles/trading/index.less";
 </style>

+ 60 - 33
src/views/user/UserIndex.vue

@@ -2,31 +2,40 @@
   <div class="userPage flex-col">
     <div class="userPageBox">
       <s-header :name="sys ? sys.title : $t('user.personalCenter')" :noback="true" :isFixed="false"></s-header>
+
       <div class="userBaseBox">
+        <!-- 基本信息 -->
         <div class="baseRow flex-row justify-between">
           <div class="group2 flex-col"></div>
           <span class="baseText">{{ $t("user.essentialInformation") }}</span>
         </div>
+
         <div class="userMessage flex-row justify-between">
-          <!-- 系统id -->
+          <!-- 初始份额 stockNum -->
           <div class="userId">
-            <p class="userText">{{ accountDetail.managerId }}</p>
-            <p class="userText">{{ $t("user.systemId") }}</p>
+            <p class="userText">{{ accountDetail.stockNum }}</p>
+            <p class="userText">初始份额</p>
           </div>
           <!-- 竖线 -->
           <div class="userLine"></div>
-          <!-- 用户名 -->
+          <!-- 会员等级 level -->
           <div class="userId">
-            <p class="userText">{{ accountDetail.username }}</p>
-            <p class="userText">{{ $t("user.myAccount") }}</p>
+            <template v-if="level <= 5">
+              <van-rate v-model="level" color="#ffd21e" readonly />
+            </template>
+            <template v-else>
+              <van-rate v-model="levelPro" icon="diamond" void-icon="diamond-o" color="#00ddff" readonly />
+            </template>
+            <p class="userText">会员等级</p>
           </div>
           <div class="userLine"></div>
-          <!-- 姓名 -->
+          <!-- 用户名 userName -->
           <div class="userId">
-            <p class="userText">{{ accountDetail.name }}</p>
-            <p class="userText">{{ $t("user.myName") }}</p>
+            <p class="userText">{{ accountDetail.userName }}</p>
+            <p class="userText">用户名</p>
           </div>
         </div>
+
         <div class="userInfoBox">
           <!-- 手机号码 -->
           <div v-if="user.type != '0'">
@@ -71,17 +80,17 @@
               <van-icon name="edit" class="editIcon" @click="editClk(2)" />
             </div>
           </div>
-          <!-- 上级账号 -->
-          <div v-if="isInland && user.type == '2'">
-            <div v-if="haveRelation" class="userInfo l-flex-between">
-              <span class="userInfoLeft">{{ $t("user.superiorAccount") }}: </span>
-              <span>{{ relationAdminName }}</span>
-            </div>
+
+          <!-- 收款账号 payeeCode-->
+          <div class="userInfo l-flex-between">
+            <span class="userInfoLeft">收款账号: </span>
+            <span>{{ accountDetail.payeeCode }}</span>
           </div>
 
-    
         </div>
+
       </div>
+
       <div class="lineBox"></div>
       <div class="commonOperBox">
         <!-- 常用操作 -->
@@ -90,14 +99,35 @@
           <span class="baseText">{{ $t("user.commonOperations") }}</span>
         </div>
         <div class="operListBox">
-          <!-- 任务消息 -->
+          <!-- 系统消息 -->
           <div v-if="roleCheck()" class="taskListRow flex-col" @click="pushPageList('/taskMessage')">
             <div class="taskIcon taskMessageIcon"></div>
             <div class="taskRight">
-              <div class="taskTitle">{{ $t("user.taskMessage") }}</div>
+              <div class="taskTitle">系统消息</div>
             </div>
           </div>
 
+          <!-- 买家确认付款 -->
+          <div class="taskListRow flex-col" @click="pushPageList('/buyConfList')">
+            <div class="taskIcon buyConfIcon"></div>
+            <div class="taskRight">
+              <div class="taskTitle">
+                付款信息
+              </div>
+            </div>
+          </div>
+
+          <!-- 卖家收款确认 -->
+          <div class="taskListRow flex-col" @click="pushPageList('/sellConfList')">
+            <div class="taskIcon sellConfIcon"></div>
+            <div class="taskRight">
+              <div class="taskTitle">
+                确认收款
+              </div>
+            </div>
+          </div>
+
+
           <!-- 公告编辑 -->
           <div v-if="user.type == '0'" class="taskListRow flex-col" @click="pushPageList('/announcement')">
             <div class="taskIcon announcementIcon"></div>
@@ -118,7 +148,7 @@
 
           <!-- 退出登录 -->
           <div class="taskListRow flex-col" @click="onperExitSys()">
-            <div class="taskIcon loginOutIcon"></div>
+            <div class="taskIcon logoutIcon"></div>
             <div class="taskRight">
               <div class="taskTitle">{{ $t("user.logOut") }}</div>
             </div>
@@ -191,6 +221,12 @@ export default {
     const router = useRouter();
     const relationAdminName = ref("");
 
+    const level = ref('');
+    level.value = '8';
+
+    const levelPro = ref('');
+    levelPro.value = level.value - 5;
+
     const relationType = ref(true);
     const sys = ref(null);
     // 修改的个人信息
@@ -204,7 +240,6 @@ export default {
     // 
     const params = reactive({
       id: '', // 用户ID	
-      payPlatform: '', //支付平台	
     });
     // 点击修改图标
     const editClk = (idx) => {
@@ -373,16 +408,7 @@ export default {
         kCascaderRef.value.init(accountDetail.value.areaId);
       });
     };
-    // 获取申泽支付平台
-    const getSunzeeDetail = () => {
-      getAdmin({ id: 2738 }).then((res) => {
-        // sunzeePay.value = res.data.data.payPlatform;
-        if (res.data.data.payPlatform == '1') {
-          sunzeePay.value = true;
-        }
-        console.log("sunzeePay", sunzeePay.value)
-      });
-    };
+
     // 获取七云支付平台
     const getSevenCloudDetail = () => {
       getAdmin({ id: 2739 }).then((res) => {
@@ -485,7 +511,6 @@ export default {
       if (user.id == 1) {
         chaSzPayShow.value = true;
         chaScPayShow.value = true;
-        getSunzeeDetail();
         getSevenCloudDetail();
       }
 
@@ -614,12 +639,14 @@ export default {
       sevencloudPay,
       changeSunzeePay,
       changeSevenCloudPay,
+      level,
+      levelPro
     };
   }
 };
 </script>
 
 <style lang="less" scoped>
-@import "@/common/style/mixin";
-@import "@/styles/user/index";
+@import "../../common/style/mixin.less";
+@import "../../styles/user/index.less";
 </style>