Browse Source

feat:“优化分组管理,添加意见反馈功能,64种花型”

soobin 1 year ago
parent
commit
9d5d509eaa

+ 16 - 10
src/assets/language/en.json

@@ -237,6 +237,9 @@
   },
   "device": {
     "managementCenter": "Machine Management Center",
+    "whole": "All",
+    "group": "Group management",
+    "addGroup": "Add Group",
     "setAlarm": "Set alarm",
     "equipmentName": "Machine name",
     "equipmentNameTips": "No name has been set",
@@ -272,10 +275,13 @@
     "SuspendBusiness": "Suspend Business",
     "successfullyAddedAlarmClock": "Successfully added alarm clock",
     "parameterAdjustment": "Parameter adjustment",
-    "generalParameterConfiguration": "General parameter configuration",
-    "advancedParameterConfiguration": "Advanced parameter configuration",
-    "debuggingParameterConfiguration": "Debugging parameter configuration",
-    "humidityParameterConfiguration": "Humidity parameter configuration",
+    "generalParameterConfiguration": "General parameters",
+    "advancedParameterConfiguration": "Advanced parameters",
+    "debuggingParameterConfiguration": "Humidity interval parameters",
+    "humidityParameterConfiguration": "Steam humidification parameters",
+    "increaseOrDecrease": "Increase or decrease",
+    "winterParameters": "Winter parameters",
+    "summerParameters": "Summer parameters",
     "tips": "Remind",
     "content": "Do you want to switch?",
     "isUpdate": "Whether to update ",
@@ -677,7 +683,7 @@
     "orderAnalysis": "orderAnalysis",
     "shandeSubLedger": "shandeSubLedger",
     "taskMessage": "taskMessage",
-    "labelMan": "Label management",
+    "labelMan": "Group management",
     "apkMan": "apk management",
     "customLogo": "custom logo",
     "logMan": "Log Management",
@@ -994,7 +1000,7 @@
     "orderData": "Order Data",
     "orderRefund": "Order refund",
     "systemOffline": "System offline",
-    "labelMan": "Label management",
+    "labelMan": "Group management",
     "relationAdmin": "Associate superior",
     "apkMan": "Apk management",
     "merchantMan": "Merchant management",
@@ -1379,13 +1385,13 @@
     "bindSuccess": "Bind Success"
   },
   "labelMan": {
-    "title": "Label management",
+    "title": "Group management",
     "merchant": "Merchant",
     "machine": "machine",
     "labelName": "Tagname",
     "add": {
-      "name": "Label Name",
-      "namePlace": "Please enter the label name",
+      "name": "Group Name",
+      "namePlace": "Please enter the Group name",
       "type": "type",
       "typePlace": "Please select a type",
       "merchant": "Merchant List",
@@ -1465,7 +1471,7 @@
     "withdrawalAccountNo": "Standby withdrawal account No",
     "standbyWithdrawalAccountNo": "Standby withdrawal account No",
     "merchantManagement": "Merchant management",
-    "labelMan": "Label management"
+    "labelMan": "Group management"
   },
   "announcement": {
     "header": "Editorial notice",

+ 52 - 9
src/assets/language/ja.json

@@ -146,7 +146,44 @@
         "confirmDel": "削除の確認",
         "delPopContent": "削除する?",
         "delTips": "削除するデータを選択",
-        "delSuccess": "削除成功です"
+        "delSuccess": "削除成功です",
+        "advertRule": {
+            "sysTitle": "Advertising rules",
+            "total": "合計 ",
+            "rules": "rules",
+            "add": "追加",
+            "delete": "削除",
+            "push": "push",
+            "edit": "編集",
+            "createTime": "作成時間",
+            "selected": "選択",
+            "individual": "件の記録",
+            "cancel": "キャンセル",
+            "confirmDel": "削除を確認",
+            "addRule": {
+                "title": "Add Rule",
+                "editTitle": "Edit Rule",
+                "ruleName": "Rule Name",
+                "ruleNamePlace": "Please enter the Rule Name",
+                "adType": "Advertising type",
+                "adTypePlace": "Please select the Advertising type",
+                "userName": "Affiliated merchants",
+                "userNamePlace": "Please enter the Affiliated merchants",
+                "AScreen": "Screen A",
+                "AScreenPlace": "Please select the Screen A",
+                "BScreen": "Screen B",
+                "BScreennPlace": "Please select the Screen B",
+                "submit": "Submit Rules",
+                "search": "search",
+                "selectAd": "Please select an advertisement",
+                "pushMerchant": "Push merchants",
+                "pushMerchantPlace": "Separate with English commas, no spaces",
+                "screen": "screen",
+                "adScreen": "Advertising screening",
+                "adName": "Advertising name",
+                "adNamePlace": "Please enter the advertisement name"
+            }
+        }
     },
     "alarmHistory": {
         "equipmentNoLabel": "機器番号",
@@ -200,6 +237,9 @@
     },
     "device": {
         "managementCenter": "デバイス管理センター",
+        "whole": "全体",
+        "group": "グループ管理",
+        "addGroup": "グループの追加",
         "setAlarm": "アラーム設定",
         "equipmentName": "デバイス名",
         "lockCondition": "ロック状態",
@@ -237,8 +277,11 @@
         "parameterAdjustment": "パラメータ調整",
         "generalParameterConfiguration": "一般パラメータ設定",
         "advancedParameterConfiguration": "高度なパラメータ設定",
-        "debuggingParameterConfiguration": "デバッグパラメータ設定",
-        "humidityParameterConfiguration": "湿度パラメータ設定",
+        "debuggingParameterConfiguration": "湿度区間パラメータ",
+        "humidityParameterConfiguration": "蒸気加湿パラメータ",
+        "increaseOrDecrease": "一律の増減を",
+        "winterParameters": "冬のパラメーター",
+        "summerParameters": "夏のパラメーター",
         "tips": "通知",
         "content": "スイッチの切替",
         "isUpdate": "更新",
@@ -644,7 +687,7 @@
         "orderAnalysis": "注文分析",
         "shandeSubLedger": "サブレジャー",
         "taskMessage": "タスクメッセージ",
-        "labelMan": "ラベル管理",
+        "labelMan": "グループ管理",
         "apkMan": "APK管理",
         "customLogo": "ロゴのカスタマイズ",
         "logMan": "ログ管理",
@@ -967,7 +1010,7 @@
         "orderData": "注文データ",
         "orderRefund": "注文返金",
         "systemOffline": "システムオフライン",
-        "labelMan": "ラベル管理",
+        "labelMan": "グループ管理",
         "relationAdmin": "関連上位",
         "apkMan": "APK管理",
         "merchantMan": "加盟店管理",
@@ -1361,12 +1404,12 @@
         "bindSuccess": "バインドに成功しました"
     },
     "labelMan": {
-        "title": "ラベル管理",
+        "title": "グループ管理",
         "merchant": "マーチャント",
         "machine": "マシン",
-        "labelName": "ラベル名",
+        "labelName": "グループ名",
         "add": {
-            "name": "ラベル名",
+            "name": "グループ名",
             "namePlace": "ラベル名を入力してください",
             "type": "タイプ",
             "typePlace": "タイプを選択してください",
@@ -1447,7 +1490,7 @@
         "withdrawalAccountNo": "出金アカウント番号",
         "standbyWithdrawalAccountNo": "予備の出金アカウント番号",
         "merchantManagement": "加盟店管理",
-        "labelMan": "ラベル管理"
+        "labelMan": "グループ管理"
     },
     "wechat": {
         "headerName": "WeChatのバインド"

+ 10 - 4
src/assets/language/zh.json

@@ -237,6 +237,9 @@
   },
   "device": {
     "managementCenter": "设备管理中心",
+    "whole": "全部",
+    "group": "分组管理",
+    "addGroup": "添加分组",
     "setAlarm": "设置闹钟",
     "equipmentName": "设备名称",
     "lockCondition": "锁机状态",
@@ -272,10 +275,13 @@
     "endSleep": "结束休眠",
     "successfullyAddedAlarmClock": "新增闹钟成功",
     "parameterAdjustment": "参数调整",
-    "generalParameterConfiguration": "通用参数配置",
-    "advancedParameterConfiguration": "进阶参数配置",
-    "debuggingParameterConfiguration": "调试参数配置",
-    "humidityParameterConfiguration": "湿度参数配置",
+    "generalParameterConfiguration": "通用参数",
+    "advancedParameterConfiguration": "进阶参数",
+    "debuggingParameterConfiguration": "湿度区间参数",
+    "humidityParameterConfiguration": "蒸气加湿参数",
+    "increaseOrDecrease": "一键递增递减",
+    "winterParameters": "冬季参数",
+    "summerParameters": "夏季参数",
     "tips": "提醒",
     "content": "是否切换开关?",
     "isUpdate": "是否更新",

BIN
src/assets/order/spunSugar/goods/A67.png


BIN
src/assets/order/spunSugar/goods/A68.png


BIN
src/assets/order/spunSugar/goods/A69.png


BIN
src/assets/order/spunSugar/goods/A70.png


+ 1 - 1
src/components/commom/kSelectPop/index.vue

@@ -7,7 +7,7 @@
           <div class="c-text-16 c-text-b">{{ $t('kSelectPop.selectTitle') }}</div>
           <div @click="confirmClk" class="c-text-16 c-text-color">{{ $t('kSelectPop.confirm') }}</div>
         </div>
-        <van-search v-model="searchValue" placeholder="请输入搜索关键词" shape="round" background="#4d6add"
+        <van-search v-model="searchValue" :placeholder="$t('kSelectPop.searchKey')" shape="round" background="#4d6add"
           @update:model-value="valueChange" />
         <div style="height: 50vh;overflow:hidden;overflow-y:auto;">
           <!-- 全选 -->

+ 10 - 0
src/service/device/index.js

@@ -12,6 +12,11 @@ export function getDeviceDetal(params) {
     return axios.post(`/SZWL-SERVER/tEquipment/findById?${stringToUrl(params)}`, params);
 }
 
+// 获取花型种类下拉列表
+export function getGoodsNumber(params) {
+    return axios.get(`/SZWL-SERVER/tGoodsData/getGoodsNumber?${stringToUrl(params)}`);
+}
+
 // 修改设备详情
 export function updateDevice(params) {
     return axios.post(`/SZWL-SERVER/tEquipment/update?${stringToUrl(params)}`, params);
@@ -117,6 +122,11 @@ export function updateParameters(params) {
     return axios.post(`/SZWL-SERVER/tParameters/updateParameters`, params)
 }
 
+// 修改湿度区间参数
+export function humidityParameters(params) {
+    return axios.post(`/SZWL-SERVER/tEquipment/humidityParameters`, params)
+}
+
 // 启用物料监控
 export function enableMaterial(params) {
     return axios.post(`/SZWL-SERVER/tParameters/enableMaterial`, params)

+ 5 - 0
src/styles/device/index.less

@@ -606,4 +606,9 @@
 
 .van-dropdown-menu__title {
   color: #4d6add;
+}
+
+:root {
+  --van-width: auto;
+  --van-popover-action-width: var(--van-width);
 }

+ 5 - 0
src/styles/labelMan/index.less

@@ -9,6 +9,11 @@
             background-size: 100%;
         }
     }
+    .intervalRow {
+        padding: 0 10px;
+        height: 1.5px;
+        background-color: #f5f5f5;
+      }
 
     .van-tabs__line {
         background-color: #4d6add !important;

+ 15 - 0
src/styles/paramsSet/index.less

@@ -144,6 +144,21 @@
                 padding: 0 0.5em;
                 border-radius: 50px;
             }
+
+        }
+
+        .inputButton {
+            .van-field__label {
+                align-items: center;
+            }
+
+            .updataButton {
+                background-color: transparent;
+                color: #4d6add;
+                border-color: #4d6add;
+                padding: 0 0.5em;
+                border-radius: 50px;
+            }
         }
     }
 }

