6 Commits 71ac4dd5af ... 4d4daef09a

Author SHA1 Message Date
  asd26269546 4d4daef09a bug修改 1 year ago
  asd26269546 4498a54d00 底部按钮控制 bug修改 1 year ago
  asd26269546 6340796a42 bug修改,tab逻辑修改 1 year ago
  cz 4121f98360 1 1 year ago
  cz fb30898df1 1 1 year ago
  cz c032f80a3d 生产计划标签错误解决 1 year ago

+ 8 - 0
src/assets/css/index.scss

@@ -272,4 +272,12 @@ li {
     right: 0;
 }
 
+.main>.van-search{
+    position: fixed!important;
+    top: 46px;
+    left: 0;
+    right: 0;
+    z-index: 3!important;
+}
+
 

+ 1 - 1
src/components/common-list.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="common-list">
-    <ul>
+    <ul style="border-top:52px solid #f2f2f2">
       <li v-for="i in listData" :key="i.id">
         <div class="left-box" style="margin-right: 20px" v-if="isCheckbox">
           <van-checkbox

+ 8 - 1
src/lang/cn.js

@@ -905,12 +905,19 @@ export const lang = {
 		areYouSureYouWantToDeleteThisClassification: '是否确认删除该分类',
 	},
 	home: {
-		//修改密码,新密码,请输入密码,新密码不能为空,我的反馈,反馈,全部,待回复,已回复
+		//修改密码,新密码,请输入密码,新密码不能为空,我的反馈,反馈,全部,待回复,已回复,确认密码,旧密码,旧密码不能为空
 		modifyPassword: '修改密码',
 		newPassword: '新密码',
 		pleaseEnterPassword: '请输入密码',
 		newPasswordCanNotBeEmpty: '新密码不能为空',
 		myFeedback: '我的反馈',
+		feedback: '反馈',
+		all: '全部',
+		pendingReply: '待回复',
+		replied: '已回复',
+		confirmPassword: '确认密码',
+		oldPassword: '旧密码',
+		oldPasswordCanNotBeEmpty: '旧密码不能为空',
 	},
 	userCenter: {
 		//客户画像,修改密码,我的反馈,退出登录,您确定退出本次登录么?,退出成功,退出失败,消息中心,我的邮箱,工作台,待审批,联系我们

+ 10 - 11
src/lang/en.js

@@ -1,4 +1,3 @@
-
 export const lang = {
     "login": {
         "deviceInformation": "Device Information",
@@ -58,8 +57,8 @@ export const lang = {
         "productDetails": "Product details ",
         "equipmentParameters": "Equipment parameters",
         "model": "Type",
-		'searchResults': 'Search results',
-		"noMatchingData": "No matching data",
+        'searchResults': 'Search results',
+        "noMatchingData": "No matching data",
     },
     "feedback": {
         "all": "All",
@@ -307,6 +306,7 @@ export const lang = {
         "planEndTime": "Scheduled end time",
         "selectPlanEndTime": "Please select the planned end time",
         "planEndTimeCanNotBeEmpty": "The planned end time cannot be empty",
+        'planQuantityCanNotBeEmpty': "The planned quantity cannot be empty",
         "workOrderManagement": "Workorder management",
         "productionTask": "Productive task",
         "taskQuantity": "Task QTY",
@@ -700,12 +700,12 @@ export const lang = {
         "passwordCanNotBeEmpty": "Password cannot be empty",
         "roleCanNotBeEmpty": "The role cannot be empty",
         "phoneCanNotBeEmpty": "Mobile phone number cannot be empty",
-        salesmanManagement:'业务员管理',
-		salesmanEdit:'业务员修改',
-		belongDept:'所属部门',
-		employeeName:'员工姓名',
-		businessCode:'业务代码',
-		salesmanCode:'业务员代码',
+        salesmanManagement: '业务员管理',
+        salesmanEdit: '业务员修改',
+        belongDept: '所属部门',
+        employeeName: '员工姓名',
+        businessCode: '业务代码',
+        salesmanCode: '业务员代码',
     },
     "dict": {
         "name": "Business Dictionary",
@@ -917,5 +917,4 @@ export const lang = {
         "ccc": "Storage motor",
         "ddd": "Centrifugal motor"
     }
-}
-
+}

+ 5 - 0
src/router/index.js

@@ -196,6 +196,11 @@ const routes = [{
 				component: () => import('../views/system/salesman/add.vue')
 			},
 			{
+				path: 'user',
+				name: '用户管理',
+				component: () => import('../views/system/user/index.vue')
+			},
+			{
 				path: 'userAdd',
 				name: '用户管理新增',
 				component: () => import('../views/system/user/add.vue')

+ 4 - 1
src/store/index.js

@@ -1,3 +1,6 @@
 import { createPinia } from "pinia";
 const store = createPinia();
-export default store;
+export default store;
+
+
+

+ 21 - 0
src/store/modules/tabType.js

@@ -0,0 +1,21 @@
+import { defineStore } from "pinia";
+const useFooterStore = defineStore(
+    "footer",
+    {
+    state: () => ({
+        tabType: 'working',
+    }),
+    getters: {
+        
+    },
+    actions: {
+        getTabType () {
+            return this.tabType
+        },
+        setTabType (type) {
+            this.tabType = type
+        }
+    },
+});
+
+export default useFooterStore;

+ 5 - 5
src/views/JXSK/mes/forward/index.vue

@@ -50,16 +50,16 @@ const listData = ref([]);
 
 const listConfig = ref([
   {
-    label: proxy.t('forward.productName'),
+    label: proxy.t("forward.productName"),
     prop: "productName",
   },
 
   {
-    label: proxy.t('forward.productSN'),
+    label: proxy.t("forward.productSN"),
     prop: "productSn",
   },
   {
-    label: proxy.t('forward.currentProcess'),
+    label: proxy.t("forward.currentProcess"),
     prop: "productionProcessesName",
   },
 ]);
@@ -81,8 +81,8 @@ const onClickLeft = () => proxy.$router.push("/main/working");
 const toDtl = (row) => {
   let type = "";
   if (
-    row.nextProductionProcessesId === "" ||
-    row.nextProductionProcessesId === -1
+    row.nextProductionProcessesId == "" ||
+    row.nextProductionProcessesId == "-1"
   ) {
     type = "20";
   } else {

+ 1 - 1
src/views/JXSK/mes/receive/add.vue

@@ -61,7 +61,7 @@ const formConfig = reactive([
     type: "input",
     itemType: "text",
     label: proxy.t('receive.productName'),
-    prop: "productionProcessesName",
+    prop: "productName",
     readonly: true,
   },
   {

+ 25 - 11
src/views/MES/produce/plan/add.vue

@@ -16,7 +16,9 @@
           :label="$t('plan.selectWorkOrder')"
           :placeholder="$t('plan.selectWorkOrder')"
           @click="typeModal = true"
-          :rules="[{ required: true, message: $t('plan.workOrderCanNotBeEmpty') }]"
+          :rules="[
+            { required: true, message: $t('plan.workOrderCanNotBeEmpty') },
+          ]"
           required
         />
         <van-popup v-model:show="typeModal" round position="bottom">
@@ -26,7 +28,11 @@
             @confirm="onConfirm"
           />
         </van-popup>
-        <van-field v-model="formData.productName" readonly :label="$t('plan.productName')" />
+        <van-field
+          v-model="formData.productName"
+          readonly
+          :label="$t('plan.productName')"
+        />
         <van-field
           v-model="formData.waitQuantity"
           readonly
@@ -42,7 +48,9 @@
           :label="$t('plan.planStartTime')"
           :placeholder="$t('plan.selectPlanStartTime')"
           @click="handleOpenTime(true)"
-          :rules="[{ required: true, message: $t('plan.planStartTimeCanNotBeEmpty') }]"
+          :rules="[
+            { required: true, message: $t('plan.planStartTimeCanNotBeEmpty') },
+          ]"
           required
         />
         <van-field
@@ -52,7 +60,9 @@
           :label="$t('plan.planEndTime')"
           :placeholder="$t('plan.selectPlanEndTime')"
           @click="handleOpenTime(false)"
-          :rules="[{ required: true, message: $t('plan.planEndTimeCanNotBeEmpty') }]"
+          :rules="[
+            { required: true, message: $t('plan.planEndTimeCanNotBeEmpty') },
+          ]"
           required
         />
         <van-popup v-model:show="showPicker" position="bottom">
@@ -64,17 +74,19 @@
 
         <van-field
           v-model="formData.quantity"
-          :label="$t('plan.planEndTime')"
-          :placeholder="$t('plan.selectPlanEndTime')"
+          :label="$t('plan.planQuantity')"
+          :placeholder="$t('plan.pleaseEnterThePlanQuantity')"
           type="number"
-          :rules="[{ required: true, message: $t('plan.planEndTimeCanNotBeEmpty') }]"
+          :rules="[
+            { required: true, message: $t('plan.planQuantityCanNotBeEmpty') },
+          ]"
           required
         />
       </van-cell-group>
 
       <div style="margin: 16px">
         <van-button round block type="primary" native-type="submit">
-          {{$t("common.submit")}}
+          {{ $t("common.submit") }}
         </van-button>
       </div>
     </van-form>
@@ -158,15 +170,17 @@ const onClickLeft = () => history.back();
 
 const onSubmit = () => {
   if (Number(formData.value.quantity) > Number(formData.value.waitQuantity)) {
-    return showFailToast(proxy.t('plan.planQuantityCanNotBeGreaterThanTheSchedulingQuantity'));
+    return showFailToast(
+      proxy.t("plan.planQuantityCanNotBeGreaterThanTheSchedulingQuantity")
+    );
   }
   if (proxy.compareTime(formData.value.startDate, formData.value.stopDate)) {
-    return showFailToast(proxy.t('plan.timeSelectionProblem'));
+    return showFailToast(proxy.t("plan.timeSelectionProblem"));
   }
   proxy.post("/productionPlan/add", formData.value).then(
     (res) => {
       setTimeout(() => {
-        showSuccessToast(proxy.t('common.addSuccess'));
+        showSuccessToast(proxy.t("common.addSuccess"));
         proxy.$router.push("/main/plan");
       }, 500);
     },

+ 26 - 4
src/views/home/changePassword.vue

@@ -10,13 +10,33 @@
 		<van-form @submit="onSubmit" label-align="top" style="margin-top: 20px">
 			<van-cell-group inset>
 				<van-field
-					v-model="formData.password"
+					v-model="formData.oldPassword"
+					:label="$t('home.oldPassword')"
+					:placeholder="$t('home.pleaseEnterPassword')"
+					:rules="[{ required: true, message: $t('home.oldPasswordCanNotBeEmpty') }]"
+					required
+				/>
+			</van-cell-group>
+			<van-cell-group inset>
+				<van-field
+					v-model="formData.newPassword"
 					:label="$t('home.newPassword')"
 					:placeholder="$t('home.pleaseEnterPassword')"
 					:rules="[{ required: true, message: $t('home.newPasswordCanNotBeEmpty') }]"
 					required
 				/>
 			</van-cell-group>
+			<van-cell-group inset>
+				<van-field
+					v-model="formData.confirmPassword"
+					:label="$t('home.confirmPassword')"
+					:placeholder="$t('home.pleaseEnterPassword')"
+					:rules="[{ required: true, message: $t('home.confirmPassword') }]"
+					required
+				/>
+			</van-cell-group>
+
+			
 			<div style="margin: 16px">
 				<van-button round block type="primary" native-type="submit">
 					{{$t('common.submit')}}
@@ -33,16 +53,18 @@ import { useRoute } from 'vue-router'
 import { getUserInfo } from '@/utils/auth'
 const proxy = getCurrentInstance().proxy
 const formData = ref({
-	password: '',
+	oldPassword: '',
+	newPassword: '',
+	confirmPassword: '',
 	userId: getUserInfo().userId,
 })
 const onClickLeft = () => history.back()
 
 const onSubmit = () => {
-	proxy.post('/tenantUser/resetPwd' , formData.value,'PUT').then(
+	proxy.post('/system/user/profile/updatePwd?oldPassword=' + formData.value.oldPassword + '&newPassword=' +  formData.value.newPassword, {},'PUT').then(
 		(res) => {
 			setTimeout(() => {
-				showSuccessToast($t('common.modifySuccess'))
+				showSuccessToast(proxy.t('common.modifySuccess'))
 				history.back()
 			}, 500)
 		},

+ 1 - 1
src/views/home/coming.vue

@@ -11,7 +11,7 @@
 <script setup>
 import { ref, getCurrentInstance } from "vue";
 const proxy = getCurrentInstance().proxy;
-const onClickLeft = () => proxy.$router.push("/main/working");
+const onClickLeft = () => proxy.$router.back();
 </script>
 <style>
 

+ 1 - 1
src/views/home/feedback.vue

@@ -90,7 +90,7 @@ const onLoad = () => {
     getList()
 }
 
-const onClickLeft = () => proxy.$router.push('/main/working')
+const onClickLeft = () => proxy.$router.back()
 
 const onClickRight = () => {
 	proxy.$router.push('/main/feedbackSubmit')

+ 12 - 6
src/views/home/index.vue

@@ -23,7 +23,7 @@
 					</div>
 					<div class="text">{{$t('userCenter.messageCenter')}}</div>
 				</div>
-				<div class="fun-item" @click="toRouter('email')">
+				<div class="fun-item" @click="toRouter('email','message')">
 					<div class="icon-box">
 						<img src="../../assets/images/iconm_dianzyx.png" alt="">
 					</div>
@@ -35,7 +35,7 @@
 					</div>
 					<div class="text">{{$t('userCenter.workbench')}}</div>
 				</div>
-				<div class="fun-item" @click="toRouter('processApproval?status=1')">
+				<div class="fun-item" @click="toRouter('processApproval?status=1','working')">
 					<div class="icon-box">
 						<img src="../../assets/images/iconm_lissp.png" alt="">
 					</div>
@@ -54,7 +54,7 @@
 					<van-icon name="arrow" size="16" />
 				</div>
 			</li>
-			<li @click="toRouter('feedback')">
+			<li @click="toRouter('feedback','home')">
 				<div class="icon-box">
 					<i class="iconfont icon-iconm_yijianfk"></i>
 				</div>
@@ -63,7 +63,7 @@
 					<van-icon name="arrow" size="16" />
 				</div>
 			</li>
-			<li @click="toRouter('coming')">
+			<li @click="toRouter('coming','home')">
 				<div class="icon-box">
 					<i class="iconfont icon-icomx_message"></i>
 				</div>
@@ -72,7 +72,7 @@
 					<van-icon name="arrow" size="16" />
 				</div>
 			</li>
-			<li @click="toRouter('changePassword')">
+			<li @click="toRouter('changePassword','home')">
 				<div class="icon-box">
 					<i class="iconfont icon-icomx_bianj"></i>
 				</div>
@@ -94,6 +94,7 @@ import { ref, getCurrentInstance, onMounted } from 'vue'
 import { showSuccessToast, showFailToast,showConfirmDialog } from 'vant'
 import { useRoute } from 'vue-router'
 import { getUserInfo } from '@/utils/auth'
+import tabTypeStore from '@/store/modules/tabType'
 const onClickLeft = () => history.back()
 const proxy = getCurrentInstance().proxy
 const userInfo = ref(getUserInfo())
@@ -102,7 +103,12 @@ console.log(userInfo)
 const toMessageList = () => {
 	proxy.$router.push('/main/messageList')
 }
-const toRouter = (url) => {
+const toRouter = (url,tabType) => {
+	if(tabType) {
+		tabTypeStore().setTabType(tabType)
+	}else{
+		tabTypeStore().setTabType(url)
+	}
     proxy.$router.push('/main/' + url)
 }
 const switchLanguage = () => {

+ 3 - 0
src/views/login.vue

@@ -11,6 +11,7 @@
 				label=""
 				:placeholder="$t('login.form.tenantId')"
 				:rules="[{ required: true, message: $t('login.form.tenantId') }]"
+				autocomplete="off"
 			/>
 			<van-field
 				v-model="loginForm.username"
@@ -18,6 +19,7 @@
 				label=""
 				:placeholder="$t('login.form.username')"
 				:rules="[{ required: true, message: $t('login.form.username') }]"
+				autocomplete="off"
 			/>
 			<van-field
 				v-model="loginForm.password"
@@ -26,6 +28,7 @@
 				label=""
 				:placeholder="$t('login.form.password')"
 				:rules="[{ required: true, message: $t('login.form.password') }]"
+				autocomplete="off"
 			/>
 
 			<van-form @submit="onSubmit">

+ 25 - 6
src/views/main.vue

@@ -10,14 +10,14 @@
 		</router-view>
 		
 	</div>
-	<van-tabbar v-model="tabType" v-if="routerName != '/main/processDtl'" :style="isIos() ? 'height:65px' : ''">
-		<van-tabbar-item to="/main/message" :badge="msgCount" :style="isIos() ? 'padding-bottom:15px' : ''">
+	<van-tabbar v-model="tabType" v-if="routerName != '/main/processDtl'"  @change="onChange" :style="isIos() ? 'height:65px' : ''">
+		<van-tabbar-item to="/main/message" name="message" :badge="msgCount" :style="isIos() ? 'padding-bottom:15px' : ''">
 			{{$t('common.message')}}
 			<template #icon="props">
 				<i class="icon iconfont icon-btn_shengc_gray1 footer-icon" :class="props.active ? 'footer-icon-active' : ''"></i>
 			</template>
 		</van-tabbar-item>
-		<van-tabbar-item to="/main/working" :style="isIos() ? 'padding-bottom:15px' : ''">
+		<van-tabbar-item to="/main/working"  name="working" :style="isIos() ? 'padding-bottom:15px' : ''">
 			{{$t('common.workbench')}}
 			<template #icon="props">
 				<i class="icon iconfont icon-btn_gongz footer-icon" :class="props.active ? 'footer-icon-active' : ''"></i>
@@ -26,12 +26,13 @@
 		<van-tabbar-item
 			:style="isIos() ? 'padding-bottom:15px' : ''"
 			:to="tenantId == 'smt' ? '/main/xiamenList' : '/main/equipment'"
+			name="equipment"
 			>{{$t('common.things')}}
 			<template #icon="props">
 				<i class="icon iconfont icon-btn_wulw footer-icon" :class="props.active ? 'footer-icon-active' : ''"></i>
 			</template>
 		</van-tabbar-item>
-		<van-tabbar-item icon="setting-o" to="/main/home" :style="isIos() ? 'padding-bottom:15px' : ''">
+		<van-tabbar-item icon="setting-o" to="/main/home" :style="isIos() ? 'padding-bottom:15px' : ''" name="home">
 			{{$t('common.mine')}}
 			<template #icon="props">
 				<i class="icon iconfont icon-btn_mine footer-icon" :class="props.active ? 'footer-icon-active' : ''"></i>
@@ -40,7 +41,7 @@
 	</van-tabbar>
 </template>
 <script setup>
-import { ref, getCurrentInstance, watch } from 'vue'
+import { ref, getCurrentInstance, watch,computed } from 'vue'
 import { getUserInfo,getToken } from '@/utils/auth'
 import { useRouter } from 'vue-router'
 import { lang } from '@/lang/cn'
@@ -50,9 +51,27 @@ import 'vant/lib/index.css'
 import axios from 'axios'
 import { uploadDdRightBtn } from '@/utils/ddAdapter'
 import { showDialog,showNotify } from 'vant'
+import tabTypeStore from '@/store/modules/tabType'
+
+const onChange = (val) => {
+	tabTypeStore().setTabType(val)
+
+	if (val == 'message') {
+		router.push('/main/message')
+	}
+	if (val == 'working') {
+		router.push('/main/working')
+	}
+	if (val == 'equipment') {
+		router.push('/main/equipment')
+	}
+	if (val == 'home') {
+		router.push('/main/home')
+	}
+}
 const tenantId = getUserInfo().tenantId
 const proxy = getCurrentInstance().proxy
-const tabType = ref('home')
+const tabType = computed(() => tabTypeStore().tabType);
 const msgCount = ref(0)
 const socketInit = () => {
 	window.ws = new WebSocket(

+ 1 - 1
src/views/product-material/material-classification/index.vue

@@ -4,7 +4,7 @@
     <van-pull-refresh v-model="loading" @refresh="onRefresh">
       <div class="list">
         <van-list v-model:loading="loading" :finished="finished" finished-text="" @load="onLoad" style="margin-bottom: 60px">
-          <commonList :data="[]" :config="listConfig"> </commonList>
+          <!-- <commonList :data="[]" :config="listConfig"> </commonList> -->
           <treeNav
             :tree-data="listData"
             @clickAdd="(item) => clickAdd(item)"

+ 1 - 1
src/views/product-material/product-classification/index.vue

@@ -4,7 +4,7 @@
     <van-pull-refresh v-model="loading" @refresh="onRefresh">
       <div class="list">
         <van-list v-model:loading="loading" :finished="finished" finished-text="" @load="onLoad" style="margin-bottom: 60px">
-          <commonList :data="[]" :config="listConfig"> </commonList>
+          <!-- <commonList :data="[]" :config="listConfig"> </commonList> -->
           <treeNav
             :tree-data="listData"
             @clickAdd="(item) => clickAdd(item)"

+ 1 - 1
src/views/purchase-sales/inbound-outbound/waitOutbound/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <van-nav-bar :title="$T('waitOutbound.name')" left-text="" left-arrow @click-left="onClickLeft">
+  <van-nav-bar :title="$t('waitOutbound.name')" left-text="" left-arrow @click-left="onClickLeft">
     <!-- <template #right> 添加 </template> -->
   </van-nav-bar>
   <van-search

+ 1 - 1
src/views/system/dept/index.vue

@@ -16,7 +16,7 @@
 					@load="onLoad"
 					style="margin-bottom: 60px"
 				>
-					<commonList :data="[]" :config="listConfig"> </commonList>
+					<!-- <commonList :data="[]" :config="listConfig"> </commonList> -->
 					<treeNav
 						:tree-data="listData"
 						@clickAdd="(item) => clickAdd(item)"