浏览代码

Merge branch 'master' of http://120.46.159.163:7400/ezhizao/ezhizao_dms_vue

zhuzeyu 1 年之前
父节点
当前提交
d7ecc206c4
共有 50 个文件被更改,包括 995 次插入588 次删除
  1. 10 9
      src/api/business/daywork.js
  2. 2 2
      src/api/business/planDetailSubDetail.js
  3. 9 0
      src/api/system/user.js
  4. 79 23
      src/layout/components/Navbar.vue
  5. 39 51
      src/layout/components/TagsView/index.vue
  6. 26 21
      src/plugins/tab.js
  7. 86 71
      src/router/index.js
  8. 2 1
      src/store/modules/user.js
  9. 5 2
      src/utils/auth.js
  10. 5 1
      src/utils/request.js
  11. 2 2
      src/views/business/carrier/form.vue
  12. 1 1
      src/views/business/carrier/formAbandonment.vue
  13. 2 2
      src/views/business/carrier/formCategory.vue
  14. 1 1
      src/views/business/carrier/index.vue
  15. 163 0
      src/views/business/daywork/index.vue
  16. 1 1
      src/views/business/department/form.vue
  17. 88 0
      src/views/business/department/formUser.vue
  18. 23 5
      src/views/business/department/index.vue
  19. 77 75
      src/views/business/deptEquipment/index.vue
  20. 10 10
      src/views/business/employee/index.vue
  21. 3 3
      src/views/business/equipment/formCategory.vue
  22. 3 3
      src/views/business/equipment/formDetail.vue
  23. 3 3
      src/views/business/equipment/formDoc.vue
  24. 1 1
      src/views/business/equipment/index.vue
  25. 1 1
      src/views/business/equipment/listDetail.vue
  26. 4 4
      src/views/business/equipmentMaintenance/form.vue
  27. 1 1
      src/views/business/equipmentMaintenance/index.vue
  28. 3 3
      src/views/business/process/form.vue
  29. 1 1
      src/views/business/product/form-backup.vue
  30. 1 1
      src/views/business/product/form.vue
  31. 32 28
      src/views/business/productionBatch/form.vue
  32. 38 35
      src/views/business/productionBatch/index.vue
  33. 9 10
      src/views/business/productionPlan/index.vue
  34. 31 28
      src/views/business/productionTask/index.vue
  35. 45 20
      src/views/business/resourceAllocation/index.vue
  36. 6 6
      src/views/business/tenant/form.vue
  37. 2 2
      src/views/business/tenant/index.vue
  38. 2 2
      src/views/business/turnover/form.vue
  39. 5 4
      src/views/dialog/equipment.vue
  40. 71 40
      src/views/dialog/person.vue
  41. 13 30
      src/views/index.vue
  42. 2 2
      src/views/login.vue
  43. 7 7
      src/views/register.vue
  44. 5 5
      src/views/system/dept/index.vue
  45. 41 38
      src/views/system/dict/data.vue
  46. 18 16
      src/views/system/dict/index.vue
  47. 2 2
      src/views/system/role/selectUser.vue
  48. 8 8
      src/views/system/user/index.vue
  49. 3 3
      src/views/system/user/profile/resetPwd.vue
  50. 3 3
      src/views/system/user/profile/userInfo.vue

+ 10 - 9
src/api/business/daywork.js

@@ -1,14 +1,15 @@
 import request from '@/utils/request'
 