+ 2 - 2
src/views/accountOperation/index.vue

@@ -37,12 +37,12 @@
         </div>
       </div>
       <!-- 标签管理 -->
-      <div class="taskListRow flex-col" @click="pushPageList('/labelMan')">
+      <!-- <div class="taskListRow flex-col" @click="pushPageList('/labelMan')">
         <div class="taskIcon labelIcon"></div>
         <div class="taskRight">
           <div class="taskTitle">{{ $t('accountOperation.labelMan') }}</div>
         </div>
-      </div>
+      </div> -->
 
 
     </div>

+ 13 - 13
src/views/device/deviceSearch.vue

@@ -70,14 +70,14 @@
           </van-row>
 
           <!-- 设备标签分组 -->
-          <div>
+          <!-- <div>
             <van-field label-width="86" v-model="deviceGroupText" is-link readonly :label="$t('device.deviceGrouping')"
               :placeholder="$t('device.plzSelectDeviceGroup')" @click="deviceGroupShow = true" class="field" />
             <van-popup v-model:show="deviceGroupShow" round position="bottom">
               <van-cascader v-model="deviceGroup" :title="$t('device.deviceGroupPlaceholder')"
                 :options="deviceGroupOptions" @close="deviceGroupShow = false" @finish="deviceGroupFinish" />
             </van-popup>
