Browse Source

修改文件

ZaiZai 9 months ago
parent
commit
f4909511d2
1 changed files with 69 additions and 37 deletions
  1. 69 37
      src/views/system/modules/user/data.vue

+ 69 - 37
src/views/system/modules/user/data.vue

@@ -1,5 +1,5 @@
 <template>
-    <hc-dialog v-model="isShow" widths="800px" :padding="false" :title="`${isNullES(rowInfo.id) ? '新增' : '编辑'}用户信息`" is-table is-footer-center @close="dialogClose">
+    <hc-dialog v-model="isShow" ui="hc-user-data-dialog-box" widths="800px" :padding="false" :title="`${isNullES(rowInfo.id) ? '新增' : '编辑'}用户信息`" is-footer-center @close="dialogClose">
         <el-tabs tab-position="left" class="hc-user-data-dialog h-full w-full">
             <el-tab-pane label="基础信息">
                 <el-form ref="formRef1" :model="formModel" :rules="formRules1" label-position="top" label-width="auto">
@@ -58,7 +58,7 @@
                             <el-form-item label="所属部门:" prop="deptId">
                                 <el-tree-select
                                     v-model="formModel.deptId" placeholder="选择所属部门" :data="deptTreeData" :props="deptTreeProps"
-                                    clearable filterable check-strictly block :render-after-expand="false"
+                                    clearable filterable check-strictly block :render-after-expand="false" @node-click="deptTreeClick"
                                 />
                             </el-form-item>
                         </el-col>
@@ -92,17 +92,17 @@
                 <div class="relative overflow-hidden">
                     <el-row :gutter="14">
                         <el-col :span="7">
-                            <el-select v-model="relatedProjectForm.projectId" filterable clearable block @change="projectChange" @clear="projectClear">
+                            <el-select v-model="relatedProjectForm.projectId" filterable clearable block placeholder="项目" @change="projectChange" @clear="projectClear">
                                 <el-option v-for="(item) in projectList" :key="item.id" :label="item.projectName" :value="item.id" />
                             </el-select>
                         </el-col>
                         <el-col :span="7">
-                            <el-select v-model="relatedProjectForm.contractId" filterable clearable block @change="contractChange">
+                            <el-select v-model="relatedProjectForm.contractId" filterable clearable block placeholder="合同段">
                                 <el-option v-for="(item) in contractList" :key="item.id" :label="item.contractName" :value="item.id" />
                             </el-select>
                         </el-col>
                         <el-col :span="6">
-                            <el-select v-model="relatedProjectForm.roleId" filterable clearable block @change="roleChange">
+                            <el-select v-model="relatedProjectForm.roleId" filterable clearable block placeholder="角色类型">
                                 <el-option v-for="(item) in roleList" :key="item.roleId" :label="item.roleName" :value="item.roleId" />
                             </el-select>
                         </el-col>
@@ -147,7 +147,7 @@
 <script setup>
 import { ref, watch } from 'vue'
 import { getDictionaryData } from '~uti/tools'
-import { getArrValue, getObjValue, isNullES, isPhone } from 'js-fast-way'
+import { formValidate, getArrValue, getObjValue, isNullES, isPhone } from 'js-fast-way'
 import tenantApi from '~api/system/tenant'
 import projectApi from '~api/project/project'
 import contractApi from '~api/project/contract'
@@ -192,10 +192,7 @@ const getDataApi = () => {
     getProjectDataList()
     getRoleDataList()
     if (isNullES(id)) return
-    formModel.value = {
-        ...info,
-        password: null,
-    }
+    formModel.value = { ...info, password: null }
     //分割为数组
     formUserType.value = isNullES(userType) ? [] : userType.split(',').map((item) => {
         return parseInt(item, 10) // 使用基数10进行解析,保证正确性
@@ -257,6 +254,12 @@ const getDeptTreeData = async () => {
     deptTreeData.value = getArrValue(data)
 }
 
+//所属部门
+const deptTreeClick = ({ id, title }) => {
+    formModel.value.deptId = id
+    formModel.value.deptName = title
+}
+
 //获取当前配置好的参建项目
 const userProjectContract = ref([])
 const getProjectContractList = async () => {
@@ -327,7 +330,8 @@ const relatedProjectForm = ref({ projectId: '', contractId: '', roleId: '' })
 
 //项目选择
 const projectChange = () => {
-    const { projectId } = relatedProjectForm.value
+    contractList.value = []
+    relatedProjectForm.value.contractId = null
     getContractDataList()
 }
 
@@ -337,34 +341,24 @@ const projectClear = () => {
     contractList.value = []
 }
 
-//合同段选择
-const contractChange = () => {
-    const { contractId } = relatedProjectForm.value
-}
-
-//角色选择
-const roleChange = () => {
-    const { roleId } = relatedProjectForm.value
-}
-
 //添加项目合同段
-const addRelatedProject = () => {
+const addRelatedProject = async () => {
     const form = relatedProjectForm.value
-    console.log(form)
-}
-
-//提交表单
-const submitLoading = ref(false)
-const dialogSubmit = async () => {
-    dialogClose()
-    emit('finish')
-}
-
-//关闭弹窗
-const dialogClose = () => {
-    isShow.value = false
-    submitLoading.value = false
-    emit('close')
+    if (isNullES(form.projectId)) {
+        window.$message.warning('请先选择项目')
+    } else if (isNullES(form.contractId)) {
+        window.$message.warning('请先选择合同段')
+    } else if (isNullES(form.roleId)) {
+        window.$message.warning('请先选择角色类型')
+    } else {
+        const { id } = formModel.value
+        form.userId = id
+        const { isRes } = await mainApi.saveUserInfoByProjectTow([form])
+        if (!isRes) return
+        window.$message.success('添加成功')
+        relatedProjectForm.value = {}
+        getProjectContractList().then()
+    }
 }
 
 //表单
@@ -448,6 +442,40 @@ const formRules2 = {
     deptId: { required: true, trigger: 'blur', message: '请选择所属部门' },
     status: { required: true, trigger: 'blur', message: '请选择是否允许登录' },
 }
+
+//提交表单
+const submitLoading = ref(false)
+const dialogSubmit = async () => {
+    const formRes1 = await formValidate(formRef1.value)
+    const formRes2 = await formValidate(formRef2.value)
+    if (!formRes1 || !formRes2) {
+        window.$message.warning('请先完善表单')
+        return false
+    }
+    submitLoading.value = true
+    const form = formModel.value
+    let res = {}
+    if (isNullES(form)) {
+        res = await mainApi.add(form)
+    } else {
+        res = await mainApi.up(form)
+    }
+    const { isRes } = res
+    submitLoading.value = false
+    if (!isRes) return
+    window.$message.success('操作成功')
+    dialogClose()
+    emit('finish')
+}
+
+//关闭弹窗
+const dialogClose = () => {
+    isShow.value = false
+    formModel.value = {}
+    userProjectContract.value = []
+    submitLoading.value = false
+    emit('close')
+}
 </script>
 
 <style lang="scss">
@@ -475,4 +503,8 @@ const formRules2 = {
 .user-project-contract .el-select-dropdown__item {
     padding: 0 20px;
 }
+.el-dialog.hc-new-dialog.hc-user-data-dialog-box {
+    height: 500px;
+    max-height: 500px;
+}
 </style>