|
@@ -1,5 +1,5 @@
|
|
<template>
|
|
<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-tabs tab-position="left" class="hc-user-data-dialog h-full w-full">
|
|
<el-tab-pane label="基础信息">
|
|
<el-tab-pane label="基础信息">
|
|
<el-form ref="formRef1" :model="formModel" :rules="formRules1" label-position="top" label-width="auto">
|
|
<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-form-item label="所属部门:" prop="deptId">
|
|
<el-tree-select
|
|
<el-tree-select
|
|
v-model="formModel.deptId" placeholder="选择所属部门" :data="deptTreeData" :props="deptTreeProps"
|
|
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-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -92,17 +92,17 @@
|
|
<div class="relative overflow-hidden">
|
|
<div class="relative overflow-hidden">
|
|
<el-row :gutter="14">
|
|
<el-row :gutter="14">
|
|
<el-col :span="7">
|
|
<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-option v-for="(item) in projectList" :key="item.id" :label="item.projectName" :value="item.id" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="7">
|
|
<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-option v-for="(item) in contractList" :key="item.id" :label="item.contractName" :value="item.id" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="6">
|
|
<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-option v-for="(item) in roleList" :key="item.roleId" :label="item.roleName" :value="item.roleId" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -147,7 +147,7 @@
|
|
<script setup>
|
|
<script setup>
|
|
import { ref, watch } from 'vue'
|
|
import { ref, watch } from 'vue'
|
|
import { getDictionaryData } from '~uti/tools'
|
|
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 tenantApi from '~api/system/tenant'
|
|
import projectApi from '~api/project/project'
|
|
import projectApi from '~api/project/project'
|
|
import contractApi from '~api/project/contract'
|
|
import contractApi from '~api/project/contract'
|
|
@@ -192,10 +192,7 @@ const getDataApi = () => {
|
|
getProjectDataList()
|
|
getProjectDataList()
|
|
getRoleDataList()
|
|
getRoleDataList()
|
|
if (isNullES(id)) return
|
|
if (isNullES(id)) return
|
|
- formModel.value = {
|
|
|
|
- ...info,
|
|
|
|
- password: null,
|
|
|
|
- }
|
|
|
|
|
|
+ formModel.value = { ...info, password: null }
|
|
//分割为数组
|
|
//分割为数组
|
|
formUserType.value = isNullES(userType) ? [] : userType.split(',').map((item) => {
|
|
formUserType.value = isNullES(userType) ? [] : userType.split(',').map((item) => {
|
|
return parseInt(item, 10) // 使用基数10进行解析,保证正确性
|
|
return parseInt(item, 10) // 使用基数10进行解析,保证正确性
|
|
@@ -257,6 +254,12 @@ const getDeptTreeData = async () => {
|
|
deptTreeData.value = getArrValue(data)
|
|
deptTreeData.value = getArrValue(data)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//所属部门
|
|
|
|
+const deptTreeClick = ({ id, title }) => {
|
|
|
|
+ formModel.value.deptId = id
|
|
|
|
+ formModel.value.deptName = title
|
|
|
|
+}
|
|
|
|
+
|
|
//获取当前配置好的参建项目
|
|
//获取当前配置好的参建项目
|
|
const userProjectContract = ref([])
|
|
const userProjectContract = ref([])
|
|
const getProjectContractList = async () => {
|
|
const getProjectContractList = async () => {
|
|
@@ -327,7 +330,8 @@ const relatedProjectForm = ref({ projectId: '', contractId: '', roleId: '' })
|
|
|
|
|
|
//项目选择
|
|
//项目选择
|
|
const projectChange = () => {
|
|
const projectChange = () => {
|
|
- const { projectId } = relatedProjectForm.value
|
|
|
|
|
|
+ contractList.value = []
|
|
|
|
+ relatedProjectForm.value.contractId = null
|
|
getContractDataList()
|
|
getContractDataList()
|
|
}
|
|
}
|
|
|
|
|
|
@@ -337,34 +341,24 @@ const projectClear = () => {
|
|
contractList.value = []
|
|
contractList.value = []
|
|
}
|
|
}
|
|
|
|
|
|
-//合同段选择
|
|
|
|
-const contractChange = () => {
|
|
|
|
- const { contractId } = relatedProjectForm.value
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-//角色选择
|
|
|
|
-const roleChange = () => {
|
|
|
|
- const { roleId } = relatedProjectForm.value
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
//添加项目合同段
|
|
//添加项目合同段
|
|
-const addRelatedProject = () => {
|
|
|
|
|
|
+const addRelatedProject = async () => {
|
|
const form = relatedProjectForm.value
|
|
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: '请选择所属部门' },
|
|
deptId: { required: true, trigger: 'blur', message: '请选择所属部门' },
|
|
status: { 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>
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
<style lang="scss">
|
|
@@ -475,4 +503,8 @@ const formRules2 = {
|
|
.user-project-contract .el-select-dropdown__item {
|
|
.user-project-contract .el-select-dropdown__item {
|
|
padding: 0 20px;
|
|
padding: 0 20px;
|
|
}
|
|
}
|
|
|
|
+.el-dialog.hc-new-dialog.hc-user-data-dialog-box {
|
|
|
|
+ height: 500px;
|
|
|
|
+ max-height: 500px;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|