-          </div>
+          </div> -->
 
           <!-- 支付方式、信道 -->
           <van-row>
@@ -159,7 +159,7 @@ export default {
     const companyTypeShow = ref(false); // 公司平台级联状态
     const deviceGroupShow = ref(false); // 设备分组级联状态
     const user = getLoginUser(); // 获取登录用户
-    const labelId = ref(""); // 设备标签id
+    // const labelId = ref(""); // 设备标签id
 
     const machineTypeOptions = ref([
       {
@@ -201,13 +201,13 @@ export default {
       companyTypeText.value = selectedOptions.map((option) => option.text).join('/');
     }; // 公司平台级联选择
 
-    const deviceGroupFinish = async ({ selectedOptions }) => {
-      const selectedLabel = selectedOptions[selectedOptions.length - 1];
-      labelId.value = selectedLabel.value;
-      // console.log("labelId >>>", labelId.value);
-      deviceGroupShow.value = false;
-      deviceGroupText.value = selectedOptions.map((option) => option.text).join('/');
-    }; // 设备分组级联选择
+    // const deviceGroupFinish = async ({ selectedOptions }) => {
+    //   const selectedLabel = selectedOptions[selectedOptions.length - 1];
+    //   labelId.value = selectedLabel.value;
+    //   // console.log("labelId >>>", labelId.value);
+    //   deviceGroupShow.value = false;
+    //   deviceGroupText.value = selectedOptions.map((option) => option.text).join('/');
+    // }; // 设备分组级联选择
 
     const equimentType = ref(''); // 设备机型
     const equimentTypeText = ref(''); // 设备机型 - 页面显示
@@ -332,7 +332,7 @@ export default {
         isUsing: isUsing.value,
         payType: payType.value,
         channel: channel.value,
-        labelId: labelId.value,
+        // labelId: labelId.value,
       };
       context.emit('search', searchParam);
       sheetShow.value = false;
@@ -416,9 +416,9 @@ export default {
       deviceGroup,
       deviceGroupText,
       deviceGroupShow,
-      deviceGroupFinish,
+      // deviceGroupFinish,
       deviceGroupOptions,
-      labelId,
+      // labelId,
 
       eqeStatus,
       eqeStatusText,

+ 42 - 5
src/views/device/deviceSet.vue

@@ -7,8 +7,7 @@
         <div class="bd3 flex-col">
           <div class="mod1 flex-col">
             <span class="word2">{{ $t("device.essentialInformation") }}</span>
-            <img class="pic1" referrerpolicy="no-referrer"
-              src="../../assets/line.png" />
+            <img class="pic1" referrerpolicy="no-referrer" src="../../assets/line.png" />
           </div>
           <div class="mod2 flex-col"></div>
         </div>
@@ -198,7 +197,7 @@
         </template>
         <!-- 花型种类 -->
         <template v-if="isAdmind && machineType === '0'">
-          <van-field readonly :label="`${$t('device.flowerType')}`" placeholder="">
+          <!-- <van-field readonly :label="`${$t('device.flowerType')}`" placeholder="">
             <template #input>
               <div class="van-cell__value van-field__value radioBox">
                 <van-radio-group v-model="deviceDetal.flowers" direction="horizontal">
@@ -211,7 +210,9 @@
                 </van-radio-group>
               </div>
             </template>
-          </van-field>
+          </van-field> -->
+          <van-field v-model="deviceDetal.flowers" is-link readonly :label="$t('device.flowerType')" placeholder="选择花型种类"
+            @click="showFlowerPicker = true" />
         </template>
         <!-- 版本号 -->
         <van-field readonly v-model="deviceDetal.apkVersion" :label="`${$t('device.versionNo')}`" placeholder="" />
@@ -239,6 +240,10 @@
       :confirmBtnTxt="$t('user.confirmLog')" ref="kDialogRef" :dialogContent="$t('device.sureUpdate')"
       @confirmclk="confirmClk">
     </kDialog>
+    <!-- 花型种类 -->
+    <van-popup v-model:show="showFlowerPicker" round position="bottom">
+      <van-picker v-model="selectedFlower" :columns="flowerColumns" @cancel="showFlowerPicker = false" @confirm="onFlowerConfirm" />
+    </van-popup>
   </div>
 </template>
 <script>
@@ -262,6 +267,7 @@ import {
   updateDevice,
   Api_getTApkInfo_updateApk,
   Api_getDiscCodeStatus,
+  getGoodsNumber,
 } from "@/service/device/index";
 import { showFailToast, showSuccessToast, showToast } from "vant";
 import { useI18n } from "vue-i18n";
@@ -410,6 +416,12 @@ export default {
         }
         if (data.data.machineType === '1') {
           machineType.value = '1';
+        } else if (data.data.machineType === '2') {
+          machineType.value = '1';
+        }
+        if (machineType.value == '0') {
+          selectedFlower.value = [deviceDetal.value.flowers];
+          getFlowerNumber(machineType.value);
         }
       } else {
         showFailToast(data.message);
@@ -453,7 +465,7 @@ export default {
         setTimeout(() => {
           router.push({ path: "/device" });
         }, 1500);
-      } else if (data.code === "A0001"){
+      } else if (data.code === "A0001") {
         // 设备名称重复
         showToast(t("device.existsFailed"));
       } else {
@@ -461,6 +473,27 @@ export default {
       }
     };
 
+    // 选中的花型种类
+    const selectedFlower = ref([]);
+    // 花型种类数据
+    const flowerColumns = [];
+    // 显示弹窗
+    const showFlowerPicker = ref(false);
+    // 获取花型种类下拉列表
+    const getFlowerNumber = async (machineType) => {
+      const { data } = await getGoodsNumber({ machineType: machineType });
+      if (data.code === "00000") {
+        data.data.forEach(item => {
+          flowerColumns.push({ text: item, value: item + "" })
+        });
+      }
+    }
+    //确认选择
+    const onFlowerConfirm = ({ selectedOptions }) => {
+      showFlowerPicker.value = false;
+      deviceDetal.value.flowers = selectedOptions[0].text;
+    }
+
     // 点击去到编辑标签页
     const toTagSet = () => {
       router.push({
@@ -561,6 +594,10 @@ export default {
       paymentColumns,
       onConfirm,
       showPayment,
+      flowerColumns,
+      showFlowerPicker,
+      selectedFlower,
+      onFlowerConfirm,
     };
   },
 };

+ 65 - 10
src/views/device/index.vue

@@ -15,8 +15,13 @@
               </div>
             </div>
             <div class="flex-col">
-              <div class="main5 flex-row justify-between" @click="searchClick">
-                <img class="label2" src="../../assets/device/searchIcon.png" />
+              <div class="main5 flex-row justify-between">
+                <van-popover v-model:show="showPopover" placement="left-start" theme="dark" :actions="actions" @select="selectLabel">
+                  <template #reference>
+                    <van-icon name="bars" class="fixed-icon o-pr-15" size="23" color="#4d6add" />
+                  </template>
+                </van-popover>
+                <img class="label2" src="../../assets/device/searchIcon.png" @click="searchClick" />
                 <!-- <div class="TextGroup2 flex-col">
                   <span class="txt3">{{ $t("device.search") }}</span>
                 </div> -->
@@ -48,6 +53,12 @@
           </div>
         </div>
         <div class="deviceBox2 flex-col justify-between">
+          <van-tabs v-model:active="active" @click-tab="clickLabel" class="tabs2 o-pb-15">
+            <van-tab :title="$t('device.whole')" name="">
+            </van-tab>
+            <van-tab v-for="item in labelList" :name="item.id" :key="item" :title="item.name">
+            </van-tab>
+          </van-tabs>
           <div class="section1 flex-col">
             <div class="outer1 flex-col o-plr-15">
               <div v-for="item in list" :key="item" class="o-pb-20">
@@ -59,11 +70,6 @@
                     </div>
                   </div>
                   <div class="l-flex-RC">
-                    <!-- 报警标志 -->
-                    <!-- <div v-if="item.hasTodayAlarm" class="box4 flex-col"> -->
-                    <!-- <img class="pic1" src="../../assets/device/alarm.png" /> -->
-                    <!-- <img class="pic1" src="../../assets/home/M15.png" /> -->
-                    <!-- </div> -->
                     <div v-if="item.hasTodayAlarm" class="l-flex-between o-pl-5">
                       <div class="box4 flex-col "></div>
                       <span class="o-pl-2" style="color: #fe5d55">{{ $t("device.alarmClock") }}</span>
@@ -222,7 +228,8 @@
                     showDateTime(item.lastUpdateTime)
                   }}</span>
                   <!-- 音量 -->
-                  <span v-if="item.machineType != '2'" class="info2 o-ptb-7 kBordBott">{{ $t("device.volume") }}:{{ item.volume }}</span>
+                  <span v-if="item.machineType != '2'" class="info2 o-ptb-7 kBordBott">{{ $t("device.volume") }}:{{
+                    item.volume }}</span>
                   <!-- 报警内容 -->
                   <div class="l-flex-RC o-ptb-7">
                     <span class="info3 kBordBott">{{ $t("device.alarmContent") }}:</span>
@@ -284,7 +291,7 @@ import { onMounted, reactive, toRefs, ref, onActivated } from "vue";
 import { showFailToast, showSuccessToast, showToast, showDialog } from "vant";
 // import navBar from "../../components/NavBar";
 import sHeader from "../../components/SimpleHeader";
-import { getLoginUser, Format_calcuDecial } from "../../common/js/utils";
+import { getLoginUser, Format_calcuDecial, styleUrl } from "../../common/js/utils";
 import {
   getDeviceList,
   eliminate,
@@ -297,6 +304,8 @@ import { onBeforeRouteLeave, useRouter } from "vue-router";
 import dateUtil from "../../utils/dateUtil";
 import { useI18n } from "vue-i18n";
 import { onBeforeUnmount } from "vue";
+import { Api_getLabelList } from "../../service/labelMan";
+
 
 export default {
   name: "device",
@@ -313,6 +322,7 @@ export default {
     const sys = ref(null);
     const user = getLoginUser();
     const verticalScrollPosition = ref(0);
+    const labelList = ref([]);
 
     // 返回顶部
     const backTop = () => {
@@ -360,6 +370,7 @@ export default {
       current: 1, // 页数
       size: 10, // 页大小
       todayDate: dateUtil.formateDate(new Date(), "yyyy-MM-dd"), // 当天时间
+      labelId: "", // 分组标签
     });
     // 初始化页面获取列表
     onMounted(() => {
@@ -368,12 +379,13 @@ export default {
       updateDataInterval();
       // window.addEventListener('scroll', handleScroll);
       // 加载样式
-      // styleUrl('device');
+      styleUrl('device');
     });
     // 初始化
     const init = () => {
       // 获取设备情况
       getMachineNum();
+      getLabelList();
       if (localStorage.getItem("loginSys")) {
         const loginSysString = localStorage.getItem("loginSys");
         sys.value = JSON.parse(loginSysString);
@@ -389,6 +401,18 @@ export default {
       }
     };
 
+    // 获取设备标签
+    const getLabelList = async () => {
+      // console.log("adminId>>>>", user.id);
+      Api_getLabelList({
+        adminId: user.id,
+        type: "1"
+      }).then((res) => {
+        const { data } = res.data;
+        labelList.value = data;
+      })
+    }
+
     // 获取设备列表数据
     const getList = async () => {
       finished.value = false;
@@ -558,6 +582,31 @@ export default {
         }
       }
     }
+
+    // 点击标签
+    const active = ref("");
+    const clickLabel = (item) => {
+      console.log(item);
+      list.value = [];
+      searchParams.current = 1;
+      searchParams.labelId = item.name;
+      getList();
+    }
+    // 分组管理
+    const showPopover = ref(false);
+    const actions = [
+      { text: t("device.group"), value: '0' },
+      { text: t("device.addGroup"), value: '1' },
+    ];
+    const selectLabel = (action) =>  {
+      // showToast(action.value);
+      if (action.value == '0') {
+        router.push('/labelMan');
+      }
+      if (action.value == '1') {
+        router.push("/labelManAdd");
+      }
+    }
     return {
       ...toRefs(searchParams),
       list,
@@ -585,6 +634,12 @@ export default {
       sleepDescChg,
       backTop,
       user,
+      labelList,
+      clickLabel,
+      active,
+      actions,
+      showPopover,
+      selectLabel
     };
   },
 };

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

@@ -11,17 +11,54 @@
       </div>
       <!-- <van-divider :style="{ margin: '5px 16px' }" /> -->
       <div class="" v-if="type == '3'">
-        <van-field :label="$t('device.numberOneTm')" :model-value="(deviceDetal.numberOne == null ? $t('device.noData') : deviceDetal.numberOne + $t('device.degree'))" readonly />
-        <van-field :label="$t('device.furnaceHeadTemperature')" :model-value="(deviceDetal.furnaceTm == null ? $t('device.noData') : deviceDetal.furnaceTm + $t('device.degree'))" readonly />
-        <van-field :label="$t('device.candyGeneratorTm')" :model-value="(deviceDetal.candyGeneratorTm == null ? $t('device.noData') : deviceDetal.candyGeneratorTm + $t('device.degree'))" readonly />
-        <van-field :label="$t('device.temperatureInCabinet')" :model-value="(deviceDetal.cabinetTm == null ? $t('device.noData') : deviceDetal.cabinetTm + $t('device.degree'))" readonly />
-        <van-field :label="$t('device.humidityInCabinet')" :model-value="(deviceDetal.cabinetHd == null? $t('device.noData') : deviceDetal.cabinetHd + $t('device.humidity'))" readonly />
-        <van-field :label="$t('device.outsideTm')" :model-value="(deviceDetal.outsideTm == null ? $t('device.noData') : deviceDetal.outsideTm + $t('device.degree'))" readonly />
-        <van-field :label="$t('device.outsidehd')" :model-value="(deviceDetal.outsideHd == null? $t('device.noData') : deviceDetal.outsideHd + $t('device.humidity'))" readonly />
+        <van-field :label="$t('device.numberOneTm')"
+          :model-value="(deviceDetal.numberOne == null ? $t('device.noData') : deviceDetal.numberOne + $t('device.degree'))"
+          readonly />
+        <van-field :label="$t('device.furnaceHeadTemperature')"
+          :model-value="(deviceDetal.furnaceTm == null ? $t('device.noData') : deviceDetal.furnaceTm + $t('device.degree'))"
+          readonly />
+        <van-field :label="$t('device.candyGeneratorTm')"
+          :model-value="(deviceDetal.candyGeneratorTm == null ? $t('device.noData') : deviceDetal.candyGeneratorTm + $t('device.degree'))"
+          readonly />
+        <van-field :label="$t('device.temperatureInCabinet')"
+          :model-value="(deviceDetal.cabinetTm == null ? $t('device.noData') : deviceDetal.cabinetTm + $t('device.degree'))"
+          readonly />
+        <van-field :label="$t('device.humidityInCabinet')"
+          :model-value="(deviceDetal.cabinetHd == null ? $t('device.noData') : deviceDetal.cabinetHd + $t('device.humidity'))"
+          readonly />
+        <van-field :label="$t('device.outsideTm')"
+          :model-value="(deviceDetal.outsideTm == null ? $t('device.noData') : deviceDetal.outsideTm + $t('device.degree'))"
+          readonly />
+        <van-field :label="$t('device.outsidehd')"
+          :model-value="(deviceDetal.outsideHd == null ? $t('device.noData') : deviceDetal.outsideHd + $t('device.humidity'))"
+          readonly />
+      </div>
+      <div v-if="type == '2'">
+        <van-field :label="$t('device.humidityInCabinet')"
+          :model-value="(deviceDetal.cabinetHd == null ? $t('device.noData') : deviceDetal.cabinetHd + $t('device.humidity'))"
+          readonly />
+        <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>
+          </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>
+          </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>
+          </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]">
+        <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]">
           <template #button>
             <van-button size="small" type="primary" class="updataButton" @click="updateParams(item, key)">{{
               $t('device.submitUpdates') }}</van-button>
@@ -30,7 +67,8 @@
         <div class="flex-row" v-else>
           <span class="txt3 o-pl-15 o-mtb-18" v-if="item.name != 'M502'">{{ paramName[key] }}
           </span>
-          <van-switch v-if="item.name != 'M502'" class="o-mt-8" :model-value="checked[key]" @update:model-value="onUpdateValue(item, key)">
+          <van-switch v-if="item.name != 'M502'" class="o-mt-8" :model-value="checked[key]"
+            @update:model-value="onUpdateValue(item, key)">
           </van-switch>
         </div>
       </div>
@@ -42,7 +80,7 @@
 import { onMounted, ref } from "vue";
 import sHeader from "@/components/SimpleHeader";
 import { useRoute } from "vue-router";
-import { getDeviceDetal, getParameters, updateParameters } from "@/service/device";
+import { getDeviceDetal, getParameters, updateParameters, humidityParameters } from "@/service/device";
 import { showFailToast, showSuccessToast, showConfirmDialog, showToast } from "vant";
 import { useI18n } from 'vue-i18n';
 import { styleUrl } from "../../../common/js/utils";
@@ -62,6 +100,7 @@ export default {
     const type = ref("");
     const isChange = ref(false);
     const howLong = ref([]);
+    const interval = ref("");
 
     // 初始化页面获取列表
     onMounted(async () => {
@@ -87,7 +126,9 @@ export default {
       const { data } = await getDeviceDetal({ id: deviceId });
       if (data.code === "00000") {
         deviceDetal.value = data.data;
-        getParametersFun();
+        if (route.query.type != "2") {
+          getParametersFun();
+        }
       } else {
         showFailToast(data.message);
       }
@@ -140,8 +181,8 @@ export default {
       };
       showConfirmDialog({
         title: t('device.tips'),
-        message: t('device.isUpdate') + paramName.value[key] + t('device.to') + item.val + '?'+ (isChange.value ? t('device.attention') : ''),
-      }).then(async() => {
+        message: t('device.isUpdate') + paramName.value[key] + t('device.to') + item.val + '?' + (isChange.value ? t('device.attention') : ''),
+      }).then(async () => {
         const { data } = await updateParameters(params);
         if (data.code) {
           showSuccessToast(t('device.modificationSucceeded'));
@@ -174,6 +215,39 @@ export default {
         // on cancel
       });
     };
+
+    // 一键递增递减
+    const updateInterval = (value) => {
+      const params = {
+        id: deviceId,
+        name: "allUpdate",
+        val: interval.value,
+      };
+      if (value === 0) {
+        params.name = "allUpdate";
+        params.val = interval.value;
+      } else if (value === 0) {
+        params.name = "winter";
+        params.val = "winter";
+      } else {
+        params.name = "summer";
+        params.val = "summer";
+      }
+      showConfirmDialog({
+        title: t('device.tips'),
+        message: t('device.isUpdate') + '?',
+      }).then(async () => {
+        const { data } = await humidityParameters(params);
+        if (data.code) {
+          showSuccessToast(t('device.modificationSucceeded'));
+        } else {
+          showFailToast(data.message);
+        }
+      }).catch(() => {
+
+      })
+    }
+
     return {
       deviceDetal,
       paramsTitle,
@@ -185,6 +259,8 @@ export default {
       onUpdateValue,
       type,
       onUpdateParameters,
+      interval,
+      updateInterval
     };
   },
 };

+ 7 - 5
src/views/feedback.vue

@@ -9,22 +9,24 @@
 // 导入接口
 import sHeader from "@/components/SimpleHeader";
 import { onMounted, ref } from '@vue/runtime-core';
-import { getLoginUser } from '@/common/js/utils';
+import { getLocal } from '@/common/js/utils';
 export default {
   components: {
     sHeader
   },
   setup() {
-    const user = getLoginUser();
+    // const user = getLoginUser();
     const surveyUrl = ref('');
+    let languageName = ref(getLocal("curLang"));
     // 刚进页面
     onMounted(() => {
       // 加载样式
       // styleUrl('feedback');
-      if(user.ifForeign == '1') {
-        surveyUrl.value = 'https://form.antdv.com/r/655ab04d801e005c';
+      console.log(languageName.value);
+      if(languageName.value == 'zh') {
+        surveyUrl.value = 'https://form.antdv.com/r/6533d89c645e0035';
       } else {
-        surveyUrl.value = 'https://form.antdv.com/r/6581b0e5773a00a0';
+        surveyUrl.value = 'https://form.antdv.com/r/65acd89a687600a5';
       }
     });
   

+ 3 - 3
src/views/labelMan/add.vue

@@ -11,7 +11,7 @@
             },
           ]" />
       </div>
-      <div class="kBordBott">
+      <!-- <div class="kBordBott">
         <van-field colon :border="false" required clearable name="type" :label="$t('labelMan.add.type')"
                    :placeholder="$t('labelMan.add.typePlace')" :rules="[
             {
@@ -27,7 +27,7 @@
             </van-radio-group>
           </template>
         </van-field>
-      </div>
+      </div> -->
       <div v-if="cofficentForm.type === '0'" class="kBordBott cust_vantBorder">
         <van-field colon :border="false" required @click-input="busiAdminInpClk" readonly clearable
                    v-model="cofficentForm.adminNames" name="adminNames" :label="$t('labelMan.add.merchant')"
@@ -210,7 +210,7 @@ export default {
       adminId: user.id,
       adminIds: "",
       name: "",
-      type: "0",
+      type: "1",
       adminNames: "",
       equipmentNames: "",
       equipmentIds: "",

+ 8 - 4
src/views/labelMan/index.vue

@@ -47,7 +47,8 @@
         </div>
       </div>
     </div>
-    <kTabs tabWidth="100%" @tabchg="tabChg" :tabList="tabList"></kTabs>
+    <div class="intervalRow"></div>
+    <!-- <kTabs tabWidth="100%" @tabchg="tabChg" :tabList="tabList"></kTabs> -->
     <div class="contentCon">
       <div @click.self="toEdit(item)" v-for="item in tableData" :key="item.id"
            class="o-plr-20 o-pt-24 o-pb-12 l-flex-between kBordBott content">
@@ -85,7 +86,7 @@
 
 <script>
 // 导入tab组件
-import kTabs from "../../components/commom/kTabs/index.vue";
+// import kTabs from "../../components/commom/kTabs/index.vue";
 // 导入公用方法
 import { Format_time, getLoginUser, styleUrl } from "../../common/js/utils";
 // 导入弹窗
@@ -98,7 +99,10 @@ import { useRouter } from "vue-router";
 import { showToast } from "vant";
 import { useI18n } from "vue-i18n";
 export default {
-  components: { sHeader, kDialog, kTabs },
+  components: { sHeader, 
+    kDialog, 
+    // kTabs 
+  },
   setup() {
     const { t } = useI18n();
     // 点击tab
@@ -190,7 +194,7 @@ export default {
     // 筛选条件
     const searchParam = {
       adminId: user.id,
-      type: 0,
+      type: 1,
     }
     // 获取列表
     const getList = () => {

+ 1 - 1
src/views/robotRanking.vue

@@ -765,7 +765,7 @@ export default {
       // if (user.type === 0 || user.type === 2 || isOrderData) {
       //   init();
       // }
-      if (user.type === 0 || user.type === 2) {
+      if (user.type === 0 || user.type === 2 || isM11Included) {
         init();
       }
 

+ 2 - 2
src/views/user.vue

@@ -265,8 +265,8 @@
           </div>
 
           <!-- 意见反馈 -->
-          <!-- <div v-if="user.type > 1" class="taskListRow flex-col" @click="pushPageList('/feedback')"> -->
-          <div v-if="user.id == 31 || user.id == 34" class="taskListRow flex-col" @click="pushPageList('/feedback')">
+          <div v-if="user.type > 1" class="taskListRow flex-col" @click="pushPageList('/feedback')">
+          <!-- <div v-if="user.id == 31 || user.id == 34" class="taskListRow flex-col" @click="pushPageList('/feedback')"> -->
             <div class="taskIcon feedbackIcon"></div>
             <div class="taskRight">
               <div class="taskTitle">{{ $t("user.feedback") }}</div>