songxy hai 1 ano
pai
achega
63f24f2f40

+ 10 - 0
client/src/components/TreeSelectV2/index.vue

@@ -74,6 +74,7 @@ const $props = withDefaults(
 )
 const $emit = defineEmits<{
   (e: 'update:modelValue', v: any): void
+  (e: 'node-click', v: any): void
 }>()
 const visiable = ref<boolean>(false)
 const isRotate = ref<boolean>(false)
@@ -130,6 +131,7 @@ const setExpandedKeys = async () => {
 const nodeClickHandle = (data) => {
   visiable.value = false
   $emit('update:modelValue', data[$props.props['value'] ?? 'value'])
+  $emit('node-click', data)
   //@ts-ignore
   const item = treeRef.value?.getNode($props.modelValue)
   if (item && $props.labelAll) {
@@ -206,5 +208,13 @@ const initLabelNameAll = (item): string[] => {
   // :deep(.el-input__wrapper) {
   //   padding: 0px;
   // }
+  :deep(.el-input.is-disabled .el-input__wrapper) {
+    background: none !important;
+    box-shadow: none !important;
+  }
+  :deep(.el-input.is-disabled .el-input__inner) {
+    color: #333 !important;
+    -webkit-text-fill-color: #333 !important;
+  }
 }
 </style>

+ 19 - 3
client/src/views/OaSystem/projectCenter/projectDetail/components/xmxx/index.vue

@@ -144,9 +144,13 @@
                 </td>
                 <td class="th">归属公司:</td>
                 <td>
-                  <el-input
-                    class="form-item-disable-style"
-                    v-model="projectDetail['belongCompanyname']"
+                  <TreeSelectV2
+                    :data="assigneeTree"
+                    :props="{ label: 'name', value: 'id' }"
+                    v-model="projectDetail['belongCompanyid']"
+                    :filter-method="filterNodeMethod"
+                    style="width: 100%"
+                    @node-click="belongCompanyClickHandle"
                     :disabled="!editor"
                   />
                 </td>
@@ -248,8 +252,11 @@ import ProjectTypeTree from '@/views/OaSystem/components/ProjectTypeTree/index.v
 import AddSubProject from '@/views/OaSystem/projectCenter/projectDetail/components/xmxx/AddSubProject.vue'
 import { useMutation, useQuery } from '@tanstack/vue-query'
 import { getProjectWithChildrenById, saveProject } from '@/service/project'
+import { queryCompanyTree } from '@/service/contract'
 import ProjectMember from '@/views/OaSystem/projectCenter/projectDetail/components/xmxx/ProjectMember.vue'
 import ProjectMileStone from '@/views/OaSystem/projectCenter/projectDetail/components/xmxx/ProjectMileStone.vue'
+import TreeSelectV2 from '@/components/TreeSelectV2/index.vue'
+import { filterNodeMethod } from '@/utils/tree'
 
 defineOptions({ name: 'XmxxComp' })
 const projectPermis = useProjectPermis()
@@ -279,6 +286,12 @@ const childProjectNo = ref<string>('')
 const subProjectShow = ref<boolean>(false)
 const projectDetail = ref<any>(null)
 
+/***
+ * 查询归属公司数据
+ * **/
+const { data: assigneeTree } = useQuery(['assigneeTree'], async () => await queryCompanyTree(), {
+  staleTime: Infinity
+})
 /***
  * 查询项目详情
  * **/
@@ -376,6 +389,9 @@ const xsryNodeClickHandler = (item: any) => {
 const xmjlNodeClickHandler = (data: any) => {
   projectDetail.value.xmjl = data.label
 }
+const belongCompanyClickHandle = (data) => {
+  projectDetail.value.belongCompanyname = data.name
+}
 defineExpose({
   saveProjectHandle,
   handleAddSubProject