Sfoglia il codice sorgente

项目跟踪功能完善

songxy 10 mesi fa
parent
commit
7b421b7c4f

+ 9 - 1
client/src/views/OaSystem/components/DistrictTree/index.vue

@@ -9,6 +9,7 @@
       :disabled="disabled"
       :label-all="true"
       :placeholder="placeholder"
+      @node-click="nodeClickHandler"
     >
       <template #default="{ node }">
         <span class="prefix"> </span>
@@ -45,12 +46,19 @@ const props = defineProps({
     default: '请选择'
   }
 })
-const emit = defineEmits<{ (e: 'update:modelValue', v: any): void }>()
+const emit = defineEmits<{
+  (e: 'update:modelValue', v: any): void
+  (e: 'nodeClick', v: any): void
+}>()
 const xzqdm = computed({
   get: () => Number(props.modelValue),
   set: (val) => emit('update:modelValue', val)
 })
 const { data: areaTree } = useQuery([getAreaTree.name], getAreaTree)
+
+const nodeClickHandler = (node) => {
+  emit('nodeClick', node)
+}
 </script>
 
 <style lang="scss" scoped>

+ 1 - 1
client/src/views/OaSystem/projectCenter/projectTrack/common.ts

@@ -1,7 +1,7 @@
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 
 const { wsCache } = useCache()
-const user = wsCache.get(CACHE_KEY.USER)
+export const user = wsCache.get(CACHE_KEY.USER)
 interface IPageParam {
   pageNo?: number
   pageSize?: number

+ 16 - 12
client/src/views/OaSystem/projectCenter/projectTrack/index.vue

@@ -81,7 +81,11 @@
 
           <el-table-column label="操作" width="80" fixed="right">
             <template #default="scope">
-              <div class="operateBtn" @click="addOrEditHandle(scope.row)">
+              <div
+                class="operateBtn"
+                @click="addOrEditHandle(scope.row)"
+                v-if="scope.row.gzryId === user.user.id"
+              >
                 <span>编辑</span>
               </div>
             </template>
@@ -114,7 +118,12 @@
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="跟踪人员" prop="region">
-              <UserOrgTree v-model="formData.gzryId" :all="true" placeholder="请选择跟踪人员" />
+              <UserOrgTree
+                v-model="formData.gzryId"
+                :all="true"
+                placeholder="请选择跟踪人员"
+                @node-click="(item) => treeNodeClick(item, 'gzry')"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -191,7 +200,7 @@
 </template>
 <script setup lang="ts">
 import { DICT_TYPE, getDictLabel } from '@/utils/dict'
-import { IFormType, useMixins, infoList } from './common'
+import { IFormType, useMixins, infoList, user } from './common'
 import request from '@/config/axios'
 import { getAssetURL } from '@/utils/auth'
 import UserOrgTree from '@/views/OaSystem/components/UserOrgTree/index.vue'
@@ -226,16 +235,13 @@ const addOrEditHandle = (row?: IFormType) => {
   } else {
     dialogTitle.value = '项目跟踪编辑'
     queryProjectTrackByDetail(row['id']).then((result) => {
-      console.log('result--------------------')
-      console.log(result)
       initFormData(result as any)
     })
   }
 }
 const treeNodeClick = (item, type: string) => {
-  console.log(item)
   if (!item) return
-  formData.value[type] = item['label']
+  formData.value[type] = item['label'] || item['name']
 }
 const saveProjectTracking = async (): Promise<void> => {
   const urlApi = `/projectTracking/save`
@@ -243,7 +249,7 @@ const saveProjectTracking = async (): Promise<void> => {
     ...formData.value
   }
   const result = await request.post({ url: urlApi, data: sendData }, '/business')
-  if (!result) {
+  if (result) {
     searchHandle()
     dialogVisible.value = false
   }
@@ -282,10 +288,8 @@ const queryProjectTrackingSummary = async (): Promise<void> => {
     ...queryParams
   }
   const result = await request.get({ url: urlApi, params: sendData }, '/business')
-  if (result) {
-    infoList[0]['num'] = result.amount ?? 0
-    infoList[1]['num'] = result.nums ?? 0
-  }
+  infoList[0]['num'] = result ? result.amount ?? 0 : 0
+  infoList[1]['num'] = result ? result.nums ?? 0 : 0
 }
 queryProjectTrackingSummary()
 onMounted(() => {