浏览代码

Merge branch 'master' of http://36.137.93.232:3000/hf/byte-sailing-mobile

cz 1 年之前
父节点
当前提交
f7fdb41e5a
共有 48 个文件被更改,包括 1160 次插入76 次删除
  1. 1 1
      public/index.html
  2. 12 2
      src/assets/css/index.scss
  3. 30 0
      src/router/index.js
  4. 1 1
      src/views/JXSK/mes/forward/index.vue
  5. 1 1
      src/views/JXSK/mes/receive/index.vue
  6. 1 1
      src/views/JXSK/mes/task/index.vue
  7. 1 1
      src/views/JXSK/salesContract/index.vue
  8. 1 1
      src/views/MES/produce/plan/index.vue
  9. 1 1
      src/views/MES/produce/task/index.vue
  10. 1 1
      src/views/MES/produceManage/completeProject/index.vue
  11. 1 1
      src/views/MES/produceManage/completeProject1/index.vue
  12. 1 1
      src/views/MES/produceManage/lineSide/index.vue
  13. 1 1
      src/views/MES/produceManage/reportWork/index.vue
  14. 1 1
      src/views/MES/workOrder/index.vue
  15. 1 1
      src/views/commonModule/contractTemplate/index.vue
  16. 1 1
      src/views/commonModule/multiCompanyConfig/index.vue
  17. 1 1
      src/views/email/inbox.vue
  18. 1 1
      src/views/email/index.vue
  19. 1 1
      src/views/home/feedback.vue
  20. 1 1
      src/views/home/index.vue
  21. 2 2
      src/views/login.vue
  22. 34 34
      src/views/main.vue
  23. 1 1
      src/views/procurementManagement/procureList/index.vue
  24. 1 1
      src/views/procurementManagement/purchased/index.vue
  25. 1 1
      src/views/procurementManagement/subscribe/index.vue
  26. 1 1
      src/views/procurementManagement/supplierConfig/index.vue
  27. 1 1
      src/views/product-material/material-library/index.vue
  28. 1 1
      src/views/product-material/product-library/index.vue
  29. 133 0
      src/views/production/bom/add.vue
  30. 161 0
      src/views/production/bom/index.vue
  31. 1 1
      src/views/production/factory/index.vue
  32. 292 0
      src/views/production/technology/add.vue
  33. 164 0
      src/views/production/technology/index.vue
  34. 133 0
      src/views/production/workingProcedure/add.vue
  35. 161 0
      src/views/production/workingProcedure/index.vue
  36. 1 1
      src/views/production/workshop/index.vue
  37. 1 1
      src/views/purchase-sales/inbound-outbound/manualInbound/index.vue
  38. 1 1
      src/views/purchase-sales/inbound-outbound/manualOutbound/index.vue
  39. 1 1
      src/views/purchase-sales/inbound-outbound/transferWarehouse/index.vue
  40. 1 1
      src/views/purchase-sales/inbound-outbound/waitInbound/index.vue
  41. 1 1
      src/views/purchase-sales/inbound-outbound/waitOutbound/index.vue
  42. 1 1
      src/views/purchase-sales/inventory-management/inventoryQuery/index.vue
  43. 1 1
      src/views/purchase-sales/inventory-management/outInList/index.vue
  44. 1 1
      src/views/system/dict/businessDict.vue
  45. 1 1
      src/views/system/dict/tenantDict.vue
  46. 1 1
      src/views/system/user/index.vue
  47. 1 1
      src/views/warehouse/warehouseConfig/index.vue
  48. 1 1
      src/views/working/index.vue

+ 1 - 1
public/index.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="">
+<html lang="" class="has-bottombar">
   <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">

+ 12 - 2
src/assets/css/index.scss

