Ver Fonte

feat:“同步2024.07.31“

soobin há 10 meses atrás
pai
commit
b78b2fbb13

+ 24 - 6
src/assets/language/en.json

@@ -298,7 +298,7 @@
     "to": " to ",
     "attention": "(Note: the number of bits is incorrect, updating may cause machine anomalies)",
     "submitUpdates": "Submit Updates",
-    "nameLength":"The name of the machine should not exceed 25 words",
+    "nameLength": "The name of the machine should not exceed 25 words",
     "modificationSucceeded": "Modification succeeded",
     "existsFailed": "The machine name already exists",
     "editFailed": "Modification failure",
@@ -340,7 +340,7 @@
     "restartFurnaceHead": "Restart furnace head",
     "restartFurnaceHeadTips": "Are you sure you want to restart the furnace head?",
     "openFurnaceHeadTips": "Are you sure you want to open the furnace head?",
-    "closeFurnaceHeadTips":"Are you sure you want to close the furnace head?",
+    "closeFurnaceHeadTips": "Are you sure you want to close the furnace head?",
     "sleep": "sleep",
     "openCloseFurnaceHead": "Open/close furnace head",
     "openFurnHead": "Open furnace head",
@@ -1265,8 +1265,9 @@
   "changePassword": {
     "changePassword": "Change Password",
     "passwordLabel": "Login password",
-    "passwordPlaceholder": "Please enter a password with more than 6 digits",
-    "passwordRequired": "Please enter a password with more than 6 digits",
+    "passwordPlaceholder": "Please enter a password with more than 10 digits",
+    "passwordRequired": "Please enter a password with more than 10 digits",
+    "passwordPattern": "Password must contain letters and numbers",
     "passwordCheckLabel": "Confirm Password",
     "passwordCheckPlaceholder": "Please enter the password again to confirm",
     "passwordCheckRequired": "Please enter the password again to confirm",
@@ -1317,8 +1318,9 @@
     "namePlaceholder": "Please enter the user name",
     "nameRequired": "Please enter the user name",
     "passwordLabel": "Login password",
-    "passwordPlaceholder": "Please enter a password with more than 6 digits",
-    "passwordRequired": "Please enter a password with more than 6 digits",
+    "passwordPlaceholder": "Please enter a password with more than 10 digits",
+    "passwordRequired": "Please enter a password with more than 10 digits",
+    "passwordPattern": "Password must contain letters and numbers",
     "passwordCheckLabel": "Confirm Password",
     "passwordCheckPlaceholder": "Please enter the password again to confirm",
     "passwordCheckRequired": "Please enter the password again to confirm",
@@ -1519,6 +1521,22 @@
     "D396": "No.1006",
     "D491": "No.1007"
   },
