|
@@ -122,7 +122,7 @@
|
|
|
<el-option v-for="(items, indexs) in item.dataInfo" :key="indexs" :label="items.contractName" :value="items.id">
|
|
|
<div class="hc-flex" @click.stop="userContractClick(items, index)">
|
|
|
<div class="name flex-1 text-truncate">{{ items.contractName }}</div>
|
|
|
- <div class="del ml-10px text-red" @click.stop="delContractClick(items, index)">删除</div>
|
|
|
+ <div v-if="rowInfo.id" class="del ml-10px text-red" @click.stop="delContractClick(items)">删除</div>
|
|
|
</div>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
@@ -131,7 +131,7 @@
|
|
|
<el-input v-model="item.userRoleName" disabled />
|
|
|
</el-col>
|
|
|
<el-col :span="4">
|
|
|
- <el-button type="danger" @click="delRelatedProject(item)">确定删除</el-button>
|
|
|
+ <el-button type="danger" @click="delRelatedProject(item, index)">确定删除</el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</div>
|
|
@@ -147,7 +147,7 @@
|
|
|
<script setup>
|
|
|
import { ref, watch } from 'vue'
|
|
|
import { getDictionaryData } from '~uti/tools'
|
|
|
-import { formValidate, getArrValue, getObjValue, isNullES, isPhone } from 'js-fast-way'
|
|
|
+import { arrKeyValue, deepClone, 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'
|
|
@@ -191,7 +191,11 @@ const getDataApi = () => {
|
|
|
getUserTypeData()
|
|
|
getProjectDataList()
|
|
|
getRoleDataList()
|
|
|
- if (isNullES(id)) return
|
|
|
+ if (isNullES(id)) {
|
|
|
+ relatedProjectForm.value = [{ projectId: '', contractId: '', roleId: '', dataInfo: [] }]
|
|
|
+ formUserType.value = []
|
|
|
+ return
|
|
|
+ }
|
|
|
formModel.value = { ...info, password: null }
|
|
|
//分割为数组
|
|
|
formUserType.value = isNullES(userType) ? [] : userType.split(',').map((item) => {
|
|
@@ -288,18 +292,25 @@ const userContractClick = ({ id, roleType, roleName }, index) => {
|
|
|
|
|
|
//已配置的合同段删除
|
|
|
const delContractClick = async ({ id }) => {
|
|
|
- const { isRes } = await mainApi.removeUsersByIds(id)
|
|
|
- if (!isRes) return
|
|
|
- window.$message.success('删除成功')
|
|
|
- await getProjectContractList()
|
|
|
+ const { isRes } = await mainApi.removeUsersByIds(id)
|
|
|
+ if (!isRes) return
|
|
|
+ window.$message.success('删除成功')
|
|
|
+ await getProjectContractList()
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
//删除参建项目
|
|
|
-const delRelatedProject = async ({ userContractId }) => {
|
|
|
- const { isRes } = await mainApi.removeUserProjectInfoAndRoleById(userContractId)
|
|
|
+const delRelatedProject = async ({ userContractId }, index) => {
|
|
|
+ if (isNullES(rowInfo.value.id)) {
|
|
|
+ userProjectContract.value.splice(index, 1)
|
|
|
+ } else {
|
|
|
+ const { isRes } = await mainApi.removeUserProjectInfoAndRoleById(userContractId)
|
|
|
if (!isRes) return
|
|
|
window.$message.success('删除成功')
|
|
|
await getProjectContractList()
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
//职能描述相关数据
|
|
@@ -326,7 +337,7 @@ const getRoleDataList = async () => {
|
|
|
}
|
|
|
|
|
|
//职能描述,添加表单
|
|
|
-const relatedProjectForm = ref({ projectId: '', contractId: '', roleId: '' })
|
|
|
+const relatedProjectForm = ref({ projectId: '', contractId: '', roleId: '', dataInfo: [] })
|
|
|
|
|
|
//项目选择
|
|
|
const projectChange = () => {
|
|
@@ -343,7 +354,9 @@ const projectClear = () => {
|
|
|
|
|
|
//添加项目合同段
|
|
|
const addRelatedProject = async () => {
|
|
|
- const form = relatedProjectForm.value
|
|
|
+ let form = deepClone (relatedProjectForm.value)
|
|
|
+
|
|
|
+ form.dataInfo = []
|
|
|
if (isNullES(form.projectId)) {
|
|
|
window.$message.warning('请先选择项目')
|
|
|
} else if (isNullES(form.contractId)) {
|
|
@@ -351,13 +364,33 @@ const addRelatedProject = async () => {
|
|
|
} else if (isNullES(form.roleId)) {
|
|
|
window.$message.warning('请先选择角色类型')
|
|
|
} else {
|
|
|
- const { id } = formModel.value
|
|
|
+if (isNullES(rowInfo.value.id)) {
|
|
|
+
|
|
|
+
|
|
|
+ form.projectName = arrKeyValue(projectList.value, 'id', 'projectName', form.projectId)
|
|
|
+ form.userRoleName = arrKeyValue(roleList.value, 'roleId', 'roleName', form.roleId)
|
|
|
+ form.contractName = arrKeyValue(contractList.value, 'id', 'contractName', form.contractId)
|
|
|
+ form.userContractId = form.contractId
|
|
|
+ form.dataInfo.push({
|
|
|
+ contractName:form.contractName,
|
|
|
+ roleId:form.roleId,
|
|
|
+ roleName:form.userRoleName,
|
|
|
+ roleType:form.roleType,
|
|
|
+ id:form.userContractId,
|
|
|
+ contractId:form.contractId,
|
|
|
+ projectId:form.projectId,
|
|
|
+ })
|
|
|
+ userProjectContract.value.push(form)
|
|
|
+} else {
|
|
|
+ const { id } = formModel.value
|
|
|
form.userId = id
|
|
|
const { isRes } = await mainApi.saveUserInfoByProjectTow([form])
|
|
|
if (!isRes) return
|
|
|
window.$message.success('添加成功')
|
|
|
- relatedProjectForm.value = {}
|
|
|
+ relatedProjectForm.value = { projectId: '', contractId: '', roleId: '', dataInfo: [] }
|
|
|
getProjectContractList().then()
|
|
|
+}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -454,6 +487,18 @@ const dialogSubmit = async () => {
|
|
|
}
|
|
|
submitLoading.value = true
|
|
|
const form = formModel.value
|
|
|
+ const list = userProjectContract.value[0]?.dataInfo || []
|
|
|
+ let arr = []
|
|
|
+ list.forEach(item=>{
|
|
|
+ arr.push({
|
|
|
+ projectId: item.projectId,
|
|
|
+ contractId: item.id,
|
|
|
+ roleId: item.roleId,
|
|
|
+ })
|
|
|
+ })
|
|
|
+ form.projectAndUserList = arr
|
|
|
+ // form.projectAndUserList = []
|
|
|
+
|
|
|
let res = {}
|
|
|
if (isNullES(form.id)) {
|
|
|
res = await mainApi.add(form)
|