-// 【 ezhizao-dms-daywork 】这个名字对应的就是 nacos 中的服务的 id,必须用“-”分割
-// 开发时,在 vite.config.js 中配置 /ezhizao-dms-daywork,参考 /dev-api 的配置
-// 生产时,在nginx中配置 /ezhizao-dms-daywork,指定对应的 nacos 中的服务 id:/ezhizao-dms-daywork
-const baseUrl = '/ezhizao-dms-daywork'
-// 测试
-export function index(query) {
+const baseUrl = import.meta.env.VITE_APP_PRODUCTION_API
+/**
+ * 获取 生产批次 列表
+ * @param {*} data
+ * @returns
+ */
+export function listDaywork(data) {
   return request({
-    url: baseUrl + '/index',
-    method: 'get',
-    params: query
+    url: baseUrl + '/business/productionDaywork/list',
+    method: 'post',
+    data: data
   })
 }

+ 2 - 2
src/api/business/planDetailSubDetail.js

@@ -31,7 +31,7 @@ export function getDept() {
 // 新增生产子计划明细
 export function savePlanDetailSubDetail(data) {
   return request({
-    url: baseUrl + '/business/planDetailSubDetail',
+    url: baseUrl + '/business/planDetailSubDetail/save',
     method: 'post',
     data: data
   })
@@ -40,7 +40,7 @@ export function savePlanDetailSubDetail(data) {
 // 修改生产子计划明细
 export function updatePlanDetailSubDetail(data) {
   return request({
-    url: baseUrl + '/business/planDetailSubDetail',
+    url: baseUrl + '/business/planDetailSubDetail/save',
     method: 'put',
     data: data
   })

+ 9 - 0
src/api/system/user.js

@@ -33,6 +33,15 @@ export function getUsersByDeptId(data) {
     data: data
   })
 }
+
+//查询用户列表通过deptId
+export function getUsersItemByDeptId(data) {
+  return request({
+    url: baseUrl + '/system/user/getUsersItemByDeptId',
+    method: 'post',
+    data: data
+  })
+}
 // 查询用户详细
 export function getUser(userId) {
   return request({

+ 79 - 23
src/layout/components/Navbar.vue

@@ -1,26 +1,24 @@
 <template>
   <div class="navbar">
-    <hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container"
-      @toggleClick="toggleSideBar" />
+    <hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
     <breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!settingsStore.topNav" />
     <top-nav id="topmenu-container" class="topmenu-container" v-if="settingsStore.topNav" />
 
     <div class="right-menu">
-      <div style="color: #fff; padding-right: 16px;">大连德迈仕精密科技股份有限公司</div>
+      <div style="color: #fff; padding-right: 16px; font-size: 14px">
+        <span>当前厂别:</span>
+        <span style="cursor: pointer" @click="handleShowTenantDialog">{{ currentTenantName }}</span>
+      </div>
       <template v-if="appStore.device !== 'mobile'">
         <!--
         <header-search id="header-search" class="right-menu-item" />
-        -->
-        <!-- <el-tooltip content="源码地址" effect="dark" placement="bottom">
+        <el-tooltip content="源码地址" effect="dark" placement="bottom">
           <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" />
         </el-tooltip>
-
         <el-tooltip content="文档地址" effect="dark" placement="bottom">
           <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" />
-        </el-tooltip> -->
-
+        </el-tooltip> 
         <screenfull id="screenfull" class="right-menu-item hover-effect" />
-        <!--
         <el-tooltip content="布局大小" effect="dark" placement="bottom">
           <size-select id="size-select" class="right-menu-item hover-effect" />
         </el-tooltip>
@@ -48,6 +46,17 @@
         </el-dropdown>
       </div>
     </div>
+
+    <el-dialog title="切换厂别" v-model="showDialog" width="450" top="10vh" center @close="showDialog = false">
+      <el-table :data="tenantList" v-loading="tenantLoading">
+        <el-table-column label="厂别" prop="orgName" header-align="center" />
+        <el-table-column label="选择" prop="createTime" width="50" align="center">
+          <template #default="scope">
+            <el-button type="success" icon="Check" size="small" circle @click="handleChangeTenant(scope.row)" />
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-dialog>
   </div>
 </template>
 
@@ -64,25 +73,34 @@ import Screenfull from '@/components/Screenfull'
 import useAppStore from '@/store/modules/app'
 import useUserStore from '@/store/modules/user'
 import useSettingsStore from '@/store/modules/settings'
+import { setTenant, getTenant } from '@/utils/auth'
+import { listTenant } from '@/api/business/tenant.js'
+import router from '@/router'
 
+const { proxy } = getCurrentInstance()
 const appStore = useAppStore()
 const userStore = useUserStore()
 const settingsStore = useSettingsStore()
 
+const tenantLoading = ref(false)
+const showDialog = ref(false)
+const tenantList = ref([])
+const currentTenantName = ref(getTenant().tenantName)
+
 function toggleSideBar() {
   appStore.toggleSideBar()
 }
 
 function handleCommand(command) {
   switch (command) {
-    case "setLayout":
-      setLayout();
-      break;
-    case "logout":
-      logout();
-      break;
+    case 'setLayout':
+      setLayout()
+      break
+    case 'logout':
+      logout()
+      break
     default:
-      break;
+      break
   }
 }
 
@@ -91,25 +109,63 @@ function logout() {
     confirmButtonText: '确定',
     cancelButtonText: '取消',
     type: 'warning'
-  }).then(() => {
-    userStore.logOut().then(() => {
-      location.href = '/index';
+  })
+    .then(() => {
+      userStore.logOut().then(() => {
+        location.href = '/index'
+      })
     })
-  }).catch(() => { });
+    .catch(() => {})
 }
 
 const emits = defineEmits(['setLayout'])
 function setLayout() {
-  emits('setLayout');
+  emits('setLayout')
+}
+
+const handleShowTenantDialog = () => {
+  showDialog.value = true
+  loadTenant()
+}
+
+const handleChangeTenant = (row) => {
+  ElMessageBox.confirm('确定切换到该厂别吗?', '提示', {
+    confirmButtonText: '确定',
+    cancelButtonText: '取消',
+    type: 'warning'
+  })
+    .then(() => {
+      // 切换
+      setTenant({ tenantId: row.id, tenantName: row.orgName })
+      currentTenantName.value = row.orgName
+      showDialog.value = false
+      // 更换厂别后,刷新当前路由
+      const { path, query } = router.currentRoute.value
+      router.replace({
+        path: '/redirect' + path,
+        query: query
+      })
+    })
+    .catch(() => {})
+}
+
+const loadTenant = () => {
+  tenantLoading.value = true
+  listTenant().then((res) => {
+    if (res.code === 200) {
+      tenantList.value = res.rows
+    }
+    tenantLoading.value = false
+  })
 }
 </script>
 
-<style lang='scss' scoped>
+<style lang="scss" scoped>
 .navbar {
   height: 50px;
   overflow: hidden;
   position: relative;
-  background: #282B33;
+  background: #282b33;
   box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
 
   .hamburger-container {

+ 39 - 51
src/layout/components/TagsView/index.vue

@@ -15,29 +15,17 @@
       >
         {{ tag.title }}
         <span v-if="!isAffix(tag)" @click.prevent.stop="closeSelectedTag(tag)">
-          <close class="el-icon-close" style="width: 1em; height: 1em;vertical-align: middle;" />
+          <close class="el-icon-close" style="width: 1em; height: 1em; vertical-align: middle" />
         </span>
       </router-link>
     </scroll-pane>
     <ul v-show="visible" :style="{ left: left + 'px', top: top + 'px' }" class="contextmenu">
-      <li @click="refreshSelectedTag(selectedTag)">
-        <refresh-right style="width: 1em; height: 1em;" /> 刷新页面
-      </li>
-      <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)">
-        <close style="width: 1em; height: 1em;" /> 关闭当前
-      </li>
-      <li @click="closeOthersTags">
-        <circle-close style="width: 1em; height: 1em;" /> 关闭其他
-      </li>
-      <li v-if="!isFirstView()" @click="closeLeftTags">
-        <back style="width: 1em; height: 1em;" /> 关闭左侧
-      </li>
-      <li v-if="!isLastView()" @click="closeRightTags">
-        <right style="width: 1em; height: 1em;" /> 关闭右侧
-      </li>
-      <li @click="closeAllTags(selectedTag)">
-        <circle-close style="width: 1em; height: 1em;" /> 全部关闭
-      </li>
+      <li @click="refreshSelectedTag(selectedTag)"><refresh-right style="width: 1em; height: 1em" /> 刷新页面</li>
+      <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"><close style="width: 1em; height: 1em" /> 关闭当前</li>
+      <li @click="closeOthersTags"><circle-close style="width: 1em; height: 1em" /> 关闭其他</li>
+      <li v-if="!isFirstView()" @click="closeLeftTags"><back style="width: 1em; height: 1em" /> 关闭左侧</li>
+      <li v-if="!isLastView()" @click="closeRightTags"><right style="width: 1em; height: 1em" /> 关闭右侧</li>
+      <li @click="closeAllTags(selectedTag)"><circle-close style="width: 1em; height: 1em" /> 全部关闭</li>
     </ul>
   </div>
 </template>
@@ -49,20 +37,20 @@ import useTagsViewStore from '@/store/modules/tagsView'
 import useSettingsStore from '@/store/modules/settings'
 import usePermissionStore from '@/store/modules/permission'
 
-const visible = ref(false);
-const top = ref(0);
-const left = ref(0);
-const selectedTag = ref({});
-const affixTags = ref([]);
-const scrollPaneRef = ref(null);
+const visible = ref(false)
+const top = ref(0)
+const left = ref(0)
+const selectedTag = ref({})
+const affixTags = ref([])
+const scrollPaneRef = ref(null)
 
-const { proxy } = getCurrentInstance();
-const route = useRoute();
-const router = useRouter();
+const { proxy } = getCurrentInstance()
+const route = useRoute()
+const router = useRouter()
 
-const visitedViews = computed(() => useTagsViewStore().visitedViews);
-const routes = computed(() => usePermissionStore().routes);
-const theme = computed(() => useSettingsStore().theme);
+const visitedViews = computed(() => useTagsViewStore().visitedViews)
+const routes = computed(() => usePermissionStore().routes)
+const theme = computed(() => useSettingsStore().theme)
 
 watch(route, () => {
   addTags()
@@ -84,11 +72,11 @@ function isActive(r) {
   return r.path === route.path
 }
 function activeStyle(tag) {
-  if (!isActive(tag)) return {};
+  if (!isActive(tag)) return {}
   return {
-    "background-color": '#fff',
-    "border-color": '#496bdc'
-  };
+    'background-color': '#fff',
+    'border-color': '#496bdc'
+  }
   /*
   // 原程序,可以通过设置进行颜色调整
   return {
@@ -116,7 +104,7 @@ function isLastView() {
 }
 function filterAffixTags(routes, basePath = '') {
   let tags = []
-  routes.forEach(route => {
+  routes.forEach((route) => {
     if (route.meta && route.meta.affix) {
       const tagPath = getNormalPath(basePath + '/' + route.path)
       tags.push({
@@ -136,12 +124,12 @@ function filterAffixTags(routes, basePath = '') {
   return tags
 }
 function initTags() {
-  const res = filterAffixTags(routes.value);
-  affixTags.value = res;
+  const res = filterAffixTags(routes.value)
+  affixTags.value = res
   for (const tag of res) {
     // Must have tag name
     if (tag.name) {
-       useTagsViewStore().addVisitedView(tag)
+      useTagsViewStore().addVisitedView(tag)
     }
   }
 }
@@ -150,7 +138,7 @@ function addTags() {
   if (name) {
     useTagsViewStore().addView(route)
     if (route.meta.link) {
-      useTagsViewStore().addIframeView(route);
+      useTagsViewStore().addIframeView(route)
     }
   }
   return false
@@ -159,7 +147,7 @@ function moveToCurrentTag() {
   nextTick(() => {
     for (const r of visitedViews.value) {
       if (r.path === route.path) {
-        scrollPaneRef.value.moveToTarget(r);
+        scrollPaneRef.value.moveToTarget(r)
         // when query is different then update
         if (r.fullPath !== route.fullPath) {
           useTagsViewStore().updateVisitedView(route)
@@ -169,9 +157,9 @@ function moveToCurrentTag() {
   })
 }
 function refreshSelectedTag(view) {
-  proxy.$tab.refreshPage(view);
+  proxy.$tab.refreshPage(view)
   if (route.meta.link) {
-    useTagsViewStore().delIframeView(route);
+    useTagsViewStore().delIframeView(route)
   }
 }
 function closeSelectedTag(view) {
@@ -182,28 +170,28 @@ function closeSelectedTag(view) {
   })
 }
 function closeRightTags() {
-  proxy.$tab.closeRightPage(selectedTag.value).then(visitedViews => {
-    if (!visitedViews.find(i => i.fullPath === route.fullPath)) {
+  proxy.$tab.closeRightPage(selectedTag.value).then((visitedViews) => {
+    if (!visitedViews.find((i) => i.fullPath === route.fullPath)) {
       toLastView(visitedViews)
     }
   })
 }
 function closeLeftTags() {
-  proxy.$tab.closeLeftPage(selectedTag.value).then(visitedViews => {
-    if (!visitedViews.find(i => i.fullPath === route.fullPath)) {
+  proxy.$tab.closeLeftPage(selectedTag.value).then((visitedViews) => {
+    if (!visitedViews.find((i) => i.fullPath === route.fullPath)) {
       toLastView(visitedViews)
     }
   })
 }
 function closeOthersTags() {
-  router.push(selectedTag.value).catch(() => { });
+  router.push(selectedTag.value).catch(() => {})
   proxy.$tab.closeOtherPage(selectedTag.value).then(() => {
     moveToCurrentTag()
   })
 }
 function closeAllTags(view) {
   proxy.$tab.closeAllPage().then(({ visitedViews }) => {
-    if (affixTags.value.some(tag => tag.path === route.path)) {
+    if (affixTags.value.some((tag) => tag.path === route.path)) {
       return
     }
     toLastView(visitedViews, view)
@@ -249,7 +237,7 @@ function handleScroll() {
 }
 </script>
 
-<style lang='scss' scoped>
+<style lang="scss" scoped>
 .tags-view-container {
   position: relative;
   height: 34px;
@@ -355,4 +343,4 @@ function handleScroll() {
     }
   }
 }
-</style>
+</style>

+ 26 - 21
src/plugins/tab.js

@@ -4,62 +4,67 @@ import router from '@/router'
 export default {
   // 刷新当前tab页签
   refreshPage(obj) {
-    const { path, query, matched } = router.currentRoute.value;
+    const { path, query, matched } = router.currentRoute.value
     if (obj === undefined) {
       matched.forEach((m) => {
+        console.log(m.components, m.components.default, m.components.default.name)
         if (m.components && m.components.default && m.components.default.name) {
           if (!['Layout', 'ParentView'].includes(m.components.default.name)) {
-            obj = { name: m.components.default.name, path: path, query: query };
+            obj = { name: m.components.default.name, path: path, query: query }
           }
         }
-      });
+      })
     }
-    return useTagsViewStore().delCachedView(obj).then(() => {
-      const { path, query } = obj
-      router.replace({
-        path: '/redirect' + path,
-        query: query
+    return useTagsViewStore()
+      .delCachedView(obj)
+      .then(() => {
+        const { path, query } = obj
+        router.replace({
+          path: '/redirect' + path,
+          query: query
+        })
       })
-    })
   },
   // 关闭当前tab页签,打开新页签
   closeOpenPage(obj) {
-    useTagsViewStore().delView(router.currentRoute.value);
+    useTagsViewStore().delView(router.currentRoute.value)
     if (obj !== undefined) {
-      return router.push(obj);
+      return router.push(obj)
     }
   },
   // 关闭指定tab页签
   closePage(obj) {
     if (obj === undefined) {
-      return useTagsViewStore().delView(router.currentRoute.value).then(({ lastPath }) => {
-        return router.push(lastPath || '/index');
-      });
+      return useTagsViewStore()
+        .delView(router.currentRoute.value)
+        .then(({ lastPath }) => {
+          return router.push(lastPath || '/index')
+        })
     }
-    return useTagsViewStore().delView(obj);
+    return useTagsViewStore().delView(obj)
   },
   // 关闭所有tab页签
   closeAllPage() {
-    return useTagsViewStore().delAllViews();
+    return useTagsViewStore().delAllViews()
   },
   // 关闭左侧tab页签
   closeLeftPage(obj) {
-    return useTagsViewStore().delLeftTags(obj || router.currentRoute.value);
+    return useTagsViewStore().delLeftTags(obj || router.currentRoute.value)
   },
   // 关闭右侧tab页签
   closeRightPage(obj) {
-    return useTagsViewStore().delRightTags(obj || router.currentRoute.value);
+    return useTagsViewStore().delRightTags(obj || router.currentRoute.value)
   },
   // 关闭其他tab页签
   closeOtherPage(obj) {
-    return useTagsViewStore().delOthersViews(obj || router.currentRoute.value);
+    return useTagsViewStore().delOthersViews(obj || router.currentRoute.value)
   },
   // 打开tab页签
   openPage(url) {
-    return router.push(url);
+    return router.push(url)
   },
   // 修改tab页签
   updatePage(obj) {
-    return useTagsViewStore().updateVisitedView(obj);
+    return useTagsViewStore().updateVisitedView(obj)
   }
 }

+ 86 - 71
src/router/index.js

@@ -1,7 +1,4 @@
-import {
-  createWebHistory,
-  createRouter
-} from 'vue-router'
+import { createWebHistory, createRouter } from 'vue-router'
 /* Layout */
 import Layout from '@/layout'
 
@@ -28,14 +25,17 @@ import Layout from '@/layout'
  */
 
 // 公共路由
-export const constantRoutes = [{
+export const constantRoutes = [
+  {
     path: '/redirect',
     component: Layout,
     hidden: true,
-    children: [{
-      path: '/redirect/:path(.*)',
-      component: () => import('@/views/redirect/index.vue')
-    }]
+    children: [
+      {
+        path: '/redirect/:path(.*)',
+        component: () => import('@/views/redirect/index.vue')
+      }
+    ]
   },
   {
     path: '/login',
@@ -48,7 +48,7 @@ export const constantRoutes = [{
     hidden: true
   },
   {
-    path: "/:pathMatch(.*)*",
+    path: '/:pathMatch(.*)*',
     component: () => import('@/views/error/404'),
     hidden: true
   },
@@ -61,109 +61,124 @@ export const constantRoutes = [{
     path: '',
     component: Layout,
     redirect: '/index',
-    children: [{
-      path: '/index',
-      // component: () => import('@/views/index'),
-      name: 'Index',
-      meta: {
-        title: '首页',
-        icon: 'dashboard',
-        affix: true
+    children: [
+      {
+        path: '/index',
+        component: () => import('@/views/index'),
+        name: 'Index',
+        meta: {
+          title: '首页',
+          icon: 'dashboard',
+          affix: true
+        }
       }
-    }]
+    ]
   },
   {
     path: '/user',
     component: Layout,
     hidden: true,
     redirect: 'noredirect',
-    children: [{
-      path: 'profile',
-      component: () => import('@/views/system/user/profile/index'),
-      name: 'Profile',
-      meta: {
-        title: '个人中心',
-        icon: 'user'
+    children: [
+      {
+        path: 'profile',
+        component: () => import('@/views/system/user/profile/index'),
+        name: 'Profile',
+        meta: {
+          title: '个人中心',
+          icon: 'user'
+        }
       }
-    }]
+    ]
   }
 ]
 
 // 动态路由,基于用户权限动态去加载
-export const dynamicRoutes = [{
+export const dynamicRoutes = [
+  {
     path: '/system/user-auth',
     component: Layout,
     hidden: true,
     permissions: ['system:user:edit'],
-    children: [{
-      path: 'role/:userId(\\d+)',
-      component: () => import('@/views/system/user/authRole'),
-      name: 'AuthRole',
-      meta: {
-        title: '分配角色',
-        activeMenu: '/system/user'
+    children: [
+      {
+        path: 'role/:userId(\\d+)',
+        component: () => import('@/views/system/user/authRole'),
+        name: 'AuthRole',
+        meta: {
+          title: '分配角色',
+          activeMenu: '/system/user'
+        }
       }
-    }]
+    ]
   },
   {
     path: '/system/role-auth',
     component: Layout,
     hidden: true,
     permissions: ['system:role:edit'],
-    children: [{
-      path: 'user/:roleId(\\d+)',
-      component: () => import('@/views/system/role/authUser'),
-      name: 'AuthUser',
-      meta: {
-        title: '分配用户',
-        activeMenu: '/system/role'
+    children: [
+      {
+        path: 'user/:roleId(\\d+)',
+        component: () => import('@/views/system/role/authUser'),
+        name: 'AuthUser',
+        meta: {
+          title: '分配用户',
+          activeMenu: '/system/role'
+        }
       }
-    }]
+    ]
   },
   {
     path: '/system/dict-data',
     component: Layout,
     hidden: true,
     permissions: ['system:dict:list'],
-    children: [{
-      path: 'index/:dictId(\\d+)',
-      component: () => import('@/views/system/dict/data'),
-      name: 'Data',
-      meta: {
-        title: '字典数据',
-        activeMenu: '/system/dict'
+    children: [
+      {
+        path: 'index/:dictId(\\d+)',
+        component: () => import('@/views/system/dict/data'),
+        name: 'Data',
+        meta: {
+          title: '字典数据',
+          activeMenu: '/system/dict'
+        }
       }
-    }]
+    ]
   },
   {
     path: '/monitor/job-log',
     component: Layout,
     hidden: true,
     permissions: ['monitor:job:list'],
-    children: [{
-      path: 'index/:jobId(\\d+)',
-      component: () => import('@/views/monitor/job/log'),
-      name: 'JobLog',
-      meta: {
-        title: '调度日志',
-        activeMenu: '/monitor/job'
+    children: [
+      {
+        path: 'index/:jobId(\\d+)',
+        component: () => import('@/views/monitor/job/log'),
+        name: 'JobLog',
+        meta: {
+          title: '调度日志',
+          activeMenu: '/monitor/job'
+        }
       }
-    }]
+    ]
   },
   {
     path: '/tool/gen-edit',
     component: Layout,
     hidden: true,
     permissions: ['tool:gen:edit'],
-    children: [{
-      path: 'index/:tableId(\\d+)',
-      component: () => import('@/views/tool/gen/editTable'),
-      name: 'GenEdit',
-      meta: {
-        title: '修改生成配置',
-        activeMenu: '/tool/gen'
+    children: [
+      {
+        path: 'index/:tableId(\\d+)',
+        component: () => import('@/views/tool/gen/editTable'),
+        name: 'GenEdit',
+        meta: {
+          title: '修改生成配置',
+          activeMenu: '/tool/gen'
+        }
       }
-    }]
+    ]
   }
 ]
 
@@ -178,7 +193,7 @@ const router = createRouter({
         top: 0
       }
     }
-  },
-});
+  }
+})
 
-export default router;
+export default router

+ 2 - 1
src/store/modules/user.js

@@ -21,8 +21,9 @@ const useUserStore = defineStore('user', {
       return new Promise((resolve, reject) => {
         login(username, password, code, uuid)
           .then((res) => {
+            console.log(res)
             setToken(res.token)
-            setTenant(res.tenant_id)
+            setTenant({ tenantId: res.tenant_id, tenantName: res.tenant_name })
             this.token = res.token
             resolve()
           })

+ 5 - 2
src/utils/auth.js

@@ -14,12 +14,15 @@ export function removeToken() {
   return Cookies.remove(TokenKey)
 }
 
+/** tentant 缓存 */
 const TenantKey = 'Tenant-Key'
 
 export function getTenant() {
-  return Cookies.get(TenantKey)
+  const tenantInfo = JSON.parse(Cookies.get(TenantKey))
+  return tenantInfo
 }
 
 export function setTenant(tenant) {
-  return Cookies.set(TenantKey, tenant)
+  const tenantStr = JSON.stringify(tenant)
+  return Cookies.set(TenantKey, tenantStr)
 }

+ 5 - 1
src/utils/request.js

@@ -31,7 +31,11 @@ service.interceptors.request.use(
     if (getToken() && !isToken) {
       config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
     }
-    config.headers['tenantId'] = getTenant()
+    const tenantInfo = getTenant()
+    if (tenantInfo) {
+      config.headers['tenantId'] = tenantInfo.tenantId
+    }
+    // appKey 根据该值,获取菜单,不要修改
     config.headers['appKey'] = 'ezhizao-identity'
     // get请求映射params参数
     if (config.method === 'get' && config.params) {

+ 2 - 2
src/views/business/carrier/form.vue

@@ -4,10 +4,10 @@
     <div class="form-container">
       <el-form ref="carrierFormRef" class="master-container" :rules="rules" v-loading="loading" :model="form" label-width="80px">
         <el-form-item label="载具编号" prop="code" required>
-          <el-input v-model="form.code" placeholder="请输入载具编号" />
+          <el-input v-model.trim="form.code" placeholder="请输入载具编号" />
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" />
+          <el-input v-model.trim="form.remark" placeholder="请输入备注" />
         </el-form-item>
       </el-form>
     </div>

+ 1 - 1
src/views/business/carrier/formAbandonment.vue

@@ -8,7 +8,7 @@
           <el-date-picker type="date" v-model="form.abandonmentDate" placeholder="请选择废弃日期" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
         </el-form-item>
         <el-form-item label="废弃原因" prop="abandonmentReason" required>
-          <el-input v-model="form.abandonmentReason" placeholder="请输入废弃原因" />
+          <el-input v-model.trim="form.abandonmentReason" placeholder="请输入废弃原因" />
         </el-form-item>
       </el-form>
     </div>

+ 2 - 2
src/views/business/carrier/formCategory.vue

@@ -6,10 +6,10 @@
           <el-tree-select v-model="form.parentId" :data="parentCategories" check-strictly :render-after-expand="false" />
         </el-form-item>
         <el-form-item label="类别名称" prop="name">
-          <el-input v-model="form.name" placeholder="类别名称" />
+          <el-input v-model.trim="form.name" placeholder="类别名称" />
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请填写备注" />
+          <el-input v-model.trim="form.remark" placeholder="请填写备注" />
         </el-form-item>
       </el-form>
     </div>

+ 1 - 1
src/views/business/carrier/index.vue

@@ -58,7 +58,7 @@
       <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true">
         <el-form-item class="section-title" label="载具管理" />
         <el-form-item>
-          <el-input placeholder="请输入载具编号" v-model="queryParams.code"   @keydown.enter.prevent
+          <el-input placeholder="请输入载具编号" v-model.trim="queryParams.code"   @keydown.enter.prevent
           @keyup.enter="handleQueryCarrier"/>
         </el-form-item>
         <el-form-item>

+ 163 - 0
src/views/business/daywork/index.vue

@@ -0,0 +1,163 @@
+<template>
+  <div class="page-container row-container">
+    <!-- 左侧区域 -->
+    <section class="list-part-container" style="flex: 2">
+      <!-- 搜索区 -->
+      <el-form class="list-search-container" :model="queryDayworkParams" ref="queryRef" :inline="true">
+        <el-form-item class="section-title" label="生产批次" />
+        <el-form-item label="产品描述:">
+          <el-input
+            placeholder="请输入产品描述"
+            v-model.trim="queryDayworkParams.keywords"
+            @keyup.enter="handleQuery"
+            @keydown.enter.prevent
+            clearable
+            style="width: 200px"
+          />
+        </el-form-item>
+        <el-form-item>
+          <el-button type="info" icon="Search" @click="handleQuery"> <i class="el-icon-thumb" aria-hidden="true" />搜索 </el-button>
+          <el-button type="success" icon="Refresh" @click="handleQuery">刷新</el-button>
+        </el-form-item>
+      </el-form>
+      <div class="el-table-container">
+        <div class="el-table-inner-container">
+          <el-table
+            ref="dayworkTable"
+            :data="dayworkList"
+            v-loading="dayworkLoading"
+            highlight-current-row
+            height="100%"
+            @current-change="handleDayworkCurrentChange"
+          >
+            <el-table-column label="客户简称" prop="companyAlias" width="160" align="center" />
+            <el-table-column label="生产计划单号" prop="productionPlanNo" width="100" align="center" />
+            <el-table-column label="批次号" prop="lotCode" width="100" align="center" />
+            <el-table-column label="产品描述" prop="productDescription" align="center" />
+            <el-table-column label="图纸版本" prop="technologyVersion" width="60" align="center" />
+            <el-table-column label="投产量" prop="productionQuantity" width="60" align="center" />
+            <el-table-column label="炉号" prop="furnaceNumber" width="60" align="center" />
+            <el-table-column label="下达日期" prop="createTime" width="100" align="center">
+              <template #default="scope">
+                <span>{{ proxy.moment(scope.row.createTime).format('YYYY-MM-DD') }}</span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <!-- 分页 -->
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        v-model:page="queryDayworkParams.pageNum"
+        v-model:limit="queryDayworkParams.pageSize"
+        @pagination="getDayworks"
+      />
+    </section>
+    <!-- 右侧区域 -->
+    <section class="list-part-container">
+      <el-form class="list-search-container" :inline="true">
+        <el-form-item class="section-title" label="报工信息" />
+        <el-form-item>
+          <el-button type="success" icon="Refresh" @click="handleQueryDayworkItem">刷新</el-button>
+        </el-form-item>
+      </el-form>
+
+      <div class="el-table-container">
+        <div class="el-table-inner-container">
+          <el-table :data="dayworkItemList" v-loading="dayworkItemLoading" height="100%">
+            <el-table-column label="客户简称" prop="companyAlias" width="160" align="center" />
+            <el-table-column label="生产计划单号" prop="productionPlanNo" width="100" align="center" />
+            <el-table-column label="批次号" prop="lotCode" width="100" align="center" />
+            <el-table-column label="产品描述" prop="productDescription" align="center" />
+            <el-table-column label="图纸版本" prop="technologyVersion" width="60" align="center" />
+            <el-table-column label="投产量" prop="productionQuantity" width="60" align="center" />
+            <el-table-column label="炉号" prop="furnaceNumber" width="60" align="center" />
+            <el-table-column label="下达日期" prop="createTime" width="100" align="center">
+              <template #default="scope">
+                <span>{{ proxy.moment(scope.row.createTime).format('YYYY-MM-DD') }}</span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <!-- 分页 -->
+      <pagination
+        v-show="itemTotal > 0"
+        :total="itemTotal"
+        v-model:page="queryItemParams.pageNum"
+        v-model:limit="queryItemParams.pageSize"
+        @pagination="getDayworks"
+      />
+    </section>
+  </div>
+</template>
+
+<script setup>
+import { listDaywork } from '@/api/business/daywork.js'
+import { ref } from 'vue'
+const { proxy } = getCurrentInstance()
+
+/** daywork 列表 */
+const dayworkList = ref([])
+const dayworkItemList = ref([])
+const dayworkTable = ref(null)
+
+/** daywork 批次 */
+const currentDaywork = ref({})
+const dayworkLoading = ref(true)
+const dayworkItemLoading = ref(false)
+
+const total = ref(0)
+const itemTotal = ref(0)
+
+/** 查询对象 */
+const queryDayworkParams = ref({
+  keywords: '',
+  pageNum: 1,
+  pageSize: 10
+})
+const queryItemParams = ref({
+  pageNum: 1,
+  pageSize: 10
+})
+
+/***********************  方法区  ****************************/
+
+/**查询计划明细 */
+function getDayworks() {
+  dayworkLoading.value = true
+  listDaywork(queryDayworkParams.value).then((res) => {
+    dayworkList.value = res.rows
+    total.value = res.total
+    dayworkLoading.value = false
+    // 批次
+    if (dayworkList.value.length > 0) {
+      proxy.$refs.dayworkTable.setCurrentRow(dayworkList.value[0])
+    }
+  })
+}
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryDayworkParams.value.pageNum = 1
+  getDayworks()
+}
+
+/** 生产计划明细 current-change 事件 */
+function handleDayworkCurrentChange(row) {
+  if (row) {
+    currentDaywork.value = row
+  } else {
+  }
+}
+
+/** 刷新 报工信息 按钮操作 */
+const handleQueryDayworkItem = () => {
+  dayworkTable.value.clearSelection()
+}
+
+onMounted(() => {
+  getDayworks()
+})
+</script>
+<style scoped></style>

+ 1 - 1
src/views/business/department/form.vue

@@ -13,7 +13,7 @@
         </el-form-item>
 
         <el-form-item :label="form.type === '1' ? '企业名称' : '部门名称'" prop="deptName">
-          <el-input v-model="form.deptName" :placeholder="form.type === '1' ? '请输入企业名称' : '请输入部门名称'" />
+          <el-input v-model.trim="form.deptName" :placeholder="form.type === '1' ? '请输入企业名称' : '请输入部门名称'" />
         </el-form-item>
         <el-form-item v-if="form.type === '0'" label="是否为工段" prop="isWorkSection">
           <el-select v-model="form.isWorkSection" placeholder="请选择是否为工段">

+ 88 - 0
src/views/business/department/formUser.vue

@@ -0,0 +1,88 @@
+<template>
+  <!-- 添加或修改项目信息对话框 -->
+  <el-dialog title="员工信息" v-model="visible" width="400px" append-to-body draggable>
+    <div class="form-container">
+      <el-form ref="userRef" class="master-container" :model="form" :rules="rules" label-width="140px">
+        <el-form-item label="是否为部门负责人" prop="isLeader">
+          <el-select v-model="form.isLeader" placeholder="请选择是否为部门负责人">
+            <el-option v-for="item in is_leader" :key="item.value" :label="item.label" :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否为调度人员" prop="isDispatcher">
+          <el-select v-model="form.isDispatcher" placeholder="请选择是否为调度人员">
+            <el-option v-for="item in is_dispatcher" :key="item.value" :label="item.label" :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否为工段长" prop="isFormman">
+          <el-select v-model="form.isFormman" placeholder="请选择是否为工段长">
+            <el-option v-for="item in is_formman" :key="item.value" :label="item.label" :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否为调机班长" prop="isYardman">
+          <el-select v-model="form.isYardman" placeholder="请选择是否为调机班长">
+            <el-option v-for="item in is_yardman" :key="item.value" :label="item.label" :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+    </div>
+    <template #footer>
+      <el-button type="primary" @click="submitForm">确 定</el-button>
+      <el-button @click="cancel">取 消</el-button>
+    </template>
+  </el-dialog>
+</template>
+<script setup>
+import { updateDeptUser } from '@/api/system/user'
+const { proxy } = getCurrentInstance()
+const { is_leader } = proxy.useDict('is_leader')
+const { is_dispatcher } = proxy.useDict('is_dispatcher')
+const { is_yardman } = proxy.useDict('is_yardman')
+const { is_formman } = proxy.useDict('is_formman')
+const emit = defineEmits(['handleSaveSuccess'])
+/** 字典数组区 */
+/** 表单抽屉 页变量 */
+const visible = ref(false)
+const deptOptions = ref([])
+const disabled = ref(false)
+const data = reactive({
+  form: {},
+  rules: {
+   
+  }
+})
+const { form, rules } = toRefs(data)
+
+/***********************  方法区  ****************************/
+/** 打开抽屉 */
+function open(row) {
+  visible.value = true
+  form.value.userId = row.userId
+  form.value.isFormman = row.isFormman
+  form.value.isLeader = row.isLeader
+  form.value.isYardman =row.isYardman
+  form.value.isDispatcher = row.isDispatcher
+  form.value.deptId = row.deptId
+
+}
+/** 取消按钮 */
+function cancel() {
+  visible.value = false
+}
+
+/** 提交按钮 */
+function submitForm() {
+  console.log(form.value)
+  updateDeptUser(form.value).then((res) => {
+        if (res.code === 200) {
+          proxy.$modal.msgSuccess('操作成功')
+          emit('handleSaveSuccess')
+        }
+        visible.value = false
+      })
+    }
+
+/** 暴露给父组件的方法 */
+defineExpose({
+  open
+})
+</script>

+ 23 - 5
src/views/business/department/index.vue

@@ -61,7 +61,7 @@
       <!-- 列表区 -->
       <div class="el-table-container">
         <div class="el-table-inner-container">
-          <el-table v-loading="loading" :data="userList" height="100%" @selection-change="handleSelectionChange">
+          <el-table v-loading="loading" :data="userList"  row-key="id"  height="100%" @selection-change="handleSelectionChange">
             <el-table-column type="selection" width="40" align="center" />
             <el-table-column type="index" label="行号" width="50" align="center" />
             <el-table-column label="员工编码" width="100" prop="userName" align="center" />
@@ -110,6 +110,7 @@
     <!-- 表单 -->
     <dept-form ref="deptRef" @handleSaveSuccess="getList" />
     <person ref="personRef" :multiple="multiple" :multiple-selected="handleMultipleSelected" />
+    <user-form ref="updateUser"  @handleSaveSuccess="getUserList"  />
   </div>
 </template>
 
@@ -117,6 +118,7 @@
 import { getUsersByDeptId, saveDeptUser, deptTreeSelect, delDeptUser } from '@/api/system/user'
 import { delDept, getDept } from '@/api/system/dept'
 import deptForm from './form'
+import userForm from './formUser'
 import person from '@/views/dialog/person.vue'
 
 const { proxy } = getCurrentInstance()
@@ -156,7 +158,6 @@ function getList() {
   loading.value = true
   deptTreeSelect().then((response) => {
     deptList.value = response.data
-    console.log(deptList.value)
     if (deptList.value.length > 0) {
       currentDept.value = deptList.value[0]
       proxy.$refs.departmentTable.setCurrentRow(currentDept.value)
@@ -176,7 +177,15 @@ const openUser = () => {
 /** 多选添加 */
 function handleAddBatchUsers() {
   multiple.value = true
-  proxy.$refs.personRef.open()
+  const userInfo = {}
+  const userListIds =[]
+for(let i = 0; i<userList.value.length;i++) {
+  userListIds.push(userList.value[i].userName)
+}
+userInfo.identifying = true
+userInfo.userListIds = userListIds
+userInfo.deptId = currentDept.value.id
+  proxy.$refs.personRef.open(userInfo)
 }
 
 function handleMultipleSelected(selection) {
@@ -199,7 +208,6 @@ function handleMultipleSelected(selection) {
 
 // 多选框选中数据
 function handleSelectionChange(selection) {
-  console.log(selection)
   for (var i = 0; i < selection.length; ++i) {
     var newDeptUser = {}
     newDeptUser.userId = selection[i].userId
@@ -220,7 +228,6 @@ function handleAdd() {
 /** 修改按钮操作 */
 function handleUpdate(row) {
   getDept(row.id).then((res) => {
-    console.log(res.data)
   })
   proxy.$refs.deptRef.open(row)
 }
@@ -238,10 +245,21 @@ function handleGetUser(row) {
     })
   }
 }
+
+function getUserList() {
+  getUsersByDeptId(queryParams.value).then((response) => {
+      if (response.code == 200) {
+        userList.value = response.rows
+        total.value = response.total
+      }
+    })
+  }
+
 /** 修改按钮操作 */
 function handleUpdateUser(row) {
   const id = row.id
   const userData = row
+  userData.deptId = queryParams.value.deptId
   userData.sysDept = currentDept.value
   proxy.$refs.updateUser.open(userData)
 }

+ 77 - 75
src/views/business/deptEquipment/index.vue

@@ -9,76 +9,84 @@
       <!-- 列表区 -->
       <div class="el-table-container">
         <div class="el-table-inner-container">
-          <el-table ref="workSectionTable" v-loading="workSectionLoading" :data="workSectionList" row-key="id" height="100%" highlight-current-row @current-change="handleWorkSectionChange">
+          <el-table
+            ref="workSectionTable"
+            v-loading="workSectionLoading"
+            :data="workSectionList"
+            row-key="id"
+            height="100%"
+            highlight-current-row
+            @current-change="handleWorkSectionChange"
+          >
             <el-table-column label="行号" type="index" width="50" align="center" />
             <el-table-column label="工段编码" prop="deptCode" width="80" align="center" />
             <el-table-column label="工段名称" prop="label" align="center" />
           </el-table>
         </div>
       </div>
-    </section >
+    </section>
 
     <!-- 右侧区域 -->
     <section class="list-part-container column-container" style="flex: 2">
-      <section class="list-part-container column-container " style="flex: 1;">
-      <!-- 搜索区域 -->
-      <el-form class="list-search-container" :inline="true">
-        <el-form-item class="section-title" label="设备资源" />
-        <el-form-item>
-          <div class="list-btns-container">
+      <section class="list-part-container column-container" style="flex: 1">
+        <!-- 搜索区域 -->
+        <el-form class="list-search-container" :inline="true">
+          <el-form-item class="section-title" label="设备资源" />
+          <el-form-item>
             <el-button type="primary" icon="Plus" @click="handleShowEquipmentFormDialog()">新增</el-button>
+          </el-form-item>
+        </el-form>
+
+        <!-- 列表区 -->
+        <div class="el-table-container">
+          <div class="el-table-inner-container">
+            <el-table v-loading="equipmentLoading" :data="equipmentList" height="100%" @selection-change="handleSelectionChange">
+              <el-table-column label="设备类别" prop="categoryName" width="150" align="center" />
+              <el-table-column label="设备名称" prop="equipmentName" width="150" align="center" />
+              <el-table-column label="规格型号" prop="standard" width="150" align="center" />
+              <el-table-column label="设备编码" prop="equipmentCode" width="150" align="center" />
+              <el-table-column label="使用部门" prop="usageDeptAlias" width="150" align="center" />
+              <el-table-column label="备注" prop="remark" header-align="center" align="center" />
+            </el-table>
           </div>
-        </el-form-item>
-      </el-form>
-
-      <!-- 列表区 -->
-      <div class="el-table-container">
-        <div class="el-table-inner-container">
-          <el-table v-loading="equipmentLoading" :data="equipmentList" height="100%" @selection-change="handleSelectionChange">
-            <el-table-column label="设备类别" prop="categoryName" width="150" align="center" />
-            <el-table-column label="设备名称" prop="equipmentName" width="150" align="center" />
-            <el-table-column label="规格型号" prop="standard" width="150" align="center" />
-            <el-table-column label="设备编码" prop="equipmentCode" width="150" align="center" />
-            <el-table-column label="使用部门" prop="usageDeptAlias" width="150" align="center" />
-            <el-table-column label="备注" prop="remark" header-align="center" align="center" />
-
-          </el-table>
         </div>
-      </div>
+        <pagination
+          v-show="equipmentTotal > 0"
+          :total="equipmentTotal"
+          v-model:page="queryParams.pageNum"
+          v-model:limit="queryParams.pageSize"
+          @pagination="getEquipment"
+        />
       </section>
-      <pagination v-show="total > 0" :total="equipmentTotal" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getEquipment" />
-      <section class="list-part-container column-container " style="flex: 1;">
-      <!-- 搜索区域 -->
-      <el-form class="list-search-container" :inline="true">
-        <el-form-item class="section-title" label="添加工序" />
-        <el-form-item>
-          <div class="list-btns-container">
+      <section class="list-part-container column-container" style="flex: 1">
+        <!-- 搜索区域 -->
+        <el-form class="list-search-container" :inline="true">
+          <el-form-item class="section-title" label="添加工序" />
+          <el-form-item>
             <el-button type="primary" icon="Plus" @click="handleShowProcessFormDialog()">新增</el-button>
-            <el-button
-              type="danger"
-              icon="Delete"
-              @click="handledelDeptProcess"
-              :disabled="deptProcessIds.length === 0"
-            >
-              删除
-            </el-button>
+            <el-button type="danger" icon="Delete" @click="handledelDeptProcess" :disabled="deptProcessIds.length === 0"> 删除 </el-button>
+          </el-form-item>
+        </el-form>
+
+        <!-- 列表区 -->
+        <div class="el-table-container">
+          <div class="el-table-inner-container">
+            <el-table v-loading="deptProcessLoading" :data="deptProcessList" height="100%" @selection-change="deptProcessSelectionChange">
+              <el-table-column type="selection" width="40" align="center" />
+              <el-table-column label="行号" type="index" width="50" align="center" />
+              <el-table-column label="工序编码" prop="processCode" align="center" />
+              <el-table-column label="工序简称" prop="processAlias" align="center" />
+            </el-table>
           </div>
-        </el-form-item>
-      </el-form>
-
-      <!-- 列表区 -->
-      <div class="el-table-container">
-        <div class="el-table-inner-container">
-          <el-table v-loading="deptProcessLoading" :data="deptProcessList" height="100%" @selection-change="deptProcessSelectionChange">
-            <el-table-column type="selection" width="40" align="center" />
-            <el-table-column label="行号" type="index" width="50" align="center" />
-            <el-table-column label="工序编码" prop="processCode"  align="center" />
-            <el-table-column label="工序简称" prop="processAlias" align="center" />
-          </el-table>
         </div>
-      </div>
+        <pagination
+          v-show="deptProcessTotal > 0"
+          :total="deptProcessTotal"
+          v-model:page="queryDeptProcessParams.pageNum"
+          v-model:limit="queryDeptProcessParams.pageSize"
+          @pagination="getDeptProcess"
+        />
       </section>
-      <pagination v-show="total > 0" :total="deptProcessTotal" v-model:page="queryDeptProcessParams.pageNum" v-model:limit="queryDeptProcessParams.pageSize" @pagination="getDeptProcess" />
     </section>
     <equipment-form ref="equipmentFormRef" :multipleSelected="handleEquipmentMultipleSelected" @handleSaveSuccess="handleRefreshEquipment" />
     <process-form ref="processFormRef" :multipleSelected="handleProcessMultipleSelected" @handleSaveSuccess="handleRefreshProcess" />
@@ -88,7 +96,7 @@
 <script setup>
 import { workSectionTree } from '@/api/system/dept'
 import { detailList, updateBacth } from '@/api/business/equipment'
-import { listDeptProcess, addDeptProcess,delDeptProcess } from '@/api/business/deptProcess'
+import { listDeptProcess, addDeptProcess, delDeptProcess } from '@/api/business/deptProcess'
 import equipmentForm from './form'
 import processForm from './DialogProcessChoice'
 const { proxy } = getCurrentInstance()
@@ -105,7 +113,7 @@ const data = reactive({
   }
 })
 
-const { queryParams, queryDeptProcessParams} = toRefs(data)
+const { queryParams, queryDeptProcessParams } = toRefs(data)
 
 /** 查询 对象 */
 const workSectionList = ref([])
@@ -116,7 +124,6 @@ const equipmentLoading = ref(false)
 const deptProcessLoading = ref(false)
 const equipmentTotal = ref(0)
 const deptProcessTotal = ref(0)
-const total = ref(0)
 const single = ref(true)
 const currentWorkSection = ref({})
 const ids = ref([])
@@ -172,8 +179,7 @@ function handleEquipmentMultipleSelected(selection) {
     item.usageDeptId = currentWorkSection.value.id
   })
   items = selection
-  updateBacth(items).then((res) => {
-  })
+  updateBacth(items).then((res) => {})
 }
 
 /** 刷新设备区事件 */
@@ -181,17 +187,16 @@ function handleRefreshEquipment(row) {
   getEquipment()
 }
 
-
 /*******************************工序方法区*********************************** */
 
 const getDeptProcess = () => {
   deptProcessLoading.value = true
-queryDeptProcessParams.value.deptId = currentWorkSection.value.id
-console.log(queryDeptProcessParams.value)
+  queryDeptProcessParams.value.deptId = currentWorkSection.value.id
+  console.log(queryDeptProcessParams.value)
   listDeptProcess(queryDeptProcessParams.value).then((res) => {
     deptProcessList.value = res.rows
     deptProcessLoading.value = false
-    equipmentTotal.value = res.total
+    deptProcessTotal.value = res.total
   })
 }
 /** 打开工序对话框事件 */
@@ -201,16 +206,16 @@ function handleShowProcessFormDialog() {
 
 /**工序多选带回 */
 function handleProcessMultipleSelected(selection) {
-  for(var i = 0;i<selection.length;i++) {
-      var deptProcessAdd = {}
-      deptProcessAdd.deptId = currentWorkSection.value.id
-      deptProcessAdd.processId = selection[i].id
-      deptProcessAdd.processCode = selection[i].processCode
-      deptProcessAdd.processAlias = selection[i].processAlias
-      deptProcessList.value.push(deptProcessAdd)
+  for (var i = 0; i < selection.length; i++) {
+    var deptProcessAdd = {}
+    deptProcessAdd.deptId = currentWorkSection.value.id
+    deptProcessAdd.processId = selection[i].id
+    deptProcessAdd.processCode = selection[i].processCode
+    deptProcessAdd.processAlias = selection[i].processAlias
+    deptProcessList.value.push(deptProcessAdd)
   }
   addDeptProcess(deptProcessList.value).then((res) => {
-    if(res.code == 200) {
+    if (res.code == 200) {
       proxy.$modal.msgSuccess('保存成功')
     }
   })
@@ -227,7 +232,6 @@ function deptProcessSelectionChange(selection) {
   single.value = selection.length != 1
 }
 
-
 /**删除工序工段表数据 */
 function handledelDeptProcess() {
   proxy.$modal
@@ -237,15 +241,13 @@ function handledelDeptProcess() {
     })
     .then(() => {
       getDeptProcess()
-          proxy.$modal.msgSuccess('删除成功!')
-        })
+      proxy.$modal.msgSuccess('删除成功!')
+    })
     .catch((e) => {
       proxy.$modal.msg('操作失败!')
     })
 }
 
-
-
 onMounted(() => {
   getWorkSections()
 })

+ 10 - 10
src/views/business/employee/index.vue

@@ -4,13 +4,13 @@
     <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item class="section-title" label="员工管理" />
       <el-form-item label="员工编码:" prop="userName">
-        <el-input v-model="queryParams.userName" placeholder="请输入员工编码" clearable style="width: 130px" @keyup.enter="handleQueryUser" />
+        <el-input v-model.trim="queryParams.userName" placeholder="请输入员工编码" clearable style="width: 130px" @keyup.enter="handleQueryUser" />
       </el-form-item>
       <el-form-item label="员工姓名:" prop="nickName">
-        <el-input v-model="queryParams.nickname" placeholder="请输入员工姓名" clearable style="width: 130px" @keyup.enter="handleQueryUser" />
+        <el-input v-model.trim="queryParams.nickname" placeholder="请输入员工姓名" clearable style="width: 130px" @keyup.enter="handleQueryUser" />
       </el-form-item>
       <el-form-item label="手机号码:" prop="phoneNumber">
-        <el-input v-model="queryParams.phoneNumber" placeholder="请输入手机号码" clearable style="width: 130px" @keyup.enter="handleQueryUser" />
+        <el-input v-model.trim="queryParams.phoneNumber" placeholder="请输入手机号码" clearable style="width: 130px" @keyup.enter="handleQueryUser" />
       </el-form-item>
       <el-form-item>
         <el-button type="info" icon="Search" @click="handleQueryUser">搜索</el-button>
@@ -50,22 +50,22 @@
       <div class="form-container">
         <el-form ref="userRef" :model="form" class="master-container" :rules="rules" label-width="90px">
           <el-form-item label="员工姓名" prop="nickName">
-            <el-input v-model="form.nickName" placeholder="请输入员工姓名" maxlength="30" />
+            <el-input v-model.trim="form.nickName" placeholder="请输入员工姓名" maxlength="30" />
           </el-form-item>
           <el-form-item label="合同单位:" prop="contractCompanyName">
-          <el-select-v2 v-model="form.contractCompanyName" filterable clearable :options="contractCompanyList" placeholder="请选择合同单位" style="width: 100%" />
+          <el-select-v2 v-model.trim="form.contractCompanyName" filterable clearable :options="contractCompanyList" placeholder="请选择合同单位" style="width: 100%" />
           </el-form-item>  
           <el-form-item label="手机号码" prop="phoneNumber">
-            <el-input v-model="form.phoneNumber" placeholder="请输入手机号码" maxlength="11" />
+            <el-input v-model.trim="form.phoneNumber" placeholder="请输入手机号码" maxlength="11" />
           </el-form-item>
           <el-form-item label="邮箱" prop="email">
-            <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
+            <el-input v-model.trim="form.email" placeholder="请输入邮箱" maxlength="50" />
           </el-form-item>
           <el-form-item v-if="form.userId == undefined" label="员工编码" prop="userName">
-            <el-input v-model="form.userName" placeholder="请输入员工编码" maxlength="30" />
+            <el-input v-model.trim="form.userName" placeholder="请输入员工编码" maxlength="30" />
           </el-form-item>
           <el-form-item v-if="form.userId == undefined" label="登录密码" prop="password">
-            <el-input v-model="form.password" placeholder="请输入登录密码" type="password" maxlength="20" show-password />
+            <el-input v-model.trim="form.password" placeholder="请输入登录密码" type="password" maxlength="20" show-password />
           </el-form-item>
           <el-form-item label="用户性别">
             <el-select v-model="form.sex" placeholder="请选择">
@@ -73,7 +73,7 @@
             </el-select>
           </el-form-item>
           <el-form-item label="备注">
-            <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
+            <el-input v-model.trim="form.remark" type="textarea" placeholder="请输入内容"></el-input>
           </el-form-item>
         </el-form>
       </div>

+ 3 - 3
src/views/business/equipment/formCategory.vue

@@ -7,13 +7,13 @@
           <el-tree-select v-model="form.parentId" :data="parentCategories" check-strictly :render-after-expand="false" />
         </el-form-item>
         <el-form-item label="设备类别名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入设备类别名称" />
+          <el-input v-model.trim="form.name" placeholder="请输入设备类别名称" />
         </el-form-item>
         <el-form-item label="设备类别编号" prop="code">
-          <el-input v-model="form.code" placeholder="请输入设备类别编号" />
+          <el-input v-model.trim="form.code" placeholder="请输入设备类别编号" />
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入设备类别状态" />
+          <el-input v-model.trim="form.remark" placeholder="请输入设备类别状态" />
         </el-form-item>
         <el-form-item label="排序" prop="sort">
           <el-input-number v-model="form.sort" :min="1" controls-position="right" />

+ 3 - 3
src/views/business/equipment/formDetail.vue

@@ -3,17 +3,17 @@
     <div class="form-container">
       <el-form ref="formDetailRef" v-loading="loading" class="master-container" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="设备编码" prop="equipmentCode">
-          <el-input v-model="form.equipmentCode" placeholder="请输入设备名称" />
+          <el-input v-model.trim="form.equipmentCode" placeholder="请输入设备名称" />
         </el-form-item>
         <el-form-item label="使用部门" prop="usageDeptAlias">
-          <el-input v-model="form.usageDeptAlias" placeholder="请选择使用部门">
+          <el-input v-model.trim="form.usageDeptAlias" placeholder="请选择使用部门">
             <template #append>
               <el-button icon="Search" @click="handleSelectDeptSingle" />
             </template>
           </el-input>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" />
+          <el-input v-model.trim="form.remark" placeholder="请输入备注" />
         </el-form-item>
       </el-form>
     </div>

+ 3 - 3
src/views/business/equipment/formDoc.vue

@@ -4,13 +4,13 @@
     <div class="form-container">
       <el-form ref="formEquipmentRef" v-loading="loading" class="master-container" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="设备名称" prop="equipmentName">
-          <el-input v-model="form.equipmentName" placeholder="请输入设备名称" required />
+          <el-input v-model.trim="form.equipmentName" placeholder="请输入设备名称" required />
         </el-form-item>
         <el-form-item label="设备规格" prop="standard">
-          <el-input v-model="form.standard" placeholder="请输入规格型号" />
+          <el-input v-model.trim="form.standard" placeholder="请输入规格型号" />
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" />
+          <el-input v-model.trim="form.remark" placeholder="请输入备注" />
         </el-form-item>
       </el-form>
     </div>

+ 1 - 1
src/views/business/equipment/index.vue

@@ -43,7 +43,7 @@
       <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true">
         <el-form-item class="section-title" label="设备档案管理" />
         <el-form-item>
-          <el-input placeholder="请输入设备名称" v-model="queryParams.keywords"  @keydown.enter.prevent
+          <el-input placeholder="请输入设备名称" v-model.trim="queryParams.keywords"  @keydown.enter.prevent
           @keyup.enter="handleRefreshEquipment" clearable style="width: 180px" />
         </el-form-item>
         <el-form-item>

+ 1 - 1
src/views/business/equipment/listDetail.vue

@@ -4,7 +4,7 @@
       <el-form class="list-search-container" :inline="true">
         <el-form-item class="section-title" label="设备清单" />
         <el-form-item label="设备编码:">
-          <el-input placeholder="请输入设备编码" v-model="queryParams.equipmentCode" clearable style="width: 180px" />
+          <el-input placeholder="请输入设备编码" v-model.trim="queryParams.equipmentCode" clearable style="width: 180px" />
         </el-form-item>
         <el-form-item>
           <el-button type="info" icon="Search" @click="handleRefreshDetail">搜索</el-button>

+ 4 - 4
src/views/business/equipmentMaintenance/form.vue

@@ -28,22 +28,22 @@
           <el-row :gutter="30">
             <el-col :span="6">
               <el-form-item label="设备类别编号" prop="code">
-                <el-input v-model="form.code" placeholder="请输入设备类别编号" />
+                <el-input v-model.trim="form.code" placeholder="请输入设备类别编号" />
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="设备类别名称" prop="name">
-                <el-input v-model="form.name" placeholder="请输入设备类别名称" />
+                <el-input v-model.trim="form.name" placeholder="请输入设备类别名称" />
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="设备类别描述" prop="remark">
-                <el-input v-model="form.remark" placeholder="请输入设备类别描述" />
+                <el-input v-model.trim="form.remark" placeholder="请输入设备类别描述" />
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="设备类别排序" prop="sort">
-                <el-input v-model="form.sort" placeholder="请输入设备类别排序" />
+                <el-input v-model.trim="form.sort" placeholder="请输入设备类别排序" />
               </el-form-item>
             </el-col>
           </el-row>

+ 1 - 1
src/views/business/equipmentMaintenance/index.vue

@@ -28,7 +28,7 @@
             />
           </el-form-item>
           <el-form-item label="设备名称:">
-            <el-input placeholder="请输入设备名称/编号" v-model="queryParams.equipmentName" style="width: 130px" />
+            <el-input placeholder="请输入设备名称/编号" v-model.trim="queryParams.equipmentName" style="width: 130px" />
           </el-form-item>
           <el-form-item><el-button type="info" icon="Search">搜索</el-button></el-form-item>
         </el-form>

+ 3 - 3
src/views/business/process/form.vue

@@ -4,10 +4,10 @@
     <div class="form-container">
       <el-form ref="processRef" v-loading="loading" class="master-container" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="工序编码" prop="processCode">
-          <el-input v-model="form.processCode" placeholder="请输入工序编码" />
+          <el-input v-model.trim="form.processCode" placeholder="请输入工序编码" />
         </el-form-item>
         <el-form-item label="工序简称" prop="processAlias">
-          <el-input v-model="form.processAlias" placeholder="请输入工序简称" />
+          <el-input v-model.trim="form.processAlias" placeholder="请输入工序简称" />
         </el-form-item>
         <el-form-item label="工序状态" prop="status">
           <el-select v-model="form.status" placeholder="请选择工序状态">
@@ -15,7 +15,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入工序描述" />
+          <el-input v-model.trim="form.remark" placeholder="请输入工序描述" />
         </el-form-item>
       </el-form>
     </div>

+ 1 - 1
src/views/business/product/form-backup.vue

@@ -24,7 +24,7 @@
               <span v-else>{{ form.specification }}</span>
             </el-form-item>
             <el-form-item label="客户简称" prop="companyAlias">
-              <el-input v-if="editStatus" v-model="form.companyAlias" placeholder="客户集团简称" />
+              <el-input v-if="editStatus" v-model.trim="form.companyAlias" placeholder="客户集团简称" />
               <span v-else>{{ form.companyAlias }}</span>
             </el-form-item>
             <el-form-item label="直径" prop="diameter">

+ 1 - 1
src/views/business/product/form.vue

@@ -6,7 +6,7 @@
         <el-row :gutter="24">
           <el-col :span="12">
             <el-form-item label="客户集团简称" prop="companyAlias">
-              <el-input v-model="form.companyAlias" placeholder="客户集团简称" />
+              <el-input v-model.trim="form.companyAlias" placeholder="客户集团简称" />
             </el-form-item>
             <el-form-item label="类别" prop="type">
               <el-select v-model="form.type" placeholder="请选择类别">

+ 32 - 28
src/views/business/productionBatch/form.vue

@@ -5,8 +5,8 @@
       <el-form ref="productRef" class="master-container" :model="form" :rules="rules" label-width="120px">
         <el-row>
           <el-col :span="12">
-            <el-form-item label="生产计划单号" prop="productionPlanNo">
-              <span>{{ form.productionPlanNo }}</span>
+            <el-form-item label="生产计划单号">
+              <span>{{ detailsRow.productionPlanNo }}</span>
             </el-form-item>
             <el-form-item label="当前投产批数" prop="lotNumber">
               <el-input-number v-model="form.lotNumber" controls-position="right" style="width: 150px" />
@@ -24,10 +24,10 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="产品描述" prop="productDescription">
-              <span>{{ form.productDescription }}</span>
+              <span>{{ detailsRow.productDescription }}</span>
             </el-form-item>
-            <el-form-item label="当前投产量" prop="productionVolume">
-              <span>{{ form.productionVolume }}</span>
+            <el-form-item label="当前投产量" prop="productionQuantity">
+              <span>{{ form.productionQuantity }}</span>
             </el-form-item>
           </el-col>
         </el-row>
@@ -50,7 +50,7 @@ const detailsRow = ref({})
 const visible = ref(false)
 const validateLotNumber = (rule, value, callback) => {
   const min = 0
-  const max = detailsRow.value.totalLotNumber
+  const max = detailsRow.value.lotNumber
   if (value <= min) {
     callback(new Error('当前投产批数应大于0'))
   } else if (value > max) {
@@ -74,6 +74,23 @@ const data = reactive({
 })
 const { form, rules } = toRefs(data)
 /***********************  方法区  ****************************/
+/** 表单重置 */
+function reset() {
+  form.value = {
+    id: null,
+    productionPlanId: 0,
+    productionPlanDetailId: '0',
+    productionQuantity: 0,
+    productId: '0',
+    technologicalProcessId: '0',
+    technologyVersion: '',
+    lotNumber: 0,
+    issuanceDate: proxy.moment().format('YYYY-MM-DD'),
+    remark: null
+  }
+  proxy.resetForm('productRef')
+}
+
 /** 打开抽屉 */
 function open(row) {
   reset()
@@ -82,31 +99,18 @@ function open(row) {
 
   if (row) {
     detailsRow.value = row
-    form.value.lotNumber = row.totalLotNumber
-    if (!form.value.issuanceDate) {
-      form.value.issuanceDate = proxy.moment().format('YYYY-MM-DD')
-    }
+    form.value.productionPlanNo = row.productionPlanNo
+    form.value.productionPlanDetailId = row.productionPlanDetailId
+    form.value.productionQuantity = row.productionQuantity
+    form.value.productId = row.productId
+    form.value.deptId = row.deptId
+    form.value.technologicalProcessId = row.technologicalProcessId
+    form.value.technologyVersion = row.technologyVersion
+    form.value.lotNumber = row.lotNumber
   }
   loading.value = false
 }
 
-/** 表单重置 */
-function reset() {
-  form.value = {
-    id: null,
-    productionPlanId: null,
-    productionPlanDetailId: null,
-    productionQuantity: null,
-    productId: null,
-    technologicalProcessId: null,
-    technologyVersion: null,
-    lotNumber: null,
-    issuanceDate: null,
-    remark: null
-  }
-  proxy.resetForm('productRef')
-}
-
 /** 提交按钮 */
 function handleSave() {
   proxy.$refs['productRef'].validate((valid) => {
@@ -116,7 +120,7 @@ function handleSave() {
         if (res.code == 200) {
           proxy.$modal.msgSuccess('保存成功!')
           visible.value = false
-          detailsRow.value.id = detailsRow.value.productionPlanDetailId
+          //detailsRow.value.id = detailsRow.value.productionPlanDetailId
           emit('handleSaveSuccess')
         }
       })

+ 38 - 35
src/views/business/productionBatch/index.vue

@@ -7,7 +7,7 @@
         <el-form-item label="产品描述:">
           <el-input
             placeholder="请输入产品描述"
-            v-model="queryParams.keywords"
+            v-model.trim="queryParams.keywords"
             @keyup.enter="handleQuery"
             @keydown.enter.prevent
             clearable
@@ -53,7 +53,7 @@
             <el-table-column label="下达日期" prop="issueDate" width="120" align="center" />
             <el-table-column label="操作" width="70" align="center">
               <template #default="scope">
-                <el-button link type="primary" @click="handleAddSubDetail(scope.row)">投产 </el-button>
+                <el-button link type="primary" icon="Postcard" @click="handleAddSubDetail(scope.row)">投产 </el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -90,7 +90,7 @@
               <el-table-column type="index" label="行号" width="50" align="center" />
               <el-table-column label="生产计划单号" prop="productionPlanNo" width="110" align="center" />
               <el-table-column label="产品描述" prop="productDescription" align="center" />
-              <el-table-column label="当前投产量" prop="productionVolume" width="80" align="center" />
+              <el-table-column label="当前投产量" prop="productionQuantity" width="80" align="center" />
               <el-table-column label="当前投产批数" prop="lotNumber" width="100" align="center">
                 <template #default="scope">
                   <el-input-number
@@ -121,10 +121,12 @@
               </el-table-column>
               <el-table-column label="操作" width="150" align="center">
                 <template #default="scope">
-                  <el-button v-if="!scope.row.editStatus" icon="edit" link type="warning" @click="handleEditSubDetail(scope.row)">编辑 </el-button>
+                  <el-button v-if="!scope.row.editStatus" icon="edit" link type="warning" @click="handleShowSubDetailDialog(scope.row)"
+                    >编辑
+                  </el-button>
                   <el-button v-if="!scope.row.editStatus" icon="delete" link type="danger" @click="handleDelSubDetail(scope.row)">删除 </el-button>
                   <el-button v-if="scope.row.editStatus" icon="Check" link type="success" @click="handleSaveSubDetail(scope.row)">确认 </el-button>
-                  <el-button v-if="scope.row.editStatus" icon="close" link type="info" @click="handleEditSubDetail(scope.row)">取消 </el-button>
+                  <el-button v-if="scope.row.editStatus" icon="close" link type="info" @click="handleShowSubDetailDialog(scope.row)">取消 </el-button>
                 </template>
               </el-table-column>
             </el-table>
@@ -150,7 +152,7 @@
         <el-form class="list-search-container" :inline="true">
           <el-form-item class="section-title" label="设置设备" />
           <el-form-item>
-            <el-button icon="Plus" type="primary" :disabled="!processRow.id" @click="openEquipment">选择设备</el-button>
+            <el-button icon="Plus" type="primary" :disabled="!currentProcess.id" @click="openEquipment">选择设备</el-button>
           </el-form-item>
         </el-form>
         <div class="el-table-container">
@@ -179,7 +181,7 @@
       </section>
     </section>
     <!-- 表单 -->
-    <production-lot-form ref="productionRef" @handlerSaveSuccess="handlePlanDetailCurrentChange" />
+    <production-lot-form ref="productionRef" @handleSaveSuccess="handlePlanDetailCurrentChange(currentPlanDetail)" />
     <equipment ref="equipmentRef" :get-list="handleProcessCurrentChange" :multipleSelected="equipmentSelected" :multiple="true" />
   </div>
 </template>
@@ -205,11 +207,14 @@ const deptList = ref([])
 const planDetailTable = ref(null)
 const subDetailsTable = ref(null)
 const processTable = ref(null)
+
 /**生产计划批次点击对象 */
-const detailRow = ref({})
+const currentPlanDetail = ref({})
+
 /**子计划点击对象 */
-const subRow = ref({})
-const processRow = ref({})
+const currentSubDetail = ref({})
+const currentProcess = ref({})
+
 const subDetailsLoading = ref(false)
 const equipmentLoading = ref(false)
 const detailPlanList = ref([])
@@ -283,7 +288,7 @@ function handleEquipmentSelectionChange(selection) {
 /** 生产计划明细 current-change 事件 */
 function handlePlanDetailCurrentChange(row) {
   if (row) {
-    detailRow.value = row
+    currentPlanDetail.value = row
     subDetailsLoading.value = true
     listPlanDetailSubDetail({
       productionPlanDetailId: row.id,
@@ -305,7 +310,7 @@ function handlePlanDetailCurrentChange(row) {
 /** 生产子计划 current-change 事件 */
 function handleSubDetailCurrentChange(row) {
   if (row) {
-    subRow.value = row
+    currentSubDetail.value = row
     listTechnologicalProcessDetail({ technologicalProcessId: row.technologicalProcessId }).then((res) => {
       processList.value = res.rows
       if (processList.value.length > 0) {
@@ -319,15 +324,15 @@ function handleSubDetailCurrentChange(row) {
 }
 /**工段下拉框change事件 */
 function handleDeptChange() {
-  handlePlanDetailCurrentChange(detailRow.value)
+  handlePlanDetailCurrentChange(currentPlanDetail.value)
 }
 /** 工序 current-change 事件 */
 function handleProcessCurrentChange(row) {
   if (row) {
-    processRow.value = row
+    currentProcess.value = row
     equipmentLoading.value = true
     listEquipment({
-      productionPlanDetailSubDetailId: subRow.value.id,
+      productionPlanDetailSubDetailId: currentSubDetail.value.id,
       technologicalProcessId: row.technologicalProcessId,
       processId: row.id
     }).then((res) => {
@@ -344,11 +349,12 @@ function handleProcessCurrentChange(row) {
 
 /** 设备选择对话框 */
 function openEquipment() {
+  equipmentCodeIds.value = []
   for (var i = 0; i < equipmentList.value.length; i++) {
     equipmentCodeIds.value.push(equipmentList.value[i].equipmentDetailCode)
   }
-  subRow.value.equipmentCodeIds = equipmentCodeIds.value
-  proxy.$refs.equipmentRef.open(subRow.value)
+  currentSubDetail.value.equipmentCodeIds = equipmentCodeIds.value
+  proxy.$refs.equipmentRef.open(currentSubDetail.value)
 }
 
 /**新增按钮生产子计划 */
@@ -362,19 +368,16 @@ function handleAddSubDetail(row) {
   newDetail.productId = row.productId
   newDetail.productDescription = row.productDescription
   newDetail.deptId = queryParams.value.deptId
-  newDetail.drawingNumber = row.drawingNumber
-  newDetail.totalLotNumber = row.totalLotNumber
+  newDetail.lotNumber = row.totalLotNumber
   newDetail.technologicalProcessId = row.technologicalProcessId
-  //给下达日期一个当前日期的默认值
-  const date = new Date()
-  newDetail.issuanceDate = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate()
+  newDetail.technologyVersion = row.technologyVersion
 
   // 打开 生产子计划 对话框
-  handleEditSubDetail(newDetail)
+  handleShowSubDetailDialog(newDetail)
 }
 
 /** 修改 生产子计划 事件 */
-function handleEditSubDetail(row) {
+function handleShowSubDetailDialog(row) {
   proxy.$refs.productionRef.open(row)
 }
 
@@ -383,7 +386,7 @@ function handleSaveSubDetail(row) {
   savePlanDetailSubDetail(row).then((res) => {
     if (res.code == 200) {
       proxy.$modal.msgSuccess('保存成功!')
-      handlePlanDetailCurrentChange(detailRow.value)
+      handlePlanDetailCurrentChange(currentPlanDetail.value)
     }
   })
 }
@@ -397,7 +400,7 @@ function handleDelSubDetail(row) {
       return delPlanDetailSubDetail(_ids)
     })
     .then(() => {
-      handlePlanDetailCurrentChange(detailRow.value)
+      handlePlanDetailCurrentChange(currentPlanDetail.value)
 
       proxy.$modal.msgSuccess('删除成功!')
     })
@@ -413,7 +416,7 @@ function handleEquipmentDelete(row) {
       return delEquipment(_ids)
     })
     .then(() => {
-      handleProcessCurrentChange(processRow.value)
+      handleProcessCurrentChange(currentProcess.value)
       proxy.$modal.msgSuccess('删除成功!')
     })
     .catch(() => {})
@@ -422,21 +425,21 @@ function equipmentSelected(selection) {
   const equipment = []
   for (let i = 0; i < selection.length; i++) {
     const item = {}
-    item.productionPlanId = detailRow.value.productionPlanId
-    item.productionPlanDetailId = detailRow.value.id
-    item.productionPlanDetailSubDetailId = subRow.value.id
-    item.productId = subRow.value.productId
-    item.technologicalProcessId = subRow.value.technologicalProcessId
-    item.processId = processRow.value.id
+    item.productionPlanId = currentPlanDetail.value.productionPlanId
+    item.productionPlanDetailId = currentPlanDetail.value.id
+    item.productionPlanDetailSubDetailId = currentSubDetail.value.id
+    item.productId = currentPlanDetail.value.productId
+    item.technologicalProcessId = currentSubDetail.value.technologicalProcessId
+    item.processId = currentProcess.value.id
     item.equipmentDetailId = selection[i].id
     item.equipmentDetailCode = selection[i].equipmentCode
-    item.deptId = subRow.value.deptId
+    item.deptId = currentSubDetail.value.deptId
     equipment.push(item)
   }
   saveBatchEquipment(equipment).then((res) => {
     if (res.code == 200) {
       proxy.$modal.msgSuccess('保存成功!')
-      handleProcessCurrentChange(processRow.value)
+      handleProcessCurrentChange(currentProcess.value)
     }
   })
 }

+ 9 - 10
src/views/business/productionPlan/index.vue

@@ -33,7 +33,7 @@
     <!-- 搜索区 -->
     <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true">
       <el-form-item label="计划单号:">
-        <el-input placeholder="请输入计划单号" v-model="queryParams.planningNumber" />
+        <el-input placeholder="请输入计划单号"  @keydown.enter.prevent @keyup.enter="handleQuery" v-model.trim="queryParams.planningNumber" />
       </el-form-item>
       <el-form-item label="状态:">
         <el-select-v2
@@ -56,22 +56,22 @@
       <div class="el-table-inner-container">
         <el-table v-loading="loading" :data="productionPlanList" height="100%">
           <el-table-column type="index" label="行号" width="50" align="center"></el-table-column>
-          <el-table-column label="计划单号" width="120" prop="planningNumber" align="center" />
-          <el-table-column label="状态" width="100" prop="planStatus" align="center">
+          <el-table-column label="计划单号" width="120" prop="productionPlanNo" align="center" />
+          <el-table-column label="状态" width="100" prop="statusCode" align="center">
             <template #default="scope">
-              <dict-tag :options="plan_status" :value="scope.row.planStatus" />
+              <dict-tag :options="plan_status" :value="scope.row.statusCode" />
             </template>
           </el-table-column>
           <el-table-column label="产品描述" prop="productDescription" align="center" />
-          <el-table-column label="调度" width="100" prop="scheduling" align="center" />
+          <el-table-column label="调度" width="100" prop="dispatcherCode" align="center" />
           <el-table-column label="开始时间" width="160" prop="startTime" align="center" />
-          <el-table-column label="总批数" width="100" prop="totalNumber" align="center" />
+          <el-table-column label="总批数" width="100" prop="totalLotNumber" align="center" />
           <el-table-column label="投产批次" width="100" prop="productionBatch" align="center" />
-          <el-table-column label="完成批次" width="100" align="center">
+          <!-- <el-table-column label="完成批次" width="100" align="center">
             <template #default="scope">
-              {{ scope.row.newNumber + '/' + scope.row.oldNumber }}
+              {{ '0 / ' + scope.row.totalLotNumber }}
             </template>
-          </el-table-column>
+          </el-table-column> -->
 
           <!-- <el-table-column label="操作" width="80" align="center">
             <template #default="scope">
@@ -120,7 +120,6 @@ onMounted(() => {
 function getList() {
   loading.value = true
   getP2Plan(queryParams.value).then((res) => {
-    console.log(res)
     productionPlanList.value = res.rows
     total.value = res.total
     loading.value = false

+ 31 - 28
src/views/business/productionTask/index.vue

@@ -6,7 +6,7 @@
       <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true">
         <el-form-item class="section-title" label="生产子计划" />
         <el-form-item label="产品描述:">
-          <el-input placeholder="请输入" @keyup.enter="handleQuery" @keydown.enter.prevent clearable v-model="queryParams.planningNumber" />
+          <el-input placeholder="请输入" @keyup.enter="handleQuery" @keydown.enter.prevent clearable v-model.trim="queryParams.planningNumber" />
         </el-form-item>
         <el-form-item class="section-title" label="当前工段:">
           <el-select-v2 v-model="queryParams.deptId" filterable :options="deptList" placeholder="请选择工段" @change="handleDeptChange" />
@@ -19,7 +19,7 @@
       </el-form>
       <div class="el-table-container">
         <div class="el-table-inner-container">
-          <el-table ref="subDetailsTable" :data="subDetails" v-loading="loading" highlight-current-row height="100%" @current-change="handleSubDetailChange">
+          <el-table ref="subDetailsTable" :data="subDetailsList" v-loading="subDetailsLoading" highlight-current-row height="100%" @current-change="handleSubDetailChange">
             <el-table-column type="index" label="行号" width="50px" align="center" />
             <el-table-column label="生产计划单号" prop="productionPlanNo" width="110" align="center" />
             <el-table-column label="产品描述" prop="productDescription" width="182" align="center" />
@@ -45,7 +45,7 @@
       </el-form>
       <div class="el-table-container">
         <div class="el-table-inner-container">
-          <el-table ref="processTable" :data="processList" v-loading="loading" highlight-current-row height="100%" @current-change="handleProcessChange">
+          <el-table ref="processTable" :data="processList" v-loading="processLoading" highlight-current-row height="100%" @current-change="handleProcessChange">
             <el-table-column type="index" label="行号" width="50" align="center" />
             <el-table-column label="工序" prop="processCode" align="center" />
           </el-table>
@@ -61,14 +61,14 @@
       </el-form>
       <div class="el-table-container">
         <div class="el-table-inner-container">
-          <el-table :data="equipmentList" v-loading="loading" highlight-current-row height="100%" @selection-change="handleSelectionChange">
+          <el-table :data="equipmentList" v-loading="equipmentLoading" highlight-current-row height="100%" @selection-change="handleSelectionChange">
             <el-table-column type="selection" width="40" align="center" />
             <el-table-column type="index" label="行号" width="50" align="center" />
             <el-table-column label="设备号" prop="equipmentDetailCode" width="60" align="center" />
             <el-table-column label="操作者" prop="userNickNames" align="center" />
             <el-table-column label="操作" width="100" align="center">
               <template #default="scope">
-                <el-button link type="primary" icon="setting" @click="handleSetUsers(scope.row)">设置操作者</el-button>
+                <el-button link type="primary" :disabled="selections.length > 0" icon="setting" @click="handleSetUsers(scope.row)">设置操作者</el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -92,8 +92,10 @@ const queryParams = ref({
   pageNum: 1,
   pageSize: 10
 })
-const loading = ref(false)
-const subDetails = ref([])
+const subDetailsLoading = ref(false)
+const processLoading = ref(false)
+const equipmentLoading = ref(false)
+const subDetailsList = ref([])
 const processList = ref([])
 const equipmentList = ref([])
 const processRow = ref({})
@@ -115,7 +117,7 @@ onMounted(() => {
   loadData()
 })
 
-// 加载 生产计划数据
+// 加载 生产计划数据
 const loadData = () => {
   getDept().then((response) => {
     deptList.value = response.data
@@ -128,14 +130,17 @@ const loadData = () => {
 
 /**查询子计划列表 */
 function getSubDetail() {
-  loading.value = true
+  subDetailsLoading.value = true
   getProductionPlanDetailSubDetails(queryParams.value).then((res) => {
-    subDetails.value = res.rows
+    subDetailsList.value = res.rows
     subDetailTotal.value = res.total
-    loading.value = false
-    if (subDetails.value.length > 0) {
-      currentSubDetail.value = subDetails.value[0]
-      proxy.$refs.subDetailsTable.setCurrentRow(currentSubDetail.value)
+    subDetailsLoading.value = false
+    if (subDetailsList.value.length > 0) {
+      proxy.$refs.subDetailsTable.setCurrentRow(subDetailsList.value[0])
+    }
+    else {
+      processList.value = []
+      equipmentList.value =[]
     }
   })
 }
@@ -147,7 +152,6 @@ const handleQuery = () => {
 
 // 子计划的change事件
 const handleSubDetailChange = (row) => {
-  console.log(row)
   if (row) {
     currentSubDetail.value = row
     _getProcessDetailsByTechnicalProcessId(row.technologicalProcessId)
@@ -171,7 +175,6 @@ function handleSelectionChange(selection) {
 }
 /**单选设备绑定操作人 */
 function handleSingleSelected(row) {
-  console.log(row)
   currentEquipment.value = row
 }
 // 多选操作者后的回调事件
@@ -182,7 +185,7 @@ const handleMultipleSelected = (employees) => {
    * 需要双双循环,形成一个数组,再将数据保存到
    * production_plan_detail_sub_detail_equipment_user 表中
    */
-  if (selections.value.length > 0) {
+  if (selections.value.length > 0) { 
     selections.value.forEach((el) => {
       employees.forEach((em) => {
         equipmentUsers.push({
@@ -204,7 +207,6 @@ const handleMultipleSelected = (employees) => {
      * 单选设备绑定操作人
      */
     employees.forEach((em) => {
-      console.log(processRow.value, 'row')
       equipmentUsers.push({
         productionPlanDetailSubDetailId: currentSubDetail.value.id,
         productionPlanDetailId: currentSubDetail.value.productionPlanDetailId,
@@ -220,13 +222,13 @@ const handleMultipleSelected = (employees) => {
       })
     })
   }
-
   saveEquipmentUser(equipmentUsers).then((res) => {
     if (res.code == 200) {
+         _getSubDetailProcessEquipments(processRow.value.id)
       proxy.$modal.msgSuccess('操作成功')
     }
 
-    getSubDetail()
+ 
   })
 }
 /**工段下拉框change事件 */
@@ -238,32 +240,33 @@ const handleSetUsers = (row) => {
   if (row) {
     singleUser.value = row
   }
-
-  proxy.$refs.personRef.open(queryParams.value.deptId)
+  const userInfo = {}
+  userInfo.identifying = false 
+  userInfo.deptId = queryParams.value.deptId
+  proxy.$refs.personRef.open(userInfo)
 }
 
 /************************************ 私有方法 ************************************/
 const _getProcessDetailsByTechnicalProcessId = (technologicalProcessId) => {
+  processLoading.value = true
   getProcessDetailsByTechnicalProcessId({ technologicalProcessId: technologicalProcessId }).then((res) => {
     processList.value = res.rows
+    processLoading.value = false
     if (processList.value.length > 0) {
-      currentProcess.value = processList.value[0]
-
-      proxy.$refs.processTable.setCurrentRow(currentProcess.value)
+      proxy.$refs.processTable.setCurrentRow(processList.value[0])
     }
   })
 }
 
 const _getSubDetailProcessEquipments = (processId) => {
+  equipmentLoading.value = true
   getSubDetailProcessEquipments({
     productionPlanDetailSubDetailId: currentSubDetail.value.id,
     technologicalProcessId: currentSubDetail.value.technologicalProcessId,
     processId: processId
   }).then((res) => {
     equipmentList.value = res.rows
-    if (res.rows.length === 0) {
-      equipmentList.value = []
-    }
+    equipmentLoading.value = false
   })
 }
 </script>

+ 45 - 20
src/views/business/resourceAllocation/index.vue

@@ -9,7 +9,14 @@
       <!-- 列表区 -->
       <div class="el-table-container">
         <div class="el-table-inner-container">
-          <el-table ref="workSectionTable" :data="deptList" v-loading="workSectionLoading" height="100%" highlight-current-row @current-change="handleWorkSectionChange">
+          <el-table
+            ref="workSectionTable"
+            :data="deptList"
+            v-loading="workSectionLoading"
+            height="100%"
+            highlight-current-row
+            @current-change="handleWorkSectionChange"
+          >
             <el-table-column label="行号" type="index" width="50" align="center" />
             <el-table-column label="工段编码" prop="deptCode" width="80" align="center" />
             <el-table-column label="工段名称" prop="label" align="center" />
@@ -29,7 +36,15 @@
       <!-- 列表区 -->
       <div class="el-table-container">
         <div class="el-table-inner-container">
-          <el-table ref="yardmanTable" :data="yardmanList" v-loading="yardmanLoading" height="100%" border highlight-current-row @current-change="handelYardmanListChange">
+          <el-table
+            ref="yardmanTable"
+            :data="yardmanList"
+            v-loading="yardmanLoading"
+            height="100%"
+            border
+            highlight-current-row
+            @current-change="handelYardmanListChange"
+          >
             <el-table-column type="index" label="行号" width="50px" align="center" />
             <el-table-column label="部门名称" prop="deptName" align="center">
               <template #default="scope">
@@ -54,17 +69,20 @@
           </el-table>
         </div>
       </div>
-      <pagination v-show="yardmanTotal > 0" :total="yardmanTotal" v-model:page="yardmanParams.pageNum" v-model:limit="yardmanParams.pageSize" @pagination="getYardman" />
-
+      <pagination
+        v-show="yardmanTotal > 0"
+        :total="yardmanTotal"
+        v-model:page="yardmanParams.pageNum"
+        v-model:limit="yardmanParams.pageSize"
+        @pagination="getYardman"
+      />
     </section>
     <section class="list-part-container" style="flex: 1">
       <!-- 搜索区 -->
       <el-form class="list-search-container" ref="queryRef" :inline="true">
         <el-form-item class="section-title" label="调机设备分配" />
         <el-form-item>
-          <div class="list-btns-container">
-            <el-button type="primary" icon="Plus" @click="handleEquipmentAdd()">分配</el-button>
-          </div>
+          <el-button type="primary" icon="Plus" @click="handleEquipmentAdd()">分配</el-button>
         </el-form-item>
       </el-form>
 
@@ -78,11 +96,20 @@
           </el-table>
         </div>
       </div>
-      <pagination v-show="equipmentTotal > 0" :total="equipmentTotal" v-model:page="equipmentParams.pageNum" v-model:limit="equipmentParams.pageSize" @pagination="handelYardmanListChange" />
-
+      <pagination
+        v-show="equipmentTotal > 0"
+        :total="equipmentTotal"
+        v-model:page="equipmentParams.pageNum"
+        v-model:limit="equipmentParams.pageSize"
+        @pagination="handelYardmanListChange"
+      />
     </section>
     <!-- 表单 -->
-    <resource-allocation-form ref="resourceAllocationRef" :get-list="getList" :multiple-selected="handleequipmentDetailSelected"></resource-allocation-form>
+    <resource-allocation-form
+      ref="resourceAllocationRef"
+      :get-list="getList"
+      :multiple-selected="handleequipmentDetailSelected"
+    ></resource-allocation-form>
   </div>
 </template>
 
@@ -113,23 +140,21 @@ const equipmentTotal = ref(0)
 const ids = ref([])
 const deptId = ref(0)
 
-
-
 const data = reactive({
-  /**调机查询对象*/ 
-  yardmanParams :{
-  pageNum: 1,
-  pageSize: 10,
-  isYardman: 1
-},
-/**调机设备查询对象 */
+  /**调机查询对象*/
+  yardmanParams: {
+    pageNum: 1,
+    pageSize: 10,
+    isYardman: 1
+  },
+  /**调机设备查询对象 */
   equipmentParams: {
     pageNum: 1,
     pageSize: 10,
     isYardman: 1
   }
 })
-const { yardmanParams,equipmentParams } = toRefs(data)
+const { yardmanParams, equipmentParams } = toRefs(data)
 /***********************  方法区  ****************************/
 
 /** 查询资源分配列表 */

+ 6 - 6
src/views/business/tenant/form.vue

@@ -6,22 +6,22 @@
           <image-upload :limit="1" :isShowTip="false" v-model="form.logo" />
         </el-form-item>
         <el-form-item label="企业全称:" prop="name">
-          <el-input v-model="form.orgName" placeholder="请输入企业全称" />
+          <el-input v-model.trim="form.orgName" placeholder="请输入企业全称" />
         </el-form-item>
         <el-form-item label="统一社会信用编码:" prop="orgCrtCode">
-          <el-input v-model="form.orgCrtCode" placeholder="请输入统一社会信用编码" />
+          <el-input v-model.trim="form.orgCrtCode" placeholder="请输入统一社会信用编码" />
         </el-form-item>
         <el-form-item label="详细地址:" prop="orgAddr">
-          <el-input v-model="form.orgAddr" placeholder="选择省市区" />
+          <el-input v-model.trim="form.orgAddr" placeholder="选择省市区" />
         </el-form-item>
         <el-form-item label="联系人:" prop="contactName">
-          <el-input v-model="form.contactName" placeholder="请输入联系人" />
+          <el-input v-model.trim="form.contactName" placeholder="请输入联系人" />
         </el-form-item>
         <el-form-item label="联系电话:" prop="contactPhone">
-          <el-input v-model="form.contactPhone" placeholder="请输入联系电话" />
+          <el-input v-model.trim="form.contactPhone" placeholder="请输入联系电话" />
         </el-form-item>
         <el-form-item label="电子邮箱:" prop="contactEmail">
-          <el-input v-model="form.contactEmail" placeholder="请输入电子邮箱" />
+          <el-input v-model.trim="form.contactEmail" placeholder="请输入电子邮箱" />
         </el-form-item>
       </el-form>
     </div>

+ 2 - 2
src/views/business/tenant/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="page-container column-container">
     <!-- 搜索区 -->
-    <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true" label-width="68px" @submit.native.prevent>
+    <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true" label-width="68px">
       <el-form-item class="section-title" label="租户管理" />
       <el-form-item label="租户名称:" prop="orgName">
-        <el-input v-model="queryParams.orgName" placeholder="请输入租户名称" clearable @keyup.enter="handleQuery" />
+        <el-input v-model.trim="queryParams.orgName" placeholder="请输入租户名称" clearable @keyup.enter="handleQuery"  @keydown.enter.prevent />
       </el-form-item>
       <el-form-item>
         <el-button type="info" icon="Search" @click="handleQuery">搜索</el-button>

+ 2 - 2
src/views/business/turnover/form.vue

@@ -4,7 +4,7 @@
     <div class="form-container">
       <el-form ref="turnoverFormRef" class="master-container" :rules="rules" v-loading="loading" :model="form" label-width="100px">
         <el-form-item label="周转区名称" prop="code" >
-          <el-input v-model="form.code" placeholder="请输入周转区名称" />
+          <el-input v-model.trim="form.code" placeholder="请输入周转区名称" />
         </el-form-item>
         <el-form-item label="状态" prop="status">
           <el-select v-model="form.status" placeholder="请选择周转区状态">
@@ -12,7 +12,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" />
+          <el-input v-model.trim="form.remark" placeholder="请输入备注" />
         </el-form-item>
       </el-form>
     </div>

+ 5 - 4
src/views/dialog/equipment.vue

@@ -15,7 +15,7 @@
           placeholder="请输入设备编码"
           @keydown.enter.prevent
           @keyup.enter="handleSearch"
-          v-model="queryParams.equipmentCode"
+          v-model.trim="queryParams.equipmentCode"
         />
       </el-form-item>
       <el-form-item>
@@ -23,11 +23,11 @@
           placeholder="请输入设备名称"
           @keydown.enter.prevent
           @keyup.enter="handleSearch"
-          v-model="queryParams.equipmentName"
+          v-model.trim="queryParams.equipmentName"
         />
       </el-form-item>
       <el-form-item>
-        <el-button type="success" icon="Search" @click="handleSearch"
+        <el-button type="info" icon="Search" @click="handleSearch"
           >搜索</el-button
         >
         <el-button
@@ -149,11 +149,12 @@ const { queryParams } = toRefs(data);
  * 对话框打开 事件
  */
 function open(row) {
+  equipmentCodeIds.value = []
   visible.value = true;
-
   if (row) {
     detailRow.value = row;
     equipmentCodeIds.value = detailRow.value.equipmentCodeIds;
+    console.log(equipmentCodeIds.value,"equipmentCodeIds")
     queryParams.value.usageDeptId = row.deptId;
   }
   getList();

+ 71 - 40
src/views/dialog/person.vue

@@ -3,53 +3,43 @@
     title="员工选择"
     v-model="visible"
     :width="width"
+    @close="close"
     append-to-body
     draggable
   >
-    <template #header>
-      <span style="color: #fff">员工选择</span>
-    </template>
-    <el-form class="list-search-container" :inline="true">
-      <el-form-item label="员工名称:">
+    <el-form ref="dialogForm" class="master-container" :inline="true"  :model="queryParams" style="margin-top: 20px;">
+      <el-form-item label="员工姓名:" prop="nickName">
         <el-input
-          v-model.trim="queryParams.name"
+          v-model.trim="queryParams.nickName"
           type="text"
-          placeholder="员工名"
+          placeholder="请输入员工名"
           @keydown.enter.prevent
           @keyup.enter="handleSearch"
           style="width: 180px"
-          :clearable="true"
+          clearable
         />
       </el-form-item>
-      <el-form-item label="员工编码:">
+      <el-form-item label="员工编码:" prop="userName">
         <el-input
-          v-model.trim="queryParams.code"
+          v-model.trim="queryParams.userName"
           type="text"
-          placeholder="员工编码"
+          placeholder="请输入员工编码"
           @keydown.enter.prevent
           @keyup.enter="handleSearch"
           style="width: 180px"
-          :clearable="true"
+         clearable
         />
       </el-form-item>
       <el-form-item>
         <el-button type="success" icon="Search" @click="handleSearch"
           >搜索</el-button
         >
-        <el-button
-          v-if="multiple"
-          type="primary"
-          :disabled="selections.length === 0"
-          icon="Finished"
-          @click="handleMultipleSelected"
-        >
-          确定
-        </el-button>
       </el-form-item>
     </el-form>
-    <div class="page-container column-container">
       <el-table
+       ref="dialogTable"
         :data="list"
+        v-loading ="personLoading"
         height="400px"
         row-key="id"
         @selection-change="handleSelectionChange"
@@ -58,8 +48,8 @@
         <el-table-column
           v-if="multiple"
           type="selection"
-          width="40"
           :selectable="selectable"
+          width="40"
           :reserve-selection="true"
           align="center"
         />
@@ -107,13 +97,27 @@
         v-model:limit="queryParams.pageSize"
         @pagination="getList"
       />
-    </div>
+      <template #footer>
+    <div class="dialog-footer">
+        <el-button
+          v-if="multiple"
+          type="primary"
+          :disabled="selections.length === 0"
+          icon="Finished"
+          @click="handleMultipleSelected"
+        >
+          确定
+        </el-button>
+        <el-button @click="close">取 消</el-button>
+      </div>
+    </template>
   </el-dialog>
 </template>
 <script setup>
 import { ref } from "@vue/reactivity";
 import { listEmployee } from "@/api/system/user";
-import { getUsersByDeptId } from "@/api/system/user";
+import { listUser,getUsersByDeptId,getUsersItemByDeptId } from "@/api/system/user";
+const { proxy } = getCurrentInstance()
 const total = ref(0);
 const props = defineProps({
   width: {
@@ -139,22 +143,33 @@ const props = defineProps({
 });
 const { singleSelected, multipleSelected, selected } = toRefs(props);
 const list = ref([]);
+const userIds = ref([])
+const personLoading = ref(false)
 const visible = ref(false);
+const identifying = ref(false)
 const data = reactive({
   queryParams: {
-    name: "",
+    nickName: '',
+    userName:'',
     pageSize: 10,
     pageNum: 1,
+
   },
 });
 const selections = ref([]);
 const { queryParams } = toRefs(data);
-
 /**
  * 对话框打开 事件
  */
-function open(id) {
-  queryParams.value.deptId = id;
+function open(userInfo) {
+  if(userInfo.identifying) {
+     identifying.value = userInfo.identifying
+     //queryParams.value.deptId = userInfo.deptId;
+     userIds.value = userInfo.userListIds
+  }
+  else {
+    queryParams.value.deptId = userInfo.deptId;
+  }
   visible.value = true;
   getList();
 }
@@ -163,6 +178,8 @@ function open(id) {
  * 对话框关闭 事件
  */
 function close() {
+  proxy.$refs.dialogForm.resetFields();
+  proxy.$refs.dialogTable.clearSelection();
   visible.value = false;
 }
 
@@ -170,35 +187,42 @@ function close() {
  * 加载数据
  */
 function getList() {
-  getUsersByDeptId(queryParams.value).then((response) => {
+  personLoading.value = true
+  if(identifying.value) {
+    listUser(queryParams.value).then((response) => {
     if (response.code == 200) {
       list.value = response.rows;
       total.value = response.total;
+      personLoading.value = false
     }
   });
+  }
+  else {
+  getUsersItemByDeptId(queryParams.value).then((response) => {
+    if (response.code == 200) {
+      list.value = response.rows;
+      total.value = response.total;
+      personLoading.value = false
+    }
+  });
+}
 }
 
 /**
  * 列表checkbox列选择 事件
  */
 function handleSelectionChange(selection) {
-  selections.value = selection;
+ selections.value = selection;
 }
 
-function selectable(row, index) {
-  // if (selected.value.length > 0) {
-  //   return !selected.value.some(l => l.userId === row.userId)
-  // } else {
-  return true;
-  // }
-}
 
 /**  搜索 事件 */
 function handleSearch(type) {
   if (type && type === "clear") {
     queryParams.value = {
       subject: "",
-      name: "",
+      nickName: "",
+      userName:'',
       total: 0,
       pageSize: 10,
       pageNum: 1,
@@ -209,7 +233,6 @@ function handleSearch(type) {
 
 /** 单选事件 */
 function handleSingleSelected(row) {
-  console.log(singleSelected.value);
   if (singleSelected.value) {
     singleSelected.value(row);
   }
@@ -224,6 +247,14 @@ function handleMultipleSelected() {
   close();
 }
 
+function selectable(row, index) {
+  if (userIds.value.length > 0) {
+    return !userIds.value.includes(row.userName);
+  } else {
+    return true;
+  }
+}
+
 defineExpose({
   open,
 });

+ 13 - 30
src/views/index.vue

@@ -2,7 +2,7 @@
   <div class="page-container column-container">
     <el-row :gutter="24">
       <el-col :span="8">
-        <div class="dashboard-total-item">
+        <!-- <div class="dashboard-total-item">
           <img :src="totalIcon2" />
           <div class="dashboard-total-item-label">
             <span>员工总数</span>
@@ -12,10 +12,10 @@
             </span>
           </div>
           <div class="number-label">{{ totalCompanies }} 人</div>
-        </div>
+        </div> -->
       </el-col>
       <el-col :span="8">
-        <div class="dashboard-total-item">
+        <!-- <div class="dashboard-total-item">
           <img :src="totalIcon3" />
           <div class="dashboard-total-item-label">
             <span>设备总数</span>
@@ -25,7 +25,7 @@
             </span>
           </div>
           <div class="number-label">{{ identityTotal }} 台</div>
-        </div>
+        </div> -->
       </el-col>
     </el-row>
     <div class="statistic-container">
@@ -45,7 +45,11 @@ import totalIcon2 from '@/assets/images/dashboard-total-icon-2.png'
 import totalIcon3 from '@/assets/images/dashboard-total-icon-3.png'
 import { parseTime } from '@/utils/tools.js'
 
-import { getProductionPlanDetailSubDetails, getProcessDetailsByTechnicalProcessId, getSubDetailProcessEquipments } from '@/api/business/productionTask'
+import {
+  getProductionPlanDetailSubDetails,
+  getProcessDetailsByTechnicalProcessId,
+  getSubDetailProcessEquipments
+} from '@/api/business/productionTask'
 
 import { index } from '@/api/business/production'
 
@@ -127,9 +131,9 @@ let statisticDom, statistic
 
 onMounted(() => {
   currentMonth.value = parseTime(new Date(), '{y}-{m}')
-  statisticDom = document.getElementById('information-statistic')
-  statistic = echarts.init(statisticDom)
-  getCurrentMonthDayArr()
+  //statisticDom = document.getElementById('information-statistic')
+  //statistic = echarts.init(statisticDom)
+  //getCurrentMonthDayArr()
 })
 
 const getCurrentMonthDayArr = (dateStr) => {
@@ -158,28 +162,7 @@ const getCurrentMonthDayArr = (dateStr) => {
   monthTotalCompanies.value = 276
   identityTotal.value = 5133
   identityMonthTotal.value = 3015
-  /*
-  getDashboardStatistics({
-    year: currentDate.getFullYear(),
-    month: currentMonth + 1,
-    days,
-    tenantId: getTenant()
-  }).then((res) => {
-    // 到访
-    statisticOption.series[0].data = res.dailyInformationCount
-    // 申请
-    statisticOption.series[1].data = res.dailyAppointmentCount
 
-    visitorCount.value = res.visitorCount
-    visitorMonthCount.value = res.visitorMonthCount
-    informationTotal.value = res.informationTotal
-    informationMonthTotal.value = res.informationMonthTotal
-    appointmentTotal.value = res.appointmentTotal
-    appointmentMonthTotal.value = res.appointmentMonthTotal
-
-    statisticOption && statistic.setOption(statisticOption)
-  })
-  */
   statisticOption && statistic.setOption(statisticOption)
 }
 const handleChangeMonth = (val) => {
@@ -241,4 +224,4 @@ const handleChangeMonth = (val) => {
 .item-statistic-container {
   height: 560px;
 }
-</style>
+</style>

+ 2 - 2
src/views/login.vue

@@ -8,7 +8,7 @@
       <span class="title">欢迎使用德迈仕数字化平台</span>
       <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
         <el-form-item prop="username">
-          <el-input v-model="loginForm.username" type="text" size="large" auto-complete="off" placeholder="账号">
+          <el-input v-model.trim="loginForm.username" type="text" size="large" auto-complete="off" placeholder="账号">
             <template #prefix>
               <svg-icon icon-class="user" class="el-input__icon input-icon" />
             </template>
@@ -16,7 +16,7 @@
         </el-form-item>
         <el-form-item prop="password">
           <el-input
-            v-model="loginForm.password"
+            v-model.trim="loginForm.password"
             type="password"
             size="large"
             auto-complete="off"

+ 7 - 7
src/views/register.vue

@@ -3,42 +3,42 @@
     <el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form">
       <h3 class="title">国家德迈仕数字化平台</h3>
       <el-form-item prop="phonenumber">
-        <el-input v-model="registerForm.phonenumber" type="text" size="large" auto-complete="off" placeholder="手机号">
+        <el-input v-model.trim="registerForm.phonenumber" type="text" size="large" auto-complete="off" placeholder="手机号">
           <template #prefix>
             <svg-icon icon-class="phone" class="el-input__icon input-icon" />
           </template>
         </el-input>
       </el-form-item>
       <el-form-item prop="username">
-        <el-input v-model="registerForm.username" type="text" size="large" auto-complete="off" placeholder="账号">
+        <el-input v-model.trim="registerForm.username" type="text" size="large" auto-complete="off" placeholder="账号">
           <template #prefix>
             <svg-icon icon-class="user" class="el-input__icon input-icon" />
           </template>
         </el-input>
       </el-form-item>
       <el-form-item prop="password">
-        <el-input v-model="registerForm.password" type="password" size="large" auto-complete="off" placeholder="请输入密码" @keyup.enter="handleRegister">
+        <el-input v-model.trim="registerForm.password" type="password" size="large" auto-complete="off" placeholder="请输入密码" @keyup.enter="handleRegister">
           <template #prefix>
             <svg-icon icon-class="password" class="el-input__icon input-icon" />
           </template>
         </el-input>
       </el-form-item>
       <el-form-item prop="confirmPassword">
-        <el-input v-model="registerForm.confirmPassword" type="password" size="large" auto-complete="off" placeholder="请确认密码" @keyup.enter="handleRegister">
+        <el-input v-model.trim="registerForm.confirmPassword" type="password" size="large" auto-complete="off" placeholder="请确认密码" @keyup.enter="handleRegister">
           <template #prefix>
             <svg-icon icon-class="password" class="el-input__icon input-icon" />
           </template>
         </el-input>
       </el-form-item>
       <el-form-item prop="companyName">
-        <el-input v-model="registerForm.companyName" type="text" size="large" auto-complete="off" placeholder="企业名称" @keyup.enter="handleRegister">
+        <el-input v-mode.triml="registerForm.companyName" type="text" size="large" auto-complete="off" placeholder="企业名称" @keyup.enter="handleRegister">
           <template #prefix>
             <svg-icon icon-class="build" class="el-input__icon input-icon" />
           </template>
         </el-input>
       </el-form-item>
       <el-form-item prop="creditCode">
-        <el-input v-model="registerForm.creditCode" type="text" size="large" auto-complete="off" placeholder="统一社会信用编码" @keyup.enter="handleRegister">
+        <el-input v-model.trim="registerForm.creditCode" type="text" size="large" auto-complete="off" placeholder="统一社会信用编码" @keyup.enter="handleRegister">
           <template #prefix>
             <svg-icon icon-class="online" class="el-input__icon input-icon" />
           </template>
@@ -51,7 +51,7 @@
         </el-radio-group>
       </el-form-item>
       <el-form-item prop="code" v-if="captchaEnabled">
-        <el-input size="large" v-model="registerForm.code" auto-complete="off" placeholder="验证码" style="width: 63%" @keyup.enter="handleRegister">
+        <el-input size="large" v-model.trim="registerForm.code" auto-complete="off" placeholder="验证码" style="width: 63%" @keyup.enter="handleRegister">
           <template #prefix>
             <svg-icon icon-class="validCode" class="el-input__icon input-icon" />
           </template>

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

@@ -6,7 +6,7 @@
     </div>
     <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
       <el-form-item :label="dept + '名称:'" prop="deptName">
-        <el-input size="small" v-model="queryParams.deptName" :placeholder="'请输入' + dept + '名称'" clearable style="width: 200px" @keyup.enter="handleQuery" />
+        <el-input size="small" v-model.trim="queryParams.deptName" :placeholder="'请输入' + dept + '名称'" clearable style="width: 200px" @keyup.enter="handleQuery" />
       </el-form-item>
       <el-form-item>
         <el-button size="small" type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -67,7 +67,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item :label="form.type === '1' ? '企业名称' : '部门名称'" prop="deptName">
-              <el-input v-model="form.deptName" :placeholder="
+              <el-input v-model.trim="form.deptName" :placeholder="
                 form.type === '1' ? '请输入企业名称' : '请输入部门名称'
               " />
             </el-form-item>
@@ -79,17 +79,17 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="负责人" prop="leader">
-              <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" />
+              <el-input v-model.trim="form.leader" placeholder="请输入负责人" maxlength="20" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="联系电话" prop="phone">
-              <el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" />
+              <el-input v-model.trim="form.phone" placeholder="请输入联系电话" maxlength="11" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="邮箱" prop="email">
-              <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
+              <el-input v-model.trim="form.email" placeholder="请输入邮箱" maxlength="50" />
             </el-form-item>
           </el-col>
           <el-col :span="12">

+ 41 - 38
src/views/system/dict/data.vue

@@ -37,7 +37,7 @@
               <el-tag v-else :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass">{{ scope.row.dictLabel }}</el-tag>
             </template>
           </el-table-column>
-          <el-table-column label="字典键值" width="100" align="center" prop="dictValue" />
+          <el-table-column label="字典键值" width="200" align="center" prop="dictValue" />
           <el-table-column label="排序" width="50" align="center" prop="dictSort" />
           <el-table-column label="状态" width="50" align="center" prop="status">
             <template #default="scope">
@@ -52,8 +52,8 @@
           </el-table-column>
           <el-table-column label="操作" align="center" width="150">
             <template #default="scope">
-              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:dict:edit']">编辑</el-button>
-              <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:dict:remove']">删除</el-button>
+              <el-button link type="warning" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:dict:edit']">编辑</el-button>
+              <el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:dict:remove']">删除</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -63,41 +63,43 @@
 
     <!-- 添加或修改参数配置对话框 -->
     <el-dialog :title="title" v-model="open" width="500px" append-to-body draggable>
-      <el-form ref="dataRef" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="字典类型">
-          <el-input v-model="form.dictType" :disabled="true" />
-        </el-form-item>
-        <el-form-item label="数据标签" prop="dictLabel">
-          <el-input v-model="form.dictLabel" placeholder="请输入数据标签" />
-        </el-form-item>
-        <el-form-item label="数据键值" prop="dictValue">
-          <el-input v-model="form.dictValue" placeholder="请输入数据键值" />
-        </el-form-item>
-        <el-form-item label="样式属性" prop="cssClass">
-          <el-input v-model="form.cssClass" placeholder="请输入样式属性" />
-        </el-form-item>
-        <el-form-item label="显示排序" prop="dictSort">
-          <el-input-number v-model="form.dictSort" controls-position="right" :min="0" />
-        </el-form-item>
-        <el-form-item label="回显样式" prop="listClass">
-          <el-select v-model="form.listClass">
-            <el-option
-              v-for="item in listClassOptions"
-              :key="item.value"
-              :label="item.label + '(' + item.value + ')'"
-              :value="item.value"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="状态" prop="status">
-          <el-radio-group v-model="form.status">
-            <el-radio v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
-        </el-form-item>
-      </el-form>
+      <div class="form-container">
+        <el-form ref="dataRef" class="master-container" :model="form" :rules="rules" label-width="80px">
+          <el-form-item label="字典类型">
+            <el-input v-model="form.dictType" :disabled="true" />
+          </el-form-item>
+          <el-form-item label="数据标签" prop="dictLabel">
+            <el-input v-model="form.dictLabel" placeholder="请输入数据标签" />
+          </el-form-item>
+          <el-form-item label="数据键值" prop="dictValue">
+            <el-input v-model="form.dictValue" placeholder="请输入数据键值" />
+          </el-form-item>
+          <el-form-item label="样式属性" prop="cssClass">
+            <el-input v-model="form.cssClass" placeholder="请输入样式属性" />
+          </el-form-item>
+          <el-form-item label="显示排序" prop="dictSort">
+            <el-input-number v-model="form.dictSort" controls-position="right" :min="0" />
+          </el-form-item>
+          <el-form-item label="回显样式" prop="listClass">
+            <el-select v-model="form.listClass">
+              <el-option
+                v-for="item in listClassOptions"
+                :key="item.value"
+                :label="item.label + '(' + item.value + ')'"
+                :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="状态" prop="status">
+            <el-radio-group v-model="form.status">
+              <el-radio v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="备注" prop="remark">
+            <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
       <template #footer>
         <div class="dialog-footer">
           <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -235,6 +237,7 @@ function handleUpdate(row) {
   const dictCode = row.dictCode || ids.value
   getData(dictCode).then((response) => {
     form.value = response.data
+    form.value.dictSort -= 0
     open.value = true
     title.value = '修改字典数据'
   })

+ 18 - 16
src/views/system/dict/index.vue

@@ -69,22 +69,24 @@
 
     <!-- 添加或修改参数配置对话框 -->
     <el-dialog :title="title" v-model="open" width="500px" append-to-body draggable>
-      <el-form ref="dictRef" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="字典名称" prop="dictName">
-          <el-input v-model="form.dictName" placeholder="请输入字典名称" />
-        </el-form-item>
-        <el-form-item label="字典类型" prop="dictType">
-          <el-input v-model="form.dictType" placeholder="请输入字典类型" />
-        </el-form-item>
-        <el-form-item label="状态" prop="status">
-          <el-radio-group v-model="form.status">
-            <el-radio v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
-        </el-form-item>
-      </el-form>
+      <div class="form-container">
+        <el-form ref="dictRef" class="master-container" :model="form" :rules="rules" label-width="80px">
+          <el-form-item label="字典名称" prop="dictName">
+            <el-input v-model="form.dictName" placeholder="请输入字典名称" />
+          </el-form-item>
+          <el-form-item label="字典类型" prop="dictType">
+            <el-input v-model="form.dictType" placeholder="请输入字典类型" />
+          </el-form-item>
+          <el-form-item label="状态" prop="status">
+            <el-radio-group v-model="form.status">
+              <el-radio v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="备注" prop="remark">
+            <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
       <template #footer>
         <div class="dialog-footer">
           <el-button type="primary" @click="submitForm">确 定</el-button>

+ 2 - 2
src/views/system/role/selectUser.vue

@@ -3,10 +3,10 @@
   <el-dialog title="选择用户" v-model="visible" width="1200px" top="5vh" append-to-body draggable>
     <el-form :model="queryParams" ref="queryRef" :inline="true">
       <el-form-item label="用户名称" prop="userName">
-        <el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 200px" @keyup.enter="handleQuery" />
+        <el-input v-model.trim="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 200px" @keyup.enter="handleQuery" />
       </el-form-item>
       <el-form-item label="手机号码" prop="phonenumber">
-        <el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 200px" @keyup.enter="handleQuery" />
+        <el-input v-model.trim="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 200px" @keyup.enter="handleQuery" />
       </el-form-item>
       <el-form-item>
         <el-button type="info" icon="Search" @click="handleQuery">搜索</el-button>

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

@@ -30,10 +30,10 @@
       <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true">
         <el-form-item class="section-title" label="管理员列表" />
         <el-form-item label="用户名称:" prop="userName">
-          <el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 130px" @keyup.enter="handleQuery" />
+          <el-input v-model.trim="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 130px" @keyup.enter="handleQuery" />
         </el-form-item>
         <el-form-item label="手机号码:" prop="phonenumber">
-          <el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 130px" @keyup.enter="handleQuery" />
+          <el-input v-model.trim="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 130px" @keyup.enter="handleQuery" />
         </el-form-item>
         <el-form-item>
           <span>&emsp;&emsp;</span>
@@ -79,19 +79,19 @@
       <div class="form-container">
         <el-form class="master-container" :model="form" :rules="rules" ref="userRef" label-width="80px">
           <el-form-item label="用户昵称" prop="nickName">
-            <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
+            <el-input v-model.trim="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
           </el-form-item>
           <el-form-item label="手机号码" prop="phonenumber">
-            <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
+            <el-input v-model.trim="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
           </el-form-item>
           <el-form-item label="邮箱" prop="email">
-            <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
+            <el-input v-model.trim="form.email" placeholder="请输入邮箱" maxlength="50" />
           </el-form-item>
           <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
-            <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
+            <el-input v-model.trim="form.userName" placeholder="请输入用户名称" maxlength="30" />
           </el-form-item>
           <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
-            <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password />
+            <el-input v-model.trim="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password />
           </el-form-item>
           <el-form-item label="用户性别">
             <el-select v-model="form.sex" placeholder="请选择">
@@ -104,7 +104,7 @@
             </el-select>
           </el-form-item>
           <el-form-item label="备注">
-            <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
+            <el-input v-model.trim="form.remark" type="textarea" placeholder="请输入内容"></el-input>
           </el-form-item>
         </el-form>
       </div>

+ 3 - 3
src/views/system/user/profile/resetPwd.vue

@@ -1,13 +1,13 @@
 <template>
    <el-form ref="pwdRef" :model="user" :rules="rules" label-width="80px">
       <el-form-item label="旧密码" prop="oldPassword">
-         <el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password />
+         <el-input v-model.trim="user.oldPassword" placeholder="请输入旧密码" type="password" show-password />
       </el-form-item>
       <el-form-item label="新密码" prop="newPassword">
-         <el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" show-password />
+         <el-input v-model.trim="user.newPassword" placeholder="请输入新密码" type="password" show-password />
       </el-form-item>
       <el-form-item label="确认密码" prop="confirmPassword">
-         <el-input v-model="user.confirmPassword" placeholder="请确认新密码" type="password" show-password/>
+         <el-input v-model.trim="user.confirmPassword" placeholder="请确认新密码" type="password" show-password/>
       </el-form-item>
       <el-form-item>
       <el-button type="primary" @click="submit">保存</el-button>

+ 3 - 3
src/views/system/user/profile/userInfo.vue

@@ -1,13 +1,13 @@
 <template>
    <el-form ref="userRef" :model="user" :rules="rules" label-width="80px">
       <el-form-item label="用户昵称" prop="nickName">
-         <el-input v-model="user.nickName" maxlength="30" />
+         <el-input v-model.trim="user.nickName" maxlength="30" />
       </el-form-item>
       <el-form-item label="手机号码" prop="phonenumber">
-         <el-input v-model="user.phonenumber" maxlength="11" />
+         <el-input v-model.trim="user.phonenumber" maxlength="11" />
       </el-form-item>
       <el-form-item label="邮箱" prop="email">
-         <el-input v-model="user.email" maxlength="50" />
+         <el-input v-model.trim="user.email" maxlength="50" />
       </el-form-item>
       <el-form-item label="性别">
          <el-radio-group v-model="user.sex">