@@ -5,7 +5,7 @@ body {
     padding: 0;
     font-size: 14px;
     width: 100vw;
-    min-height: 100vh;
+    // min-height: 100vh;
     background-color: #f2f2f2;
     max-width:500px;
     margin: 0 auto;
@@ -230,4 +230,14 @@ li {
 
 :root{
     --van-field-label-width:10.2em!important;
-}
+}
+.has-bottombar:after {
+    content: '';
+    z-index: 9998;
+    position: fixed;
+    left: 0;
+    bottom: -50px;
+    width: 100%;
+    height: 50px;
+    background: #fff;
+}

+ 30 - 0
src/router/index.js

@@ -101,6 +101,36 @@ const routes = [{
 			},
 			//生产管理模块
 			{
+				path: 'bomAdd',
+				name: 'BOM管理',
+				component: () => import('../views/production/bom/add.vue')
+			},
+			{
+				path: 'bom',
+				name: 'BOM管理',
+				component: () => import('../views/production/bom/index.vue')
+			},
+			{
+				path: 'technology',
+				name: '工艺管理',
+				component: () => import('../views/production/technology/index.vue')
+			},
+			{
+				path: 'technologyadd',
+				name: '工艺管理新增',
+				component: () => import('../views/production/technology/add.vue')
+			},
+			{
+				path: 'workingProcedure',
+				name: '工序管理',
+				component: () => import('../views/production/workingProcedure/index.vue')
+			},
+			{
+				path: 'workingProcedureAdd',
+				name: '工序管理新增',
+				component: () => import('../views/production/workingProcedure/add.vue')
+			},
+			{
 				path: 'workshop',
 				name: '车间配置',
 				component: () => import('../views/production/workshop/index.vue')

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

@@ -11,7 +11,7 @@
     </van-nav-bar>
     <van-search
       v-model="req.keyword"
-      placeholder="请输入搜索关键词"
+      placeholder="请输入关键词"
       @search="onRefresh"
     />
 

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

@@ -11,7 +11,7 @@
     </van-nav-bar>
     <van-search
       v-model="req.keyword"
-      placeholder="请输入搜索关键词"
+      placeholder="请输入关键词"
       @search="onRefresh"
     />
 

+ 1 - 1
src/views/JXSK/mes/task/index.vue

@@ -11,7 +11,7 @@
     </van-nav-bar>
     <van-search
       v-model="req.keyword"
-      placeholder="请输入搜索关键词"
+      placeholder="请输入关键词"
       @search="onRefresh"
     />
 

+ 1 - 1
src/views/JXSK/salesContract/index.vue

@@ -10,7 +10,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-pull-refresh v-model="loading" @refresh="onRefresh">

+ 1 - 1
src/views/MES/produce/plan/index.vue

@@ -11,7 +11,7 @@
     </van-nav-bar>
     <van-search
       v-model="req.keyword"
-      placeholder="请输入搜索关键词"
+      placeholder="请输入关键词"
       @search="onRefresh"
     />
 

+ 1 - 1
src/views/MES/produce/task/index.vue

@@ -11,7 +11,7 @@
     </van-nav-bar>
     <van-search
       v-model="req.keyword"
-      placeholder="请输入搜索关键词"
+      placeholder="请输入关键词"
       @search="onRefresh"
     />
 

+ 1 - 1
src/views/MES/produceManage/completeProject/index.vue

@@ -11,7 +11,7 @@
     </van-nav-bar>
     <van-search
       v-model="req.keyword"
-      placeholder="请输入搜索关键词"
+      placeholder="请输入关键词"
       @search="onRefresh"
     />
 

+ 1 - 1
src/views/MES/produceManage/completeProject1/index.vue

@@ -3,7 +3,7 @@
     <van-nav-bar title="完工入库" left-text="" left-arrow>
       <template #right> 添加 </template>
     </van-nav-bar>
-    <van-search v-model="req.keyword" placeholder="请输入搜索关键词" />
+    <van-search v-model="req.keyword" placeholder="请输入关键词" />
     <testForm
       v-model="formData.data"
       :formOption="formOption"

+ 1 - 1
src/views/MES/produceManage/lineSide/index.vue

@@ -11,7 +11,7 @@
     </van-nav-bar>
     <van-search
       v-model="req.keyword"
-      placeholder="请输入搜索关键词"
+      placeholder="请输入关键词"
       @search="onRefresh"
     />
 

+ 1 - 1
src/views/MES/produceManage/reportWork/index.vue

@@ -10,7 +10,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-pull-refresh v-model="loading" @refresh="onRefresh">

+ 1 - 1
src/views/MES/workOrder/index.vue

@@ -11,7 +11,7 @@
     </van-nav-bar>
     <van-search
       v-model="req.keyword"
-      placeholder="请输入搜索关键词"
+      placeholder="请输入关键词"
       @search="onRefresh"
     />
 

+ 1 - 1
src/views/commonModule/contractTemplate/index.vue

@@ -2,7 +2,7 @@
   <van-nav-bar title="销售合同模板" left-text="" left-arrow @click-left="onClickLeft" @click-right="onClickRight">
     <template #right> 添加 </template>
   </van-nav-bar>
-  <van-search v-model="req.keyword" placeholder="请输入搜索关键词" @search="onRefresh" />
+  <van-search v-model="req.keyword" placeholder="请输入关键词" @search="onRefresh" />
   <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">

+ 1 - 1
src/views/commonModule/multiCompanyConfig/index.vue

@@ -2,7 +2,7 @@
   <van-nav-bar title="多公司配置" left-text="" left-arrow @click-left="onClickLeft" @click-right="onClickRight">
     <template #right> 添加 </template>
   </van-nav-bar>
-  <van-search v-model="req.keyword" placeholder="请输入搜索关键词" @search="onRefresh" />
+  <van-search v-model="req.keyword" placeholder="请输入关键词" @search="onRefresh" />
   <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">

+ 1 - 1
src/views/email/inbox.vue

@@ -9,7 +9,7 @@
             @click-right="onClickRight"
         >
         </van-nav-bar>
-        <van-search v-model="value" show-action placeholder="请输入搜索关键词">
+        <van-search v-model="value" show-action placeholder="请输入关键词">
             <template #action>
                 <div @click="onClickButton">搜索</div>
             </template>

+ 1 - 1
src/views/email/index.vue

@@ -8,7 +8,7 @@
             
         >
         </van-nav-bar>
-        <van-search v-model="value" show-action placeholder="请输入搜索关键词">
+        <van-search v-model="value" show-action placeholder="请输入关键词">
             <template #action>
                 <div @click="onClickButton">搜索</div>
             </template>

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

@@ -10,7 +10,7 @@
 			反馈
 		</template>
 	</van-nav-bar>
-	<van-search v-model="req.keyword"  placeholder="请输入搜索关键词" @search="onRefresh" />
+	<van-search v-model="req.keyword"  placeholder="请输入关键词" @search="onRefresh" />
 
 	<van-pull-refresh v-model="loading" @refresh="onRefresh" class="feedback">
 		<van-tabs v-model:active="req.status" @click-tab="onRefresh">

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

@@ -84,7 +84,7 @@ const logout = () => {
 <style lang="scss">
 .home {
 	background: #fff;
-	min-height: 100vh;
+	min-height: 100%;
 	.van-nav-bar {
 		background: rgba(0, 0, 0, 0);
 	}

+ 2 - 2
src/views/login.vue

@@ -206,7 +206,7 @@ const ddLoginInit = () => {
 		proxy.$router.push('/main')
 	}
 	dd.ready(function () {
-		
+		dd.ui.webViewBounce.disable();
 		dd.runtime.permission.requestAuthCode({
 			corpId: route.query.id, // 企业id
 			onSuccess: function (info) {
@@ -216,7 +216,7 @@ const ddLoginInit = () => {
 					.post('/open/dingApi/getUserToken', { code: code.value,corpId:route.query.id })
 					.then((res) => {
 						window.localStorage.setItem('corpId',route.query.id)
-						dd.ui.webViewBounce.disable();
+						
 						setToken(res.data)
 						getInfo()
 					})

+ 34 - 34
src/views/main.vue

@@ -1,29 +1,20 @@
 <template>
 	<div class="main">
-		<div class="footer">
-			<van-tabbar v-model="tabType">
-				<van-tabbar-item icon="home-o" to="/main/message"
-					>消息</van-tabbar-item
-				>
-				<van-tabbar-item icon="search" to="/main/working"
-					>工作台</van-tabbar-item
-				>
-				<van-tabbar-item
-					icon="friends-o"
-					:to="
-						tenantId == 'xmhjc'
-							? '/main/xiamenList'
-							: '/main/equipment'
-					"
-					>物联网</van-tabbar-item
-				>
-				<van-tabbar-item icon="setting-o" to="/main/home"
-					>我的</van-tabbar-item
-				>
-			</van-tabbar>
-		</div>
+		<router-view />
+		<div class="footer"></div>
 	</div>
-	<router-view />
+	<van-tabbar v-model="tabType">
+		<van-tabbar-item icon="home-o" to="/main/message">消息</van-tabbar-item>
+		<van-tabbar-item icon="search" to="/main/working"
+			>工作台</van-tabbar-item
+		>
+		<van-tabbar-item
+			icon="friends-o"
+			:to="tenantId == 'xmhjc' ? '/main/xiamenList' : '/main/equipment'"
+			>物联网</van-tabbar-item
+		>
+		<van-tabbar-item icon="setting-o" to="/main/home">我的</van-tabbar-item>
+	</van-tabbar>
 </template>
 <script setup>
 import { ref, getCurrentInstance, watch } from 'vue'
@@ -59,28 +50,37 @@ const corpId = window.localStorage.getItem('corpId')
 //监听路由变化
 const router = useRouter()
 watch(router.currentRoute, (to, from) => {
-	console.log(dd.biz,123123138713827)
+	//滚动条回到顶部
+	document.documentElement.scrollTop = 0
+	if (!corpId) return
 	dd.biz.navigation.setTitle({
-		title : router.currentRoute.value.name,
-		onSuccess : function(result) {
-		},
-		onFail : function(err) {}
-	});
-	
+		title: router.currentRoute.value.name,
+		onSuccess: function (result) {},
+		onFail: function (err) {},
+	})
+	//设置右侧按钮
+	proxy.uploadDdRightBtn(function () {}, ' ')
+
 	//获取元素的绑定事件
 	setTimeout(() => {
-		if(!corpId) {
+		if (!corpId) {
 			return
 		}
 		let el = document.getElementsByClassName('van-nav-bar__content')[0]
-		if(el) {
+		if (el) {
 			//删除el元素
 			el.parentNode.removeChild(el)
 		}
-	}, 100)
+	}, 10)
 })
 </script>
 <style lang="scss">
-.footer {
+.main {
+	position: fixed;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 50px;
+	overflow-y: auto;
 }
 </style>

+ 1 - 1
src/views/procurementManagement/procureList/index.vue

@@ -10,7 +10,7 @@
 	</van-nav-bar>
 	<van-search
 		v-model="req.keyword"
-		placeholder="请输入搜索关键词"
+		placeholder="请输入关键词"
 		@search="onRefresh"
 	/>
 	<van-pull-refresh v-model="loading" @refresh="onRefresh">

+ 1 - 1
src/views/procurementManagement/purchased/index.vue

@@ -10,7 +10,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-pull-refresh v-model="loading" @refresh="onRefresh">

+ 1 - 1
src/views/procurementManagement/subscribe/index.vue

@@ -10,7 +10,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-pull-refresh v-model="loading" @refresh="onRefresh">

+ 1 - 1
src/views/procurementManagement/supplierConfig/index.vue

@@ -2,7 +2,7 @@
     <van-nav-bar title="供应商信息" left-text="" left-arrow @click-left="onClickLeft" @click-right="onClickRight">
       <template #right> 添加 </template>
     </van-nav-bar>
-    <van-search v-model="req.keyword" placeholder="请输入搜索关键词" @search="onRefresh" />
+    <van-search v-model="req.keyword" placeholder="请输入关键词" @search="onRefresh" />
     <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">

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

@@ -2,7 +2,7 @@
   <van-nav-bar title="物料库" left-text="" left-arrow @click-left="onClickLeft" @click-right="onClickRight">
     <template #right> 添加 </template>
   </van-nav-bar>
-  <van-search v-model="req.keyword" placeholder="请输入搜索关键词" @search="onRefresh" />
+  <van-search v-model="req.keyword" placeholder="请输入关键词" @search="onRefresh" />
   <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">

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

@@ -2,7 +2,7 @@
   <van-nav-bar title="产品库" left-text="" left-arrow @click-left="onClickLeft" @click-right="onClickRight">
     <template #right> 添加 </template>
   </van-nav-bar>
-  <van-search v-model="req.keyword" placeholder="请输入搜索关键词" @search="onRefresh" />
+  <van-search v-model="req.keyword" placeholder="请输入关键词" @search="onRefresh" />
   <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">

+ 133 - 0
src/views/production/bom/add.vue

@@ -0,0 +1,133 @@
+<template>
+	<div class="form">
+		<van-nav-bar
+			title="工序管理"
+			left-text="返回"
+			left-arrow
+			@click-left="onClickLeft"
+		>
+		</van-nav-bar>
+
+		<testForm
+			v-model="formData.data"
+			:formOption="formOption"
+			:formConfig="formConfig"
+			:rules="rules"
+			@onSubmit="onSubmit"
+			ref="formDom"
+		></testForm>
+	</div>
+</template>
+
+<script setup>
+import { ref, getCurrentInstance, onMounted, reactive } from 'vue'
+import { showSuccessToast, showToast } from 'vant'
+import { useRoute } from 'vue-router'
+import { getUserInfo } from '@/utils/auth'
+import testForm from '@/components/testForm/index.vue'
+const proxy = getCurrentInstance().proxy
+const route = useRoute()
+const show = ref(false)
+const typeModal = ref(false)
+const unitModal = ref(false)
+const classification = ref([])
+const formData = reactive({
+	data: {},
+})
+const formDom = ref(null)
+const formOption = reactive({
+	readonly: false, //用于控制整个表单是否只读
+	disabled: false,
+	labelAlign: 'top',
+	scroll: true,
+	labelWidth: '62pk',
+	// hiddenSubmitBtn: true,
+})
+const formConfig = reactive([
+	
+	{
+		type: 'input',
+		itemType: 'text',
+		label: '车间名称',
+		prop: 'name',
+		clearable: true,
+	},
+	{
+		type: 'input',
+		itemType: 'textarea',
+		label: '备注',
+		prop: 'remarks',
+	},
+	{
+		type: 'upload',
+		label: '文件上传',
+		prop: 'fileList',
+	},
+	
+])
+const rules = {
+	name: [{ required: true, message: '车间类型不能为空' }],
+	fileList: [{ required: true, message: '请上传工序文件' }],
+}
+const unitList = ref([])
+
+const getUserList = () => {
+    proxy
+        .get('/system/user/list?pageNum=1&pageSize=10000', {
+        })
+        .then((res) => {
+            formConfig[2].data = res.rows
+        })
+}
+getUserList()
+const fileList = ref([])
+const onOversize = () => {
+	showToast('文件大小不能超过 5MB')
+}
+const onClickLeft = () => history.back()
+const onSubmit = () => {
+	console.log(formData)
+
+	proxy.post('/productionProcesses/' + route.query.type, formData.data).then(() => {
+		showSuccessToast(route.query.type === 'add' ? '添加成功' : '修改成功')
+		setTimeout(() => {
+			history.back()
+		}, 500)
+	})
+}
+const treeToList = (arr) => {
+	let res = [] // 用于存储递归结果(扁平数据)
+	// 递归函数
+	let fn = (source) => {
+		source.forEach((el) => {
+			res.push(el)
+			el.children && el.children.length > 0 ? fn(el.children) : '' // 子级递归
+		})
+	}
+	fn(arr)
+	return res
+}
+onMounted(() => {
+	if (route.query.id) {
+        proxy
+            .post('/productionProcesses/detail', { id: route.query.id })
+            .then((resDetail) => {
+                formData.data = resDetail.data
+            })
+		proxy.post("/fileInfo/getList", { businessIdList: [route.query.id] }).then((res) => {
+			if (res.data[route.query.id] && res.data[route.query.id].length > 0) {
+				formData.data.fileList = res.data[route.query.id];
+				formData.data.fileList = formData.data.fileList.map((item) => {
+					return {
+						...item,
+						url: item.fileUrl,
+					};
+				});
+			} else {
+				formData.data.fileList = [];
+				fileList.value = [];
+			}
+		});
+    }
+})
+</script>

+ 161 - 0
src/views/production/bom/index.vue

@@ -0,0 +1,161 @@
+<template>
+	<van-nav-bar
+		title="BOM管理"
+		left-text=""
+		left-arrow
+		@click-left="onClickLeft"
+		@click-right="onClickRight"
+	>
+		<template #right> 添加 </template>
+	</van-nav-bar>
+	<van-search
+		v-model="req.keyword"
+		placeholder="请输入关键词"
+		@search="onRefresh"
+	/>
+	<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="listData"
+					@onClick="toDtl"
+					:config="listConfig"
+				></commonList>
+			</van-list>
+		</div>
+	</van-pull-refresh>
+</template>
+<script setup>
+import { ref, getCurrentInstance } from 'vue'
+import commonList from '@/components/common-list.vue'
+import { useRoute } from 'vue-router'
+
+const loading = ref(false)
+const router = useRoute()
+const req = ref({
+	pageNum: 1,
+	keyword: null,
+	definition: '1',
+})
+const finished = ref(false)
+const proxy = getCurrentInstance().proxy
+const listData = ref([])
+const classification = ref([])
+const listConfig = ref([
+	{
+		label: '工序名称',
+		prop: 'name',
+	},
+	{
+		label: '工序说明',
+		prop: 'remarks',
+	},
+	{
+		label: '工序文件',
+		prop: 'fileName',
+	},
+])
+//车间类型
+const typeList = ref([
+	{
+		label: '普通车间',
+		value: '1',
+	},
+	{
+		label: '半自动化车间',
+		value: '2',
+	},
+	{
+		label: '自动化车间',
+		value: '3',
+	},
+])
+const onRefresh = () => {
+	req.value.pageNum = 1
+	finished.value = false
+	getList('refresh')
+}
+const onLoad = () => {
+	getClassification()
+}
+const onClickLeft = () => proxy.$router.push('/main/working')
+const onClickRight = () => {
+	proxy.$router.push({
+		path: 'workingProcedureAdd',
+		query: {
+			type: 'add',
+		},
+	})
+}
+proxy.uploadDdRightBtn(onClickRight,'添加')
+const toDtl = (row) => {
+	proxy.$router.push({
+		path: 'workingProcedureAdd',
+		query: {
+			id: row.id,
+			type: 'edit',
+		},
+	})
+}
+const treeToList = (arr) => {
+	let res = [] // 用于存储递归结果(扁平数据)
+	// 递归函数
+	let fn = (source) => {
+		source.forEach((el) => {
+			res.push(el)
+			el.children && el.children.length > 0 ? fn(el.children) : '' // 子级递归
+		})
+	}
+	fn(arr)
+	return res
+}
+const getClassification = () => {
+	if (classification.value && classification.value.length > 0) {
+		getList()
+	} else {
+		proxy
+			.post('/productClassify/tree', {
+				parentId: '',
+				name: '',
+				definition: '1',
+			})
+			.then((res) => {
+				classification.value = treeToList(res.data)
+				getList()
+			})
+	}
+}
+const getList = (type) => {
+	loading.value = true
+	proxy
+		.post('/bomInfo/page', req.value)
+		.then((res) => {
+			
+			listData.value =
+				type === 'refresh'
+					? res.data.rows
+					: listData.value.concat(res.data.rows)
+			if (req.value.pageNum * 10 >= res.data.total) {
+				finished.value = true
+			}
+			req.value.pageNum++
+			loading.value = false
+            
+		})
+		.catch((err) => {
+			loading.value = false
+		})
+}
+</script>
+
+<style lang="scss" scoped>
+.list {
+	min-height: 70vh;
+}
+</style>

+ 1 - 1
src/views/production/factory/index.vue

@@ -10,7 +10,7 @@
 	</van-nav-bar>
 	<van-search
 		v-model="req.keyword"
-		placeholder="请输入搜索关键词"
+		placeholder="请输入关键词"
 		@search="onRefresh"
 	/>
 	<van-pull-refresh v-model="loading" @refresh="onRefresh">

+ 292 - 0
src/views/production/technology/add.vue

@@ -0,0 +1,292 @@
+<template>
+	<div class="form">
+		<van-nav-bar
+			title="工序管理"
+			left-text="返回"
+			left-arrow
+			@click-left="onClickLeft"
+		>
+		</van-nav-bar>
+
+		<testForm
+			v-model="formData.data"
+			:formOption="formOption"
+			:formConfig="formConfig"
+			:rules="rules"
+			@onSubmit="onSubmit"
+			ref="formDom"
+		>
+			<template #processRouteList>
+				<div class="row">
+					<div class="col" style="width: 50%">
+						<van-checkbox-group
+							v-model="formData.data.processRouteList"
+						>
+							<van-checkbox
+								:name="i.id"
+								v-for="i in processRouteListData"
+								:key="i.id"
+								>{{ i.name }}</van-checkbox
+							>
+						</van-checkbox-group>
+					</div>
+					<div class="col" style="width: 50%">
+						<div v-for="(i, index) in formData.data.processRouteList" draggable="true">
+							<van-icon name="arrow-up" @click="sortUp(i)" />
+							<van-icon name="arrow-down" @click="sortdown(i)" />
+							<span style="margin-right: 10px">{{
+								index + 1
+							}}</span>
+							{{ getName2(i) }}
+						</div>
+					</div>
+				</div>
+			</template>
+			<template #applicableProductsList>
+				<div
+					style="color: #999; width: calc(100vw - 32px)"
+					@click="show = true"
+				>
+					请选择
+				</div>
+				<div class="selectd" @click="show = true">
+					<div>
+						<van-tag
+							v-for="i in formData.data.applicableProductsList"
+							:key="i"
+							closeable
+							size="medium"
+							type="primary"
+							@close="deleteTag(i.id)"
+							style="margin-right: 10px"
+						>
+							{{ getName(i) }}
+						</van-tag>
+					</div>
+				</div>
+			</template>
+		</testForm>
+		<van-popup
+			v-model:show="show"
+			closeable
+			position="bottom"
+			:style="{ height: '60%' }"
+		>
+			<div style="height: 50px; width: 100px"></div>
+			<van-checkbox-group v-model="formData.data.applicableProductsList">
+				<van-cell-group inset v-for="i in productInfoData" :key="i.id">
+					<van-cell clickable :title="i.name">
+						<template #right-icon>
+							<van-checkbox :name="i.id"></van-checkbox>
+						</template>
+					</van-cell>
+				</van-cell-group>
+			</van-checkbox-group>
+		</van-popup>
+	</div>
+</template>
+
+<script setup>
+import { ref, getCurrentInstance, onMounted, reactive } from 'vue'
+import { showSuccessToast, showToast } from 'vant'
+import { useRoute } from 'vue-router'
+import { getUserInfo } from '@/utils/auth'
+import testForm from '@/components/testForm/index.vue'
+
+const proxy = getCurrentInstance().proxy
+const route = useRoute()
+const show = ref(false)
+const typeModal = ref(false)
+const unitModal = ref(false)
+const classification = ref([])
+const formData = reactive({
+	data: {
+		checked: [],
+	},
+})
+const formDom = ref(null)
+const formOption = reactive({
+	readonly: false, //用于控制整个表单是否只读
+	disabled: false,
+	labelAlign: 'top',
+	scroll: true,
+	labelWidth: '62pk',
+	// hiddenSubmitBtn: true,
+})
+let selected = ref([])
+
+const sortUp = (id) => {
+	let index = formData.data.processRouteList.findIndex((i) => i === id)
+	if (index === 0) {
+		return
+	}
+	let temp = formData.data.processRouteList[index]
+	formData.data.processRouteList[index] = formData.data.processRouteList[index - 1]
+	formData.data.processRouteList[index - 1] = temp
+}
+
+const sortdown = (id) => {
+	let index = formData.data.processRouteList.findIndex((i) => i === id)
+	if (index === formData.data.processRouteList.length - 1) {
+		return
+	}
+	let temp = formData.data.processRouteList[index]
+	formData.data.processRouteList[index] = formData.data.processRouteList[index + 1]
+	formData.data.processRouteList[index + 1] = temp
+}
+
+
+
+const deleteTag = (id) => {
+	let index = formData.data.applicableProductsList.findIndex((i) => i.id === id)
+	formData.data.applicableProductsList.splice(index, 1)
+}
+
+const getName = (id) => {
+	let name = ''
+	productInfoData.value.forEach((i) => {
+		if (i.id === id) {
+			name = i.name
+		}
+	})
+	return name
+}
+
+const getName2 = (id) => {
+	let name = ''
+	processRouteListData.value.forEach((i) => {
+		if (i.id === id) {
+			name = i.name
+		}
+	})
+	return name
+}
+
+const formConfig = reactive([
+	{
+		type: 'input',
+		itemType: 'text',
+		label: '车间名称',
+		prop: 'name',
+		clearable: true,
+	},
+	{
+		type: 'slot',
+		label: '工艺线路',
+		slotName: 'processRouteList',
+	},
+	{
+		type: 'slot',
+		label: '适用产品',
+		slotName: 'applicableProductsList',
+	},
+])
+const rules = {
+	name: [{ required: true, message: '车间类型不能为空' }],
+	fileList: [{ required: true, message: '请上传工序文件' }],
+}
+const unitList = ref([])
+let processRouteListData = ref([])
+const getUserList = () => {
+	proxy.get('/system/user/list?pageNum=1&pageSize=10000', {}).then((res) => {
+		formConfig[2].data = res.rows
+	})
+}
+getUserList()
+const fileList = ref([])
+const onOversize = () => {
+	showToast('文件大小不能超过 5MB')
+}
+const onClickLeft = () => history.back()
+const onSubmit = () => {
+	console.log(formData)
+	formData.data.productList = formData.data.applicableProductsList.map(item=>{
+		return {
+			productId:item
+		}
+	})
+	proxy
+		.post('/technology/' + route.query.type, formData.data)
+		.then(() => {
+			showSuccessToast(
+				route.query.type === 'add' ? '添加成功' : '修改成功'
+			)
+			setTimeout(() => {
+				history.back()
+			}, 500)
+		})
+}
+const treeToList = (arr) => {
+	let res = [] // 用于存储递归结果(扁平数据)
+	// 递归函数
+	let fn = (source) => {
+		source.forEach((el) => {
+			res.push(el)
+			el.children && el.children.length > 0 ? fn(el.children) : '' // 子级递归
+		})
+	}
+	fn(arr)
+	return res
+}
+const getDtl = (id) => {
+	proxy
+		.post('/productionProcesses/page', { id: route.query.id })
+		.then((resDetail) => {
+			processRouteListData.value = resDetail.data.rows
+			console.log(processRouteListData.value)
+		})
+	proxy
+		.post('/productInfo/page', { pageNum: 1, pageSize: 10000 })
+		.then((resDetail) => {
+			productInfoData.value = resDetail.data.rows
+		})
+}
+let productInfoData = ref([])
+onMounted(() => {
+	if (route.query.id) {
+		proxy
+			.post('/technology/detail', { id: route.query.id })
+			.then((resDetail) => {
+				formData.data = {
+					...resDetail.data,
+					processRouteList: resDetail.data.processRouteList.map(
+						(item) => item.id
+					),
+					applicableProductsList: resDetail.data.applicableProductsList.map(
+						(item) => item.id
+					),
+
+				}
+				getDtl()
+			})
+	}else{
+		getDtl()
+	}
+	
+})
+</script>
+<style scoped lang="scss">
+.row {
+	overflow: hidden;
+	width: calc(100vw - 32px);
+	.col {
+		width: 50%;
+		float: left;
+		box-sizing: border-box;
+		padding: 0 10px;
+		overflow: hidden;
+		.van-icon-arrow-down,
+		.van-icon-arrow-up {
+			display: inline-block;
+			height: 18px;
+			margin: 1px 3px;
+			line-height: 18px;
+			background: #1989fa;
+			width: 18px;
+			color: #fff;
+			border-radius: 9px;
+			text-align: center;
+		}
+	}
+}
+</style>

+ 164 - 0
src/views/production/technology/index.vue

@@ -0,0 +1,164 @@
+<template>
+	<van-nav-bar
+		title="工艺管理"
+		left-text=""
+		left-arrow
+		@click-left="onClickLeft"
+		@click-right="onClickRight"
+	>
+		<template #right> 添加 </template>
+	</van-nav-bar>
+	<van-search
+		v-model="req.keyword"
+		placeholder="请输入关键词"
+		@search="onRefresh"
+	/>
+	<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="listData"
+					@onClick="toDtl"
+					:config="listConfig"
+				></commonList>
+			</van-list>
+		</div>
+	</van-pull-refresh>
+</template>
+<script setup>
+import { ref, getCurrentInstance } from 'vue'
+import commonList from '@/components/common-list.vue'
+import { useRoute } from 'vue-router'
+
+const loading = ref(false)
+const router = useRoute()
+const req = ref({
+	pageNum: 1,
+	keyword: null,
+	definition: '1',
+})
+const finished = ref(false)
+const proxy = getCurrentInstance().proxy
+const listData = ref([])
+const classification = ref([])
+const listConfig = ref([
+	{
+		label: '工序名称',
+		prop: 'name',
+	},
+	{
+		label: '工艺路线',
+		prop: 'processRouteNameListText',
+	},
+	{
+		label: '适用产品',
+		prop: 'applicableProductsNameListText',
+	},
+])
+//车间类型
+const typeList = ref([
+	{
+		label: '普通车间',
+		value: '1',
+	},
+	{
+		label: '半自动化车间',
+		value: '2',
+	},
+	{
+		label: '自动化车间',
+		value: '3',
+	},
+])
+const onRefresh = () => {
+	req.value.pageNum = 1
+	finished.value = false
+	getList('refresh')
+}
+const onLoad = () => {
+	getClassification()
+}
+const onClickLeft = () => proxy.$router.push('/main/working')
+const onClickRight = () => {
+	proxy.$router.push({
+		path: 'technologyAdd',
+		query: {
+			type: 'add',
+		},
+	})
+}
+proxy.uploadDdRightBtn(onClickRight,'添加')
+const toDtl = (row) => {
+	proxy.$router.push({
+		path: 'technologyAdd',
+		query: {
+			id: row.id,
+			type: 'edit',
+		},
+	})
+}
+const treeToList = (arr) => {
+	let res = [] // 用于存储递归结果(扁平数据)
+	// 递归函数
+	let fn = (source) => {
+		source.forEach((el) => {
+			res.push(el)
+			el.children && el.children.length > 0 ? fn(el.children) : '' // 子级递归
+		})
+	}
+	fn(arr)
+	return res
+}
+const getClassification = () => {
+	if (classification.value && classification.value.length > 0) {
+		getList()
+	} else {
+		proxy
+			.post('/productClassify/tree', {
+				parentId: '',
+				name: '',
+				definition: '1',
+			})
+			.then((res) => {
+				classification.value = treeToList(res.data)
+				getList()
+			})
+	}
+}
+const getList = (type) => {
+	loading.value = true
+	proxy
+		.post('technology/page', req.value)
+		.then((res) => {
+			
+			listData.value =
+				type === 'refresh'
+					? res.data.rows
+					: listData.value.concat(res.data.rows)
+			if (req.value.pageNum * 10 >= res.data.total) {
+				finished.value = true
+			}
+			req.value.pageNum++
+			loading.value = false
+            listData.value.map(item=>{
+				item.processRouteNameListText = item.processRouteNameList.join('>')
+				item.applicableProductsNameListText = item.applicableProductsNameList.join(',')
+			})
+		})
+		.catch((err) => {
+			loading.value = false
+		})
+}
+</script>
+
+<style lang="scss" scoped>
+.list {
+	min-height: 70vh;
+}
+</style>

+ 133 - 0
src/views/production/workingProcedure/add.vue

@@ -0,0 +1,133 @@
+<template>
+	<div class="form">
+		<van-nav-bar
+			title="工序管理"
+			left-text="返回"
+			left-arrow
+			@click-left="onClickLeft"
+		>
+		</van-nav-bar>
+
+		<testForm
+			v-model="formData.data"
+			:formOption="formOption"
+			:formConfig="formConfig"
+			:rules="rules"
+			@onSubmit="onSubmit"
+			ref="formDom"
+		></testForm>
+	</div>
+</template>
+
+<script setup>
+import { ref, getCurrentInstance, onMounted, reactive } from 'vue'
+import { showSuccessToast, showToast } from 'vant'
+import { useRoute } from 'vue-router'
+import { getUserInfo } from '@/utils/auth'
+import testForm from '@/components/testForm/index.vue'
+const proxy = getCurrentInstance().proxy
+const route = useRoute()
+const show = ref(false)
+const typeModal = ref(false)
+const unitModal = ref(false)
+const classification = ref([])
+const formData = reactive({
+	data: {},
+})
+const formDom = ref(null)
+const formOption = reactive({
+	readonly: false, //用于控制整个表单是否只读
+	disabled: false,
+	labelAlign: 'top',
+	scroll: true,
+	labelWidth: '62pk',
+	// hiddenSubmitBtn: true,
+})
+const formConfig = reactive([
+	
+	{
+		type: 'input',
+		itemType: 'text',
+		label: '车间名称',
+		prop: 'name',
+		clearable: true,
+	},
+	{
+		type: 'input',
+		itemType: 'textarea',
+		label: '备注',
+		prop: 'remarks',
+	},
+	{
+		type: 'upload',
+		label: '文件上传',
+		prop: 'fileList',
+	},
+	
+])
+const rules = {
+	name: [{ required: true, message: '车间类型不能为空' }],
+	fileList: [{ required: true, message: '请上传工序文件' }],
+}
+const unitList = ref([])
+
+const getUserList = () => {
+    proxy
+        .get('/system/user/list?pageNum=1&pageSize=10000', {
+        })
+        .then((res) => {
+            formConfig[2].data = res.rows
+        })
+}
+getUserList()
+const fileList = ref([])
+const onOversize = () => {
+	showToast('文件大小不能超过 5MB')
+}
+const onClickLeft = () => history.back()
+const onSubmit = () => {
+	console.log(formData)
+
+	proxy.post('/productionProcesses/' + route.query.type, formData.data).then(() => {
+		showSuccessToast(route.query.type === 'add' ? '添加成功' : '修改成功')
+		setTimeout(() => {
+			history.back()
+		}, 500)
+	})
+}
+const treeToList = (arr) => {
+	let res = [] // 用于存储递归结果(扁平数据)
+	// 递归函数
+	let fn = (source) => {
+		source.forEach((el) => {
+			res.push(el)
+			el.children && el.children.length > 0 ? fn(el.children) : '' // 子级递归
+		})
+	}
+	fn(arr)
+	return res
+}
+onMounted(() => {
+	if (route.query.id) {
+        proxy
+            .post('/productionProcesses/detail', { id: route.query.id })
+            .then((resDetail) => {
+                formData.data = resDetail.data
+            })
+		proxy.post("/fileInfo/getList", { businessIdList: [route.query.id] }).then((res) => {
+			if (res.data[route.query.id] && res.data[route.query.id].length > 0) {
+				formData.data.fileList = res.data[route.query.id];
+				formData.data.fileList = formData.data.fileList.map((item) => {
+					return {
+						...item,
+						url: item.fileUrl,
+					};
+				});
+			} else {
+				formData.data.fileList = [];
+				fileList.value = [];
+			}
+		});
+    }
+})
+</script>

+ 161 - 0
src/views/production/workingProcedure/index.vue

@@ -0,0 +1,161 @@
+<template>
+	<van-nav-bar
+		title="工序管理"
+		left-text=""
+		left-arrow
+		@click-left="onClickLeft"
+		@click-right="onClickRight"
+	>
+		<template #right> 添加 </template>
+	</van-nav-bar>
+	<van-search
+		v-model="req.keyword"
+		placeholder="请输入关键词"
+		@search="onRefresh"
+	/>
+	<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="listData"
+					@onClick="toDtl"
+					:config="listConfig"
+				></commonList>
+			</van-list>
+		</div>
+	</van-pull-refresh>
+</template>
+<script setup>
+import { ref, getCurrentInstance } from 'vue'
+import commonList from '@/components/common-list.vue'
+import { useRoute } from 'vue-router'
+
+const loading = ref(false)
+const router = useRoute()
+const req = ref({
+	pageNum: 1,
+	keyword: null,
+	definition: '1',
+})
+const finished = ref(false)
+const proxy = getCurrentInstance().proxy
+const listData = ref([])
+const classification = ref([])
+const listConfig = ref([
+	{
+		label: '工序名称',
+		prop: 'name',
+	},
+	{
+		label: '工序说明',
+		prop: 'remarks',
+	},
+	{
+		label: '工序文件',
+		prop: 'fileName',
+	},
+])
+//车间类型
+const typeList = ref([
+	{
+		label: '普通车间',
+		value: '1',
+	},
+	{
+		label: '半自动化车间',
+		value: '2',
+	},
+	{
+		label: '自动化车间',
+		value: '3',
+	},
+])
+const onRefresh = () => {
+	req.value.pageNum = 1
+	finished.value = false
+	getList('refresh')
+}
+const onLoad = () => {
+	getClassification()
+}
+const onClickLeft = () => proxy.$router.push('/main/working')
+const onClickRight = () => {
+	proxy.$router.push({
+		path: 'workingProcedureAdd',
+		query: {
+			type: 'add',
+		},
+	})
+}
+proxy.uploadDdRightBtn(onClickRight,'添加')
+const toDtl = (row) => {
+	proxy.$router.push({
+		path: 'workingProcedureAdd',
+		query: {
+			id: row.id,
+			type: 'edit',
+		},
+	})
+}
+const treeToList = (arr) => {
+	let res = [] // 用于存储递归结果(扁平数据)
+	// 递归函数
+	let fn = (source) => {
+		source.forEach((el) => {
+			res.push(el)
+			el.children && el.children.length > 0 ? fn(el.children) : '' // 子级递归
+		})
+	}
+	fn(arr)
+	return res
+}
+const getClassification = () => {
+	if (classification.value && classification.value.length > 0) {
+		getList()
+	} else {
+		proxy
+			.post('/productClassify/tree', {
+				parentId: '',
+				name: '',
+				definition: '1',
+			})
+			.then((res) => {
+				classification.value = treeToList(res.data)
+				getList()
+			})
+	}
+}
+const getList = (type) => {
+	loading.value = true
+	proxy
+		.post('/productionProcesses/page', req.value)
+		.then((res) => {
+			
+			listData.value =
+				type === 'refresh'
+					? res.data.rows
+					: listData.value.concat(res.data.rows)
+			if (req.value.pageNum * 10 >= res.data.total) {
+				finished.value = true
+			}
+			req.value.pageNum++
+			loading.value = false
+            
+		})
+		.catch((err) => {
+			loading.value = false
+		})
+}
+</script>
+
+<style lang="scss" scoped>
+.list {
+	min-height: 70vh;
+}
+</style>

+ 1 - 1
src/views/production/workshop/index.vue

@@ -10,7 +10,7 @@
 	</van-nav-bar>
 	<van-search
 		v-model="req.keyword"
-		placeholder="请输入搜索关键词"
+		placeholder="请输入关键词"
 		@search="onRefresh"
 	/>
 	<van-pull-refresh v-model="loading" @refresh="onRefresh">

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

@@ -10,7 +10,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-pull-refresh v-model="loading" @refresh="onRefresh">

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

@@ -10,7 +10,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-pull-refresh v-model="loading" @refresh="onRefresh">

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

@@ -10,7 +10,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-pull-refresh v-model="loading" @refresh="onRefresh">

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

@@ -4,7 +4,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-pull-refresh v-model="loading" @refresh="onRefresh">

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

@@ -4,7 +4,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-pull-refresh v-model="loading" @refresh="onRefresh">

+ 1 - 1
src/views/purchase-sales/inventory-management/inventoryQuery/index.vue

@@ -8,7 +8,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-tabs v-model:active="active" @change="handleChangeTab">

+ 1 - 1
src/views/purchase-sales/inventory-management/outInList/index.vue

@@ -8,7 +8,7 @@
   </van-nav-bar>
   <van-search
     v-model="req.keyword"
-    placeholder="请输入搜索关键词"
+    placeholder="请输入关键词"
     @search="onRefresh"
   />
   <van-tabs v-model:active="active" @change="handleChangeTab">

+ 1 - 1
src/views/system/dict/businessDict.vue

@@ -10,7 +10,7 @@
 			添加
 		</template>
 	</van-nav-bar>
-	<van-search v-model="req.keyword"  placeholder="请输入搜索关键词" @search="onRefresh" />
+	<van-search v-model="req.keyword"  placeholder="请输入关键词" @search="onRefresh" />
 	<van-pull-refresh v-model="loading" @refresh="onRefresh" >
 		
 		<div class="list">

+ 1 - 1
src/views/system/dict/tenantDict.vue

@@ -10,7 +10,7 @@
 	</van-nav-bar>
 	<van-search
 		v-model="req.keyword"
-		placeholder="请输入搜索关键词"
+		placeholder="请输入关键词"
 		@search="onRefresh"
 	/>
 	<van-pull-refresh v-model="loading" @refresh="onRefresh">

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

@@ -10,7 +10,7 @@
 	</van-nav-bar>
 	<van-search
 		v-model="req.keyword"
-		placeholder="请输入搜索关键词"
+		placeholder="请输入关键词"
 		@search="onRefresh"
 	/>
 	<van-pull-refresh v-model="loading" @refresh="onRefresh">

+ 1 - 1
src/views/warehouse/warehouseConfig/index.vue

@@ -10,7 +10,7 @@
 			添加
 		</template>
 	</van-nav-bar>
-	<van-search v-model="req.keyword"  placeholder="请输入搜索关键词" @search="onRefresh" />
+	<van-search v-model="req.keyword"  placeholder="请输入关键词" @search="onRefresh" />
 	<van-pull-refresh v-model="loading" @refresh="onRefresh" >
 		
 		<div class="list">

+ 1 - 1
src/views/working/index.vue

@@ -78,7 +78,7 @@ const handleGo = (type) => {
   background-color: #f1f1f1;
   padding: 12px;
   color: #333;
-  margin-bottom:60px;
+  
   .my-swipe{
     height: 150px;
     background: #0084ff;