+  "popParams": {
+    "D460": "NO.1095",
+    "D492": "NO.1091",
+    "D493": "NO.1092",
+    "D494": "NO.1093",
+    "D495": "NO.1094",
+    "D208": "NO.1084",
+    "D249": "NO.1034",
+    "D346": "NO.1052",
+    "D497": "NO.1096",
+    "D344": "NO.1083",
+    "M559": "シールドシュガー欠乏アラーム",
+    "M566": "シールド絶縁熱線故障アラーム",
+    "M568": "シールド発生器のエアポンプアラーム",
+    "M569": "シールド混合エアポンプのアラーム"
+  },
   "accountOperation": {
     "title": "Acount operation",
     "accountAuthority": "Account authority",

+ 22 - 4
src/assets/language/ja.json

@@ -1285,8 +1285,9 @@
     "changePassword": {
         "changePassword": "パスワードの変更",
         "passwordLabel": "ログインパスワード",
-        "passwordPlaceholder": "6桁以上のパスワードを入力してください",
-        "passwordRequired": "6桁以上のパスワードを入力してください",
+        "passwordPlaceholder": "10桁以上のパスワードを入力してください",
+        "passwordRequired": "10桁以上のパスワードを入力してください",
+        "passwordPattern": "パスワードには英字と数字を含める必要があります",
         "passwordCheckLabel": "パスワードの確認",
         "passwordCheckPlaceholder": "確認のためもう一度パスワードを入力してください",
         "passwordCheckRequired": "確認のためもう一度パスワードを入力してください",
@@ -1337,8 +1338,9 @@
         "namePlaceholder": "ユーザー名を入力してください",
         "nameRequired": "ユーザー名を入力してください",
         "passwordLabel": "ログインパスワード",
-        "passwordPlaceholder": "6桁以上のパスワードを入力してください",
-        "passwordRequired": "6桁以上のパスワードを入力してください",
+        "passwordPlaceholder": "10桁以上のパスワードを入力してください",
+        "passwordRequired": "10桁以上のパスワードを入力してください",
+        "passwordPattern": "パスワードには英字と数字を含める必要があります",
         "passwordCheckLabel": "パスワード確認",
         "passwordCheckPlaceholder": "確認のためパスワードを再入力してください",
         "passwordCheckRequired": "確認のためパスワードを再入力してください",
@@ -1544,6 +1546,22 @@
         "D396": "No.1006",
         "D491": "No.1007"
     },
+    "popParams": {
+        "D460": "NO.1095",
+        "D492": "NO.1091",
+        "D493": "NO.1092",
+        "D494": "NO.1093",
+        "D495": "NO.1094",
+        "D208": "NO.1084",
+        "D249": "NO.1034",
+        "D346": "NO.1052",
+        "D497": "NO.1096",
+        "D344": "NO.1083",
+        "M559": "Block sugar shortage alarm",
+        "M566": "Disarm insulation heating wire failure alarm",
+        "M568": "Shield generator air pump alarm",
+        "M569": "Shield mixing air pump alarm"
+    },
     "accountOperation": {
         "title": "アカウント操作",
         "accountAuthority": "アカウント権限",

+ 26 - 8
src/assets/language/zh.json

@@ -297,13 +297,13 @@
     "increaseOrDecrease": "一键递增递减",
     "winterParameters": "冬季参数",
     "summerParameters": "夏季参数",
-    "tips":"提醒",
+    "tips": "提醒",
     "content": "是否切换开关?",
     "isUpdate": "是否更新",
     "to": "为",
     "attention": "(注意:位数不正确,更新可能会造成机器异常)",
     "submitUpdates": "提交更新",
-    "nameLength":"设备名称不超过25个字",
+    "nameLength": "设备名称不超过25个字",
     "modificationSucceeded": "修改成功",
     "existsFailed": "设备名称已存在",
     "editFailed": "修改失败",
@@ -346,7 +346,7 @@
     "restartFurnaceHead": "重启炉头",
     "restartFurnaceHeadTips": "是否重启炉头?",
     "openFurnaceHeadTips": "是否开启炉头?",
-    "closeFurnaceHeadTips":"是否关闭炉头?",
+    "closeFurnaceHeadTips": "是否关闭炉头?",
     "clickRestart": "一键重启炉头",
     "restartHead": "重启",
     "sleep": "睡眠",
@@ -691,7 +691,7 @@
     "agree": "通过",
     "rejected": "拒绝",
     "cancel": "撤销",
-    "changeTips":"确认撤销此条分销申请吗?",
+    "changeTips": "确认撤销此条分销申请吗?",
     "cancelSuccess": "撤销成功",
     "apprPend": "待审批",
     "addDist": {
@@ -1312,8 +1312,9 @@
   "changePassword": {
     "changePassword": "修改密码",
     "passwordLabel": "登录密码",
-    "passwordPlaceholder": "请输入6位数以上密码",
-    "passwordRequired": "请输入6位数以上密码",
+    "passwordPlaceholder": "请输入10位数以上密码",
+    "passwordRequired": "请输入10位数以上密码",
+    "passwordPattern": "密码必须包含字母与数字",
     "passwordCheckLabel": "确认密码",
     "passwordCheckPlaceholder": "请再次输入密码进行确认",
     "passwordCheckRequired": "请再次输入密码进行确认",
@@ -1364,8 +1365,9 @@
     "namePlaceholder": "请输入用户姓名",
     "nameRequired": "请输入用户姓名",
     "passwordLabel": "登录密码",
-    "passwordPlaceholder": "请输入6位数以上密码",
-    "passwordRequired": "请输入6位数以上密码",
+    "passwordPlaceholder": "请输入10位以上密码",
+    "passwordRequired": "请输入密码",
+    "passwordPattern": "密码必须包含字母与数字",
     "passwordCheckLabel": "确认密码",
     "passwordCheckPlaceholder": "请再次输入密码进行确认",
     "passwordCheckRequired": "请再次输入密码进行确认",
@@ -1568,6 +1570,22 @@
     "D396": "No.1006",
     "D491": "No.1007"
   },
+  "popParams": {
+    "D460": "NO.1095",
+    "D492": "NO.1091",
+    "D493": "NO.1092",
+    "D494": "NO.1093",
+    "D495": "NO.1094",
+    "D208": "NO.1084",
+    "D249": "NO.1034",
+    "D346": "NO.1052",
+    "D497": "NO.1096",
+    "D344": "NO.1083",
+    "M559": "屏蔽缺糖报警",
+    "M566": "屏蔽保温发热丝故障报警",
+    "M568": "屏蔽发生器气泵报警",
+    "M569": "屏蔽搅拌气泵报警"
+  },
   "accountOperation": {
     "title": "账户操作",
     "accountAuthority": "账户权限",

+ 5 - 7
src/styles/kDialog/index.less

@@ -22,8 +22,6 @@
         }
 
         .block6 {
-          // width: 265px;
-          // height: 34px;
           margin: 20px auto;
 
           .mod7 {
@@ -36,7 +34,7 @@
             .info5 {
               overflow-wrap: break-word;
               color: #2c87c8;
-              font-size: 15px;
+              font-size: 13px;
               font-family: PingFangSC-Medium;
               text-align: center;
               line-height: 15px;
@@ -47,18 +45,18 @@
           .mod8 {
             background-color: #2c87c8;
             border-radius: 20px;
+            height: 30px;
+            padding: 0 20px;
+            width: 60px;
             justify-content: center;
             align-items: center;
-            padding: 10px 20px;
 
             .info6 {
               overflow-wrap: break-word;
               color: rgba(255, 255, 255, 1);
-              font-size: 15px;
+              font-size: 13px;
               font-family: PingFangSC-Medium;
               text-align: center;
-              // white-space: nowrap;
-              line-height: 15px;
               display: block;
             }
           }

+ 1 - 1
src/styles/orderExport/index.less

@@ -123,7 +123,7 @@
                                 white-space: nowrap;
                                 line-height: 17px;
                                 display: block;
-                                margin: 2px 0 0 116px;
+                                // margin: 2px 0 0 116px;
                             }
 
                             .outer4 {

+ 5 - 11
src/styles/paramsSet/index.less

@@ -1,20 +1,16 @@
 .paramsSetPage {
-    // position: relative;
-    width: 100%;
     overflow: auto;
 
     .paramsSetBox {
+        height: 100%;
         width: 100%;
-        height: calc(100vh - 44px);
-        overflow: auto;
-        overflow-x: hidden;
+        height: calc(100% - 50px);
 
         .wrap2 {
             width: 100%;
             height: 54px;
             background-color: #fff;
             justify-content: center;
-            position: relative;
 
             .outer1 {
                 width: 162px;
@@ -117,14 +113,12 @@
 
             .txt3 {
                 display: flex;
-                width: 34%;
-                height: 14px;
+                width: 30%;
                 overflow-wrap: break-word;
                 color: rgba(64, 77, 116, 1);
-                font-size: 14px;
+                font-size: 12px;
                 text-align: left;
-                white-space: nowrap;
-                line-height: 14px;
+                line-height: 18px;
             }
 
             .van-field__label {

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

@@ -14,7 +14,6 @@
         height: 100%;
         width: 100%;
         height: calc(100% - 50px);
-        padding-bottom: 10px;
         overflow: auto;
         overflow-x: hidden;
     }
@@ -24,33 +23,26 @@
     }
 
     .baseRow {
-        width: 100%;
-        height: 20px;
-        margin-left: 15px;
-        margin-top: 5px;
-        justify-content: flex-start;
+        margin: 10px 10px;
 
         .group2 {
             background-color: #5a9cc8;
             border-radius: 2px;
             width: 4px;
             height: 16px;
-            margin-top: 4px;
         }
 
         .baseText {
             width: 150px;
-            height: 20px;
-            margin-top: 2px;
             overflow-wrap: break-word;
             color: rgba(64, 77, 116, 1);
-            font-size: 14px;
+            font-size: 13px;
             font-family: PingFangSC-Medium;
             text-align: left;
             white-space: nowrap;
-            line-height: 20px;
+            line-height: 13px;
             display: block;
-            margin-left: 15px;
+            margin-left: 8px;
         }
     }
 
@@ -143,15 +135,15 @@
         background: #fff;
 
         .operListBox {
-            margin-top: 20px;
 
             .taskListRow {
                 width: 100%;
-                height: 53px;
+                height: 50px;
                 flex-wrap: wrap;
+                margin: 5px 10px;
 
                 .taskIcon {
-                    width: 13%;
+                    width: 10%;
                     height: 100%;
                     position: relative;
 

+ 4 - 1
src/views/changePassword.vue

@@ -6,7 +6,10 @@
       <van-form @submit="changePasswordSubmit">
         <van-field v-model="password" name="password" type="password" :label="$t('changePassword.passwordLabel')"
           :placeholder="$t('changePassword.passwordPlaceholder')"
-          :rules="[{ required: true, message: $t('changePassword.passwordRequired') }]" />
+          :rules="[
+            { required: true, message: $t('changePassword.passwordRequired') },
+            { pattern: /^(?=.*[a-zA-Z])(?=.*\d).{10,}$/, message: $t('register.passwordPattern') }
+          ]" />
         <br>
         <van-field v-model="passwordCheck" name="passwordCheck" type="password"
           :label="$t('changePassword.passwordCheckLabel')" :placeholder="$t('changePassword.passwordCheckPlaceholder')"

+ 2 - 2
src/views/device/deviceOper.vue

@@ -114,7 +114,7 @@
         </div>
         <div class="operText">{{ $t("device.equipmentRecharge") }}</div>
       </div> -->
-      <div class="operItem" @click="paramSetPush()" v-if="device.equimentType != 'SI320' && device.machineType === '0'">
+      <div class="operItem" @click="paramSetPush()" v-if="device.equimentType != 'SI320' && device.machineType != '2'">
         <div class="operIcon">
           <img class="operImg" src="../../assets/device/operIcon/paramsSet.png" />
         </div>
@@ -374,7 +374,7 @@ export default {
     };
     // 跳转 - 参数设置
     const paramSetPush = () => {
-      router.push({ path: "paramsSet", query: { deviceId: device.value.id } });
+      router.push({ path: "paramsSet", query: { deviceId: device.value.id, machineType: device.value.machineType, name: device.value.name } });
     };
     // 跳转 - 添加分销人
     const saveProportionPush = () => {

+ 18 - 21
src/views/device/paramsSet/index.vue

@@ -2,23 +2,13 @@
   <!-- 设备参数调整列表 -->
   <div class="paramsSetPage flex-col">
     <s-header :name="$t('device.parameterAdjustment')" :noback="false"></s-header>
-    <div class="paramsSetBox mod1 flex-col">
+    <div class="paramsSetBox">
       <div class="wrap2 flex-col van-hairline--bottom">
-        <div class="outer1 flex-row justify-between">
-          <div class="block1 flex-col"></div>
-          <span class="txt2">{{ $t('device.equipmentName') }}:{{ deviceDetal ? deviceDetal.name : '' }}</span>
+        <div class="outer1 justify-between">
+          <div class="block1"></div>
+          <span class="txt2">{{ $t('device.equipmentName') }}:{{ name ? name : $t("device.equipmentNameTips") }}</span>
         </div>
       </div>
-      <!-- <div class="list van-hairline--bottom" @click="pushPage('0')">
-        <div class="title">
-          <div class="section4 flex-col">
-            <div class="main4 flex-col"></div>
-          </div>
-          <span class="word3">{{$t('device.generalParameterConfiguration')}}</span>
-        </div>
-        <div class="outer2 flex-col"></div>
-      </div> -->
-
 
       <div class="list van-hairline--bottom" @click="pushPage('0')">
         <div class="title">
@@ -27,21 +17,24 @@
         </div>
         <div class="outer2 flex-col"></div>
       </div>
-      <div class="list van-hairline--bottom" @click="pushPage('1')">
+
+      <div class="list van-hairline--bottom" @click="pushPage('1')" v-if="machineType == 0">
         <div class="title">
           <img class="icon" src='../../../assets/device/advanced.png' />
           <span class="word3">{{ $t('device.advancedParameterConfiguration') }}</span>
         </div>
         <div class="outer2 flex-col"></div>
       </div>
-      <div class="list van-hairline--bottom" @click="pushPage('2')">
+
+      <div class="list van-hairline--bottom" @click="pushPage('2')" v-if="machineType == 0">
         <div class="title">
           <img class="icon" src='../../../assets/device/debug.png' />
           <span class="word3">{{ $t('device.debuggingParameterConfiguration') }}</span>
         </div>
         <div class="outer2 flex-col"></div>
       </div>
-      <div class="list van-hairline--bottom" @click="pushPage('3')">
+      
+      <div class="list van-hairline--bottom" @click="pushPage('3')" v-if="machineType == 0">
         <div class="title">
           <img class="icon" src='../../../assets/device/humanness.png' />
           <span class="word3">{{ $t('device.humidityParameterConfiguration') }}</span>
@@ -65,12 +58,14 @@ export default {
     const router = useRouter();
     const route = useRoute();
     const deviceId = route.query.deviceId;
-    const deviceDetal = ref(null);
+    const machineType = route.query.machineType;
+    const name = route.query.name;
+    const deviceDetal = ref();
     // 初始化页面获取列表
     onMounted(async () => {
       // 加载样式
       styleUrl('paramsSet');
-      getDeviceDetalFun();
+      await getDeviceDetalFun();
     });
     // 获取设备列表数据
     const getDeviceDetalFun = async () => {
@@ -80,11 +75,13 @@ export default {
       } else { showFailToast(data.message); }
     }
     const pushPage = (number) => {
-      router.push({ path: 'paramsSetInfo', query: { type: number, deviceId: route.query.deviceId } })
+      router.push({ path: 'paramsSetInfo', query: { type: number, deviceId: route.query.deviceId, machineType: route.query.machineType } })
     }
     return {
       deviceDetal,
-      pushPage
+      pushPage,
+      machineType,
+      name
     };
   },
 };

+ 32 - 14
src/views/device/paramsSet/paramsSetInfo.vue

@@ -2,15 +2,17 @@
   <!-- 设备参数调整 -->
   <div class="paramsSetPage flex-col">
     <s-header :name="paramsTitle" :noback="false"></s-header>
-    <div class="paramsSetBox mod1 flex-col">
+    <div class="paramsSetBox">
       <div class="wrap2 flex-col van-hairline--bottom">
         <div class="outer1 flex-row justify-between">
           <div class="block1 flex-col"></div>
-          <span class="txt2">{{ $t('device.equipmentName') }}:{{ deviceDetal ? deviceDetal.name : "" }}</span>
+          <span class="txt2">{{ $t('device.equipmentName') }}:{{ deviceDetal.name ? deviceDetal.name :
+      $t("device.equipmentNameTips")
+            }}</span>
         </div>
       </div>
       <!-- <van-divider :style="{ margin: '5px 16px' }" /> -->
-      <div class="" v-if="type == '3'">
+      <div v-if="type == '3'">
         <van-field :label="$t('device.numberOneTm')"
           :model-value="(deviceDetal.numberOne == null ? $t('device.noData') : deviceDetal.numberOne + $t('device.degree'))"
           readonly />
@@ -40,38 +42,39 @@
         <van-field v-model="interval" :label="$t('device.increaseOrDecrease')" class="paramsList">
           <template #button>
             <van-button size="small" type="primary" class="updataButton" @click="updateInterval(0)">{{
-              $t('device.submitUpdates') }}</van-button>
+      $t('device.submitUpdates') }}</van-button>
           </template>
         </van-field>
         <van-field :label="$t('device.winterParameters')" class="inputButton">
           <template #input>
             <van-button size="small" type="primary" class="updataButton" @click="updateInterval(1)">{{
-              $t('device.submitUpdates') }}</van-button>
+      $t('device.submitUpdates') }}</van-button>
           </template>
         </van-field>
         <van-field :label="$t('device.summerParameters')" class="inputButton">
           <template #input>
             <van-button size="small" type="primary" class="updataButton" @click="updateInterval(2)">{{
-              $t('device.submitUpdates') }}</van-button>
+      $t('device.submitUpdates') }}</van-button>
           </template>
         </van-field>
       </div>
       <div class="paramsList" v-for="(item, key) in paramsList" :key="key">
         <van-field :model-value="item.val" @update:model-value="onUpdateParameters(item, key, $event)"
-          v-if="item.name != 'M502' && item.name != 'M506'" name="phone" type="tel" :label="paramName[key]">
+          v-if="!checkBtn(item.name)" name="phone" type="tel" :label="paramName[key]">
           <template #button>
             <van-button size="small" type="primary" class="updataButton" @click="updateParams(item, key)">{{
-              $t('device.submitUpdates') }}</van-button>
+      $t('device.submitUpdates') }}</van-button>
           </template>
         </van-field>
-        <div class="flex-row" v-else>
-          <span class="txt3 o-pl-15 o-mtb-18" v-if="item.name != 'M502'">{{ paramName[key] }}
+        <div class="l-flex-RC" v-else>
+          <span class="txt3 o-pl-15 o-mtb-10" v-if="item.name != 'M502'">{{ paramName[key] }}
           </span>
-          <van-switch v-if="item.name != 'M502'" class="o-mt-8" :model-value="checked[key]"
+          <van-switch v-if="item.name != 'M502'" :model-value="checked[key]" size="23px"
             @update:model-value="onUpdateValue(item, key)">
           </van-switch>
         </div>
       </div>
+      <div style="height: 50px;"></div>
     </div>
   </div>
 </template>
@@ -79,7 +82,7 @@
 <script>
 import { onMounted, ref } from "vue";
 import sHeader from "@/components/SimpleHeader";
-import { useRoute } from "vue-router";
+import { useRoute, useRouter } from "vue-router";
 import { getDeviceDetal, getParameters, updateParameters, humidityParameters } from "@/service/device";
 import { showFailToast, showSuccessToast, showConfirmDialog, showToast } from "vant";
 import { useI18n } from 'vue-i18n';
@@ -90,7 +93,9 @@ export default {
   setup() {
     const { t } = useI18n();
     const route = useRoute();
+    const router = useRouter();
     const deviceId = route.query.deviceId;
+    const machineType = route.query.machineType;
     const deviceDetal = ref([]);
     const paramsTitle = ref("");
     const paramsList = ref([]);
@@ -121,6 +126,10 @@ export default {
       }
       getDeviceDetalFun();
     });
+    // 判断是否为按钮
+    const checkBtn = (name) => {
+      return name.includes('M');
+    };
     // 获取设备列表数据
     const getDeviceDetalFun = async () => {
       const { data } = await getDeviceDetal({ id: deviceId });
@@ -147,7 +156,12 @@ export default {
         paramsList.value.forEach((paramItem) => {
           // console.log("paramItem:", paramItem);
           comParams.value.push(paramItem.name);
-          paramName.value.push(t("paramNames." + paramItem.name));
+          if (machineType == 0) {
+            paramName.value.push(t("paramNames." + paramItem.name));
+          }
+          if (machineType == 1) {
+            paramName.value.push(t("popParams." + paramItem.name));
+          }
           if (paramItem.val === '1') {
             checked.value.push(true);
           } else {
@@ -208,6 +222,9 @@ export default {
         if (data.code) {
           checked.value[key] = !checked.value[key];
           showSuccessToast(t('device.modificationSucceeded'));
+          setTimeout(() => {
+            router.go(-1);
+          }, 1000);
         } else {
           showFailToast(data.message);
         }
@@ -260,7 +277,8 @@ export default {
       type,
       onUpdateParameters,
       interval,
-      updateInterval
+      updateInterval,
+      checkBtn
     };
   },
 };

+ 27 - 19
src/views/orderCenter/index.vue

@@ -165,26 +165,31 @@
         <div class="orderDetailBox flex-row justify-between">
           <span class="title">{{ $t('orderCenter.orderNo') }}</span>
           <!-- <span class="content">{{ refundObject.sn }}</span> -->
-          <van-text-ellipsis class="content" :content="refundObject.sn" :expand-text="$t('orderCenter.seeMore')" :collapse-text="$t('orderCenter.stow')" />
+          <van-text-ellipsis class="content" :content="refundObject.sn" :expand-text="$t('orderCenter.seeMore')"
+            :collapse-text="$t('orderCenter.stow')" />
         </div>
         <div v-if="refundObject.status != 0 && user.ifForeign === '0'" class="orderDetailBox flex-row justify-between">
           <span class="title">{{ $t('orderCenter.orderSerialNumberLabel') }}</span>
           <!-- <span class="content">{{ refundObject.trxNo }}</span> -->
-          <van-text-ellipsis class="content" :content="refundObject.trxNo" :expand-text="$t('orderCenter.seeMore')" :collapse-text="$t('orderCenter.stow')" />
+          <van-text-ellipsis class="content" :content="refundObject.trxNo" :expand-text="$t('orderCenter.seeMore')"
+            :collapse-text="$t('orderCenter.stow')" />
         </div>
         <div class="orderDetailBox flex-row justify-between">
           <span class="title">{{ $t('orderCenter.commodity') }}</span>
           <!-- <span class="content">{{ refundObject.productName }}</span> -->
-          <van-text-ellipsis class="content" :content="refundObject.productName" :expand-text="$t('orderCenter.seeMore')" :collapse-text="$t('orderCenter.stow')" />
+          <van-text-ellipsis class="content" :content="refundObject.productName"
+            :expand-text="$t('orderCenter.seeMore')" :collapse-text="$t('orderCenter.stow')" />
         </div>
-        <div v-if="user.ifForeign === '0' && user.isDistribution === '1'" class="orderDetailBox flex-row justify-between">
+        <div v-if="user.ifForeign === '0' && user.isDistribution === '1'"
+          class="orderDetailBox flex-row justify-between">
           <span class="title">{{ $t('orderCenter.distribution') }}</span>
           <span class="content">{{ showSubcom(refundObject) }}</span>
         </div>
         <div class="orderDetailBox flex-row justify-between">
           <span class="title">{{ $t('orderCenter.equipmentNo') }}</span>
           <!-- <span class="content">{{ refundObject.clientId }}</span> -->
-          <van-text-ellipsis class="content" :content="refundObject.clientId" :expand-text="$t('orderCenter.seeMore')" :collapse-text="$t('orderCenter.stow')" />
+          <van-text-ellipsis class="content" :content="refundObject.clientId" :expand-text="$t('orderCenter.seeMore')"
+            :collapse-text="$t('orderCenter.stow')" />
         </div>
         <div class="orderDetailBox flex-row justify-between">
           <span class="title">{{ $t('orderCenter.state') }}</span>
@@ -193,7 +198,8 @@
         <div class="orderDetailBox flex-row justify-between">
           <span class="title">{{ $t('orderCenter.paymentMethod') }}</span>
           <!-- <span class="content">{{ showPayType(refundObject) }}</span> -->
-          <van-text-ellipsis class="content" :content="showPayType(refundObject)" :expand-text="$t('orderCenter.seeMore')" :collapse-text="$t('orderCenter.stow')" />
+          <van-text-ellipsis class="content" :content="showPayType(refundObject)"
+            :expand-text="$t('orderCenter.seeMore')" :collapse-text="$t('orderCenter.stow')" />
         </div>
         <div class="orderDetailBox flex-row justify-between">
           <span class="title">
@@ -201,7 +207,8 @@
       $t('orderCenter.refundTime') : $t('orderCenter.creationTime') }}
           </span>
           <!-- <span class="content">{{ showOrderTime(refundObject, 1) }}</span> -->
-          <van-text-ellipsis class="content" :content="showOrderTime(refundObject, 1)" :expand-text="$t('orderCenter.seeMore')" :collapse-text="$t('orderCenter.stow')" />
+          <van-text-ellipsis class="content" :content="showOrderTime(refundObject, 1)"
+            :expand-text="$t('orderCenter.seeMore')" :collapse-text="$t('orderCenter.stow')" />
         </div>
         <div v-if="refundObject.status === 3" class="orderDetailBox flex-row justify-between">
           <span class="title">{{ $t('orderCenter.refunded') }}</span>
@@ -235,8 +242,7 @@
           </van-button>
           <div v-if="refundObject.status === 1 && user.ifForeign === '0' && user.type < 2" style="width: 20px;">
           </div>
-          <van-button size="small"
-            v-if="refundObject.status === 1 && user.ifForeign === '0' && isRefund"
+          <van-button size="small" v-if="refundObject.status === 1 && user.ifForeign === '0' && isRefund"
             @click="noticeClk(refundObject)" round type="primary" style="padding: 15px 15px; margin-top: 20px;">
             {{ $t('orderCenter.initiateRefund') }}
           </van-button>
@@ -249,8 +255,8 @@
       <template #content>
         <div class="refundBox l-flex-RC" style="overflow-y: auto; overflow-x: hidden; max-height: 40vh;">
           <div v-for="(item, index) in orderDetails" :key="index" class="card01">
-            <van-checkbox :disabled="item.price.toFixed(2) <= 0" checked-color="#2c87c8" v-model="isChecked[index]" @change="checkGood(index)"
-              icon-size="0.5rem"></van-checkbox>
+            <van-checkbox :disabled="item.price.toFixed(2) <= 0" checked-color="#2c87c8" v-model="isChecked[index]"
+              @change="checkGood(index)" icon-size="0.5rem"></van-checkbox>
             <van-card :price="item.price.toFixed(2)" :title="item.productName" :thumb="showSugarPic(item.productNo)">
               <template #footer>
                 <van-stepper v-if="item.price.toFixed(2) > 0" v-model="refundNum[index]" @plus="plusRefundGood(index)"
@@ -446,6 +452,7 @@ export default {
       const params = {
         id: row.id,
         customerPhone: customerPhone.value,
+        adminId: user.id,
       }
       showConfirmDialog({
         message: '是否确认发送短信?',
@@ -489,14 +496,6 @@ export default {
         showFailToast(t('orderCenter.requestFailed'));
       }
     };
-    // 修改的价格
-    const cofficentForm = reactive({
-      price: 0,
-      id: "",
-      productNumber: 0,
-      note: 0,
-      refundReason: "",
-    });
     // 引入语言
     const { t } = useI18n();
     // 订单商品图片路径处理
@@ -541,6 +540,15 @@ export default {
     const loading = ref(true);
     const error = ref(false);
     const finished = ref(false);
+    // 修改的价格
+    const cofficentForm = reactive({
+      price: 0,
+      id: "",
+      productNumber: 0,
+      note: 0,
+      refundReason: "",
+      type: user.type,
+    });
     // 滚动加载
     const onLoad = () => {
       if (!finished.value) {

+ 31 - 28
src/views/register.vue

@@ -12,13 +12,18 @@
           :placeholder="$t('register.namePlaceholder')"
           :rules="[{ required: true, message: $t('register.nameRequired') }]" />
         <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') }]" />
+          :placeholder="$t('register.passwordPlaceholder')" :rules="[
+      { required: true, message: $t('register.passwordRequired') },
+      { pattern: /^(?=.*[a-zA-Z])(?=.*\d).{10,}$/, message: $t('register.passwordPattern') }
+    ]" />
         <br>
-        <van-field v-model="passwordCheck" name="passwordCheck" type="password" :label="$t('register.passwordCheckLabel')"
-          :placeholder="$t('register.passwordCheckPlaceholder')"
-          :rules="[{ required: true, message: $t('register.passwordCheckRequired') }]" />
+        <!-- 确认密码 -->
+        <van-field v-model="passwordCheck" name="passwordCheck" type="password"
+          :label="$t('register.passwordCheckLabel')" :placeholder="$t('register.passwordCheckPlaceholder')" :rules="[
+      { required: true, message: $t('register.passwordCheckRequired') },
+    ]" />
         <br>
         <!-- 国家或地区 -->
         <div class="van-cell van-field">
@@ -42,8 +47,8 @@
             </div>
           </div>
           <!-- 国内手机 -->
-          <van-field v-if="logonMode === '10'" v-model="phone" name="phone" type="tel" :label="$t('register.phoneLabel')"
-            :placeholder="$t('register.phonePlaceholder')"
+          <van-field v-if="logonMode === '10'" v-model="phone" name="phone" type="tel"
+            :label="$t('register.phoneLabel')" :placeholder="$t('register.phonePlaceholder')"
             :rules="[{ required: ifForeign === '0' && logonMode === '10', pattern: /^1[3456789]\d{9}$/, message: $t('register.phoneRequired') }]" />
           <br v-if="ifForeign === '0' && logonMode === '10'">
           <!-- 短信验证码 -->
@@ -52,20 +57,19 @@
             :rules="[{ required: true, message: $t('register.codeRequired') }]">
             <template #button v-if="ifForeign === '0' && logonMode === '10'">
               <van-button size="small" type="primary" @click="seedVerCode()"
-                :disabled="time !== 0 || phone.length === 0"
-                :loading=reqApi :loading-text="$t('register.sending')">{{
-                  time === 0 ?
-                  $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
-                }}
+                :disabled="time !== 0 || phone.length === 0" :loading=reqApi :loading-text="$t('register.sending')">{{
+      time === 0 ?
+        $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
+    }}
               </van-button>
             </template>
           </van-field>
           <!-- 国内邮箱 -->
           <van-field v-if="logonMode === '11'" v-model="email" name="email" :label="$t('register.emailLabel')"
             :placeholder="$t('register.emailPlaceholder')" :rules="[
-              { required: ifForeign === '0' && logonMode === '11', message: $t('register.emailRequired') },
-              { pattern: /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/, message: '邮箱格式错误!' }
-            ]" :minlength="3" :maxlength="20">
+      { required: ifForeign === '0' && logonMode === '11', message: $t('register.emailRequired') },
+      { pattern: /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/, message: '邮箱格式错误!' }
+    ]" :minlength="3" :maxlength="20">
           </van-field>
           <br v-if="ifForeign === '0' && logonMode === '11'">
           <!-- 国内邮箱验证码 -->
@@ -74,11 +78,10 @@
             :rules="[{ required: true, message: $t('register.emailCodeRequired') }]">
             <template #button v-if="ifForeign === '0' && logonMode === '11'">
               <van-button size="small" type="primary" @click="seedVerCode()"
-                :disabled="time !== 0 || email.length === 0"
-                :loading=reqApi :loading-text="$t('register.sending')">{{
-                  time === 0 ?
-                  $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
-                }}
+                :disabled="time !== 0 || email.length === 0" :loading=reqApi :loading-text="$t('register.sending')">{{
+      time === 0 ?
+        $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
+    }}
               </van-button>
             </template>
           </van-field>
@@ -95,19 +98,19 @@
             :placeholder="$t('register.emailCodePlaceholder')"
             :rules="[{ required: true, message: $t('register.emailCodeRequired') }]">
             <template #button v-if="ifForeign === '1'">
-              <van-button size="small" type="primary" @click="seedVerCode()" :disabled="time !== 0 || email.length === 0"
-                :loading=reqApi :loading-text="$t('register.sending')">{{
-                  time === 0 ?
-                  $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
-                }}
+              <van-button size="small" type="primary" @click="seedVerCode()"
+                :disabled="time !== 0 || email.length === 0" :loading=reqApi :loading-text="$t('register.sending')">{{
+      time === 0 ?
+        $t('register.seedVerCode') : time + $t('register.replaysInSeconds')
+    }}
               </van-button>
             </template>
           </van-field>
         </div>
         <!-- 提交验证信息 -->
         <van-button round type="primary" class="register" native-type="submit">{{
-          $t('register.registerButton')
-        }}
+        $t('register.registerButton')
+      }}
         </van-button>
       </van-form>
     </div>
@@ -116,7 +119,7 @@
 <script>
 import md5 from 'js-md5';
 import { ref, onMounted, reactive, toRefs } from 'vue';
-import { showFailToast, showToast} from 'vant';
+import { showFailToast, showToast } from 'vant';
 import { sentRegisterCode, tAdminSave } from '@/service/register';
 import sHeader from '@/components/SimpleHeader';
 import logiLogoImgUrl from "@/assets/login/logo.png";

+ 11 - 11
src/views/user.vue

@@ -3,8 +3,8 @@
     <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>
+        <div class="baseRow l-flex-RC">
+          <div class="group2"></div>
           <span class="baseText">{{ $t("user.essentialInformation") }}</span>
         </div>
         <div class="userMessage flex-row justify-between">
@@ -186,13 +186,13 @@
       <div class="lineBox"></div>
       <div class="commonOperBox">
         <!-- 常用操作 -->
-        <div class="baseRow flex-row justify-between">
-          <div class="group2 flex-col"></div>
+        <div class="baseRow l-flex-RC">
+          <div class="group2"></div>
           <span class="baseText">{{ $t("user.commonOperations") }}</span>
         </div>
         <div class="operListBox">
           <!-- 任务消息 -->
-          <div v-if="roleCheck()" class="taskListRow flex-col" @click="pushPageList('/taskMessage')">
+          <div v-if="roleCheck()" class="taskListRow l-flex-RC" @click="pushPageList('/taskMessage')">
             <div class="taskIcon taskMessageIcon"></div>
             <div class="taskRight">
               <div class="taskTitle">{{ $t("user.taskMessage") }}</div>
@@ -200,14 +200,14 @@
           </div>
 
           <!-- 提现帐号 -->
-          <div v-if="isInland && user.type > '1'" class="taskListRow flex-col" @click="pushPageList('/settlement')">
+          <div v-if="isInland && user.type == '2'" class="taskListRow l-flex-RC" @click="pushPageList('/settlement')">
             <div class="taskIcon joinPayMchIcon"></div>
             <div class="taskRight">
               <div class="taskTitle">{{ $t("user.settlementAccount") }}</div>
             </div>
           </div>
           <!-- 绑定微信 -->
-          <div v-if="isInWeChat" class="taskListRow flex-col" @click="pushPageList('/bindWechat')">
+          <div v-if="isInWeChat" class="taskListRow l-flex-RC" @click="pushPageList('/bindWechat')">
             <div class="taskIcon bindWechatIcon"></div>
             <div class="taskRight">
               <div class="taskTitle">
@@ -217,7 +217,7 @@
           </div>
 
           <!-- 修改密码 -->
-          <div class="taskListRow flex-col" @click="pushPageList('/changepassword')">
+          <div class="taskListRow l-flex-RC" @click="pushPageList('/changepassword')">
             <div class="taskIcon changePasswordIcon"></div>
             <div class="taskRight">
               <div class="taskTitle">{{ $t("user.changePassword") }}</div>
@@ -225,7 +225,7 @@
           </div>
 
           <!-- 意见反馈 -->
-          <div v-if="user.type > 1" class="taskListRow flex-col" @click="pushPageList('/feedback')">
+          <div v-if="user.type > 1" class="taskListRow l-flex-RC" @click="pushPageList('/feedback')">
             <div class="taskIcon feedbackIcon"></div>
             <div class="taskRight">
               <div class="taskTitle">{{ $t("user.feedback") }}</div>
@@ -240,7 +240,7 @@
             </div>
           </div> -->
 
-          <div class="taskListRow flex-col" @click="onperExitSys()">
+          <div class="taskListRow l-flex-RC" @click="onperExitSys()">
             <div class="taskIcon loginOutIcon"></div>
             <div class="taskRight">
               <div class="taskTitle">{{ $t("user.logOut") }}</div>
@@ -651,7 +651,7 @@ export default {
       gettAdminGetRelation();
       // 获取账户
       getAcccountDetail();
-      if (user.id == 1) {
+      if (user.type == 0) {
         chaSzPayShow.value = true;
         chaScPayShow.value = true;
         getSunzeeDetail();