zhangcl 5 hónapja
szülő
commit
4cd73d9b45

+ 17 - 17
src/api/pms/materialgroup/index.ts

@@ -10,31 +10,31 @@ export interface MaterialGroupVO {
 }
 
 // 查询物料组(精简)列表
-export const getSimpleDeptList = async (): Promise<MaterialGroupVO[]> => {
-  return await request.get({ url: '/system/dept/simple-list' })
+export const getSimpleMaterialGroupList = async (): Promise<MaterialGroupVO[]> => {
+  return await request.get({ url: '/rq/iot-material-group/simple-list' })
 }
 
-// 查询部门列表
-export const getDeptPage = async (params: PageParam) => {
-  return await request.get({ url: '/system/dept/list', params })
+// 查询物料组列表
+export const getMaterialGroupPage = async (params: PageParam) => {
+  return await request.get({ url: '/rq/iot-material-group/list', params })
 }
 
-// 查询部门详情
-export const getDept = async (id: number) => {
-  return await request.get({ url: '/system/dept/get?id=' + id })
+// 查询物料组详情
+export const getMaterialGroup = async (id: number) => {
+  return await request.get({ url: '/rq/iot-material-group/get?id=' + id })
 }
 
-// 新增部门
-export const createDept = async (data: MaterialGroupVO) => {
-  return await request.post({ url: '/system/dept/create', data: data })
+// 新增物料组
+export const createMaterialGroup = async (data: MaterialGroupVO) => {
+  return await request.post({ url: '/rq/iot-material-group/create', data: data })
 }
 
-// 修改部门
-export const updateDept = async (params: MaterialGroupVO) => {
-  return await request.put({ url: '/system/dept/update', data: params })
+// 修改物料组
+export const updateMaterialGroup = async (params: MaterialGroupVO) => {
+  return await request.put({ url: '/rq/iot-material-group/update', data: params })
 }
 
-// 删除部门
-export const deleteDept = async (id: number) => {
-  return await request.delete({ url: '/system/dept/delete?id=' + id })
+// 删除物料组
+export const deleteMaterialGroup = async (id: number) => {
+  return await request.delete({ url: '/rq/iot-material-group/delete?id=' + id })
 }

+ 22 - 52
src/views/pms/materialgroup/MaterialGroupForm.vue

@@ -5,41 +5,25 @@
       v-loading="formLoading"
       :model="formData"
       :rules="formRules"
-      label-width="80px"
+      label-width="100px"
     >
-      <el-form-item label="上级部门" prop="parentId">
+      <el-form-item label="上级物料组" prop="parentId">
         <el-tree-select
           v-model="formData.parentId"
-          :data="deptTree"
+          :data="materialGroupTree"
           :props="defaultProps"
           check-strictly
           default-expand-all
-          placeholder="请选择上级部门"
-          value-key="deptId"
+          placeholder="请选择上级物料组"
+          value-key="id"
         />
       </el-form-item>
-      <el-form-item label="部门名称" prop="name">
-        <el-input v-model="formData.name" placeholder="请输入部门名称" />
+      <el-form-item label="物料组名称" prop="name">
+        <el-input v-model="formData.name" placeholder="请输入物料组名称" />
       </el-form-item>
       <el-form-item label="显示排序" prop="sort">
         <el-input-number v-model="formData.sort" :min="0" controls-position="right" />
       </el-form-item>
-      <el-form-item label="负责人" prop="leaderUserId">
-        <el-select v-model="formData.leaderUserId" clearable placeholder="请输入负责人">
-          <el-option
-            v-for="item in userList"
-            :key="item.id"
-            :label="item.nickname"
-            :value="item.id"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="联系电话" prop="phone">
-        <el-input v-model="formData.phone" maxlength="11" placeholder="请输入联系电话" />
-      </el-form-item>
-      <el-form-item label="邮箱" prop="email">
-        <el-input v-model="formData.email" maxlength="50" placeholder="请输入邮箱" />
-      </el-form-item>
       <el-form-item label="状态" prop="status">
         <el-select v-model="formData.status" clearable placeholder="请选择状态">
           <el-option
@@ -60,12 +44,11 @@
 <script lang="ts" setup>
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { defaultProps, handleTree } from '@/utils/tree'
-import * as DeptApi from '@/api/system/dept'
-import * as UserApi from '@/api/system/user'
+import * as MaterialGroupApi from '@/api/pms/materialgroup'
 import { CommonStatusEnum } from '@/utils/constants'
 import { FormRules } from 'element-plus'
 
-defineOptions({ name: 'SystemDeptForm' })
+defineOptions({ name: 'MaterialGroupForm' })
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
@@ -80,24 +63,16 @@ const formData = ref({
   parentId: undefined,
   name: undefined,
   sort: undefined,
-  leaderUserId: undefined,
-  phone: undefined,
-  email: undefined,
   status: CommonStatusEnum.ENABLE
 })
 const formRules = reactive<FormRules>({
-  parentId: [{ required: true, message: '上级部门不能为空', trigger: 'blur' }],
-  name: [{ required: true, message: '部门名称不能为空', trigger: 'blur' }],
+  parentId: [{ required: true, message: '上级物料组不能为空', trigger: 'blur' }],
+  name: [{ required: true, message: '物料组名称不能为空', trigger: 'blur' }],
   sort: [{ required: true, message: '显示排序不能为空', trigger: 'blur' }],
-  email: [{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }],
-  phone: [
-    { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '请输入正确的手机号码', trigger: 'blur' }
-  ],
   status: [{ required: true, message: '状态不能为空', trigger: 'blur' }]
 })
 const formRef = ref() // 表单 Ref
-const deptTree = ref() // 树形结构
-const userList = ref<UserApi.UserVO[]>([]) // 用户列表
+const materialGroupTree = ref() // 树形结构
 
 /** 打开弹窗 */
 const open = async (type: string, id?: number) => {
@@ -109,13 +84,11 @@ const open = async (type: string, id?: number) => {
   if (id) {
     formLoading.value = true
     try {
-      formData.value = await DeptApi.getDept(id)
+      formData.value = await MaterialGroupApi.getMaterialGroup(id)
     } finally {
       formLoading.value = false
     }
   }
-  // 获得用户列表
-  userList.value = await UserApi.getSimpleUserList()
   // 获得部门树
   await getTree()
 }
@@ -131,12 +104,12 @@ const submitForm = async () => {
   // 提交请求
   formLoading.value = true
   try {
-    const data = formData.value as unknown as DeptApi.DeptVO
+    const data = formData.value as unknown as MaterialGroupApi.MaterialGroupVO
     if (formType.value === 'create') {
-      await DeptApi.createDept(data)
+      await MaterialGroupApi.createMaterialGroup(data)
       message.success(t('common.createSuccess'))
     } else {
-      await DeptApi.updateDept(data)
+      await MaterialGroupApi.updateMaterialGroup(data)
       message.success(t('common.updateSuccess'))
     }
     dialogVisible.value = false
@@ -155,20 +128,17 @@ const resetForm = () => {
     parentId: undefined,
     name: undefined,
     sort: undefined,
-    leaderUserId: undefined,
-    phone: undefined,
-    email: undefined,
     status: CommonStatusEnum.ENABLE
   }
   formRef.value?.resetFields()
 }
 
-/** 获得部门树 */
+/** 获得物料组树 */
 const getTree = async () => {
-  deptTree.value = []
-  const data = await DeptApi.getSimpleDeptList()
-  let dept: Tree = { id: 0, name: '顶级部门', children: [] }
-  dept.children = handleTree(data)
-  deptTree.value.push(dept)
+  materialGroupTree.value = []
+  const data = await MaterialGroupApi.getSimpleMaterialGroupList()
+  let materialGroup: Tree = { id: 0, name: '顶级物料组', children: [] }
+  materialGroup.children = handleTree(data)
+  materialGroupTree.value.push(materialGroup)
 }
 </script>

+ 13 - 22
src/views/pms/materialgroup/index.vue

@@ -6,7 +6,7 @@
       :model="queryParams"
       ref="queryFormRef"
       :inline="true"
-      label-width="68px"
+      label-width="90px"
     >
       <el-form-item label="物料组名称" prop="name">
         <el-input
@@ -17,10 +17,10 @@
           class="!w-240px"
         />
       </el-form-item>
-      <el-form-item label="部门状态" prop="status">
+      <el-form-item label="物料组状态" prop="status">
         <el-select
           v-model="queryParams.status"
-          placeholder="请选择部门状态"
+          placeholder="请选择物料组状态"
           clearable
           class="!w-240px"
         >
@@ -39,7 +39,7 @@
           type="primary"
           plain
           @click="openForm('create')"
-          v-hasPermi="['system:dept:create']"
+          v-hasPermi="['rq:iot-material-group:create']"
         >
           <Icon icon="ep:plus" class="mr-5px" /> 新增
         </el-button>
@@ -59,12 +59,7 @@
       :default-expand-all="isExpandAll"
       v-if="refreshTable"
     >
-      <el-table-column prop="name" label="部门名称" />
-      <el-table-column prop="leader" label="负责人">
-        <template #default="scope">
-          {{ userList.find((user) => user.id === scope.row.leaderUserId)?.nickname }}
-        </template>
-      </el-table-column>
+      <el-table-column prop="name" label="物料组名称" />
       <el-table-column prop="sort" label="排序" />
       <el-table-column prop="status" label="状态">
         <template #default="scope">
@@ -84,7 +79,7 @@
             link
             type="primary"
             @click="openForm('update', scope.row.id)"
-            v-hasPermi="['system:dept:update']"
+            v-hasPermi="['rq:iot-material-group:update']"
           >
             修改
           </el-button>
@@ -92,7 +87,7 @@
             link
             type="danger"
             @click="handleDelete(scope.row.id)"
-            v-hasPermi="['system:dept:delete']"
+            v-hasPermi="['rq:iot-material-group:delete']"
           >
             删除
           </el-button>
@@ -102,17 +97,16 @@
   </ContentWrap>
 
   <!-- 表单弹窗:添加/修改 -->
-  <DeptForm ref="formRef" @success="getList" />
+  <MaterialGroupForm ref="formRef" @success="getList" />
 </template>
 <script lang="ts" setup>
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
 import { handleTree } from '@/utils/tree'
-import * as DeptApi from '@/api/system/dept'
-import DeptForm from './MaterialGroupForm.vue'
-import * as UserApi from '@/api/system/user'
+import * as MaterialGroupApi from '@/api/pms/materialgroup'
+import MaterialGroupForm from './MaterialGroupForm.vue'
 
-defineOptions({ name: 'SystemDept' })
+defineOptions({ name: 'MaterialGroup' })
 
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
@@ -128,13 +122,12 @@ const queryParams = reactive({
 const queryFormRef = ref() // 搜索的表单
 const isExpandAll = ref(true) // 是否展开,默认全部展开
 const refreshTable = ref(true) // 重新渲染表格状态
-const userList = ref<UserApi.UserVO[]>([]) // 用户列表
 
 /** 查询物料组列表 */
 const getList = async () => {
   loading.value = true
   try {
-    const data = await DeptApi.getDeptPage(queryParams)
+    const data = await MaterialGroupApi.getMaterialGroupPage(queryParams)
     list.value = handleTree(data)
   } finally {
     loading.value = false
@@ -174,7 +167,7 @@ const handleDelete = async (id: number) => {
     // 删除的二次确认
     await message.delConfirm()
     // 发起删除
-    await DeptApi.deleteDept(id)
+    await MaterialGroupApi.deleteMaterialGroup(id)
     message.success(t('common.delSuccess'))
     // 刷新列表
     await getList()
@@ -184,7 +177,5 @@ const handleDelete = async (id: number) => {
 /** 初始化 **/
 onMounted(async () => {
   await getList()
-  // 获取用户列表
-  userList.value = await UserApi.getSimpleUserList()
 })
 </script>