duy преди 6 месеца
родител
ревизия
8ff9722ce3
променени са 3 файла, в които са добавени 81 реда и са изтрити 15 реда
  1. 34 3
      src/renderer/src/views/home2/datav.vue
  2. 3 2
      src/renderer/src/views/project/data.vue
  3. 44 10
      src/renderer/src/views/project/data/addAndEdit.vue

+ 34 - 3
src/renderer/src/views/home2/datav.vue

@@ -138,7 +138,15 @@ import { getArrValue, getObjValue } from 'js-fast-way'
 import { getDictionary } from '~api/dictbiz.js'
 import projectApi from '~api/promanage/project'
 import dayjs from 'dayjs'
+import { getMenuData } from '~src/router/routers'
 
+const menuBarData = ref([])
+
+//获取菜单数据
+const getMenuBarData = async () => {
+    menuBarData.value = await getMenuData()
+   
+}
 const router = useRouter()
 const store = useAppStore()
 
@@ -147,6 +155,12 @@ const nameRef = ref(null)
 
 
 onMounted(async () => {
+        //窗口大小改变
+        windowResize()
+    setTimeout(() => {
+        onWindowResize()
+    }, 100)
+    await getMenuBarData()
  await getProType()
  await getDataProjectStat()
  await getTypeTotal()
@@ -186,7 +200,13 @@ const getTypeTotal = async ()=>{
 }
 const handleChartClick1 = (params) => {
  console.log(params, 'params')
- router.push( { name: 'project-data', query: { operationCompany: params.name } })
+//  router.push( { name: 'project-data', query: { operationCompany: params.name } })
+const hasPermission = menuBarData.value.some(item => item.code === 'project2')
+    if (!hasPermission) {
+        return
+    }
+    
+    router.push({ name: 'project-data', query: { operationCompany: params.name } })
  
 }
 //根据公司统计
@@ -380,6 +400,7 @@ const toHomePage = () => {
     router.push( { name: 'project-data' })
 }
 
+//监听浏览器窗口变化
 //监听浏览器窗口变化
 const windowResize = () => {
     window.addEventListener('resize', resizeEvent)
@@ -403,12 +424,22 @@ onUnmounted(() => {
 // 在 script setup 中添加处理函数
 const handleChartClick = (data) => {
     
+    // router.push( { name: 'project-data', query: { type: data.type } })
+    console.log(menuBarData.value, 'menuBarData.value')
+    
+    const hasPermission = menuBarData.value.some(item => item.code === 'project2')
+    console.log(hasPermission, 'hasPermission')
+    
+    if (!hasPermission) {
+        return
+    }
+    
     router.push( { name: 'project-data', query: { type: data.type } })
     // 这里可以添加您的业务逻辑
 }
 </script>
 
-<style lang="scss">
+<style lang="scss" scoped>
 @import '~src/styles/view/datav';
 .bg-box-card{
     background-color: rgba(0, 43, 84, 0.8);
@@ -422,7 +453,7 @@ const handleChartClick = (data) => {
     background-color: rgba(0, 43, 84, 0.8);
     border: 1px solid rgba(15, 84, 155, 0.8);
     border-radius: 4px;
-    height: calc(33vh - 17px);  // 修改固定高度为动态高度
+    height: calc(35vh - 17px);   // 修改固定高度为动态高度
     padding: 14px;
 }
 .bg-box-card-title{

+ 3 - 2
src/renderer/src/views/project/data.vue

@@ -35,7 +35,7 @@
        
             <div class="ml-2 w-[200px]">
                 <el-select v-model="searchForm.operationCompany" filterable clearable block placeholder="运营公司" @change="searchClick">
-                    <el-option v-for="item in operationCompanyOptions" :key="item.id" :label="item.operationCompany" :value="item.id" />
+                    <el-option v-for="item in operationCompanyOptions" :key="item.operationCompany" :label="item.operationCompany" :value="item.operationCompany" />
                 </el-select>
             </div>
             <div class="relative ml-3 w-[260px]">
@@ -115,7 +115,7 @@ const operationCompany = ref(useRoutes.query.operationCompany)
 //渲染完成
 onMounted(async () => {
   
-    
+    await nextTick()
     searchForm.value.type = type.value
     searchForm.value.operationCompany = operationCompany.value
     await getProStation()
@@ -178,6 +178,7 @@ const getProOperationCompany = async () => {
 
 //搜索
 const typeClick = async (val) => {
+    searchForm.value.routeType = ''
     await getTypeListData(val, 'ibaRouteType')
     searchClick()
 }

+ 44 - 10
src/renderer/src/views/project/data/addAndEdit.vue

@@ -33,7 +33,7 @@
                                         <el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value" />
                                     </el-select>
                                 </el-form-item>
-                                <el-form-item label="建设期时间:" prop="key5">
+                                <el-form-item label="建设期时间:" prop="key5">
                                     <hc-date-picker :dates="betweenTime" clearable :disabled="data?.isView" @change="betweenTimeUpdate" />
                                 </el-form-item>
                                 <el-form-item label="运营期时间:" prop="key6">
@@ -59,8 +59,8 @@
                 <hc-card-item class="hac-card-item">
                     <template #header>
                         <div class="hac-card-title g">
-                            <div class="w-[150px]">
-                                <el-select v-model="stageYearVal" filterable clearable block placeholder="建设期" @change="stageYearClick">
+                            <div class="w-[180px]">
+                                <el-select v-model="stageYearVal" filterable clearable block placeholder="请先选择建设期时间" @change="stageYearClick">
                                     <el-option v-for="item in stageYearOptions" :key="item.value" :label="item.label" :value="item.value" />
                                 </el-select>
                             </div>
@@ -227,8 +227,8 @@
                 <hc-card-item class="hac-card-item">
                     <template #header>
                         <div class="hac-card-title g">
-                            <div class="w-[150px]">
-                                <el-select v-model="carYearVal" filterable clearable block placeholder="建设期" @change="carYearClick">
+                            <div class="w-[180px]">
+                                <el-select v-model="carYearVal" filterable clearable block placeholder="请先选择建设期时间" @change="carYearClick">
                                     <el-option v-for="item in stageYearOptions" :key="item.value" :label="item.label" :value="item.value" />
                                 </el-select>
                             </div>
@@ -296,10 +296,31 @@ const emit = defineEmits(['finish', 'close'])
 const isShow = defineModel('modelValue', {
     default: false,
 })
+const stageYearOptions = ref([
+   
+])
+// 添加 watch 来监听 stageYearOptions 的变化
+watch(() => stageYearOptions.value, (newOptions) => {
+    if (newOptions && newOptions.length > 0) {
+        // 更新 yearFuns 的年份
+        yearFuns.value = yearFuns.value.map(item => ({
+            ...item,
+            year: item.year || newOptions[0].value,
+        }))
+        
+        // 更新 carList 的年份
+        carList.value = carList.value.map(item => ({
+            ...item,
+            year: item.year || newOptions[0].value,
+        }))
+    }
+}, { immediate: true })
+
 const yearFuns = ref([
 {
 
-            year: '',
+    year: stageYearOptions.value?.[0]?.value || '', // 设置默认年份选项的value值,如果没有则默认为空字符串
+
             tollInflow: '',
             otherInflow: '',
             constructInvestOutflow: '',
@@ -316,16 +337,16 @@ const yearFuns = ref([
         },
 ])
 const carList = ref([{
-    year: '',
+    year: stageYearOptions.value?.[0]?.value || '', // 设置默认年份
     numbers: Array(12).fill(''), // 初始化12个月份的数据,默认值为0
 }])
 const betweenTime = ref(null)
 const betweenTime1 = ref(null)
 //监听
 const baseForm = ref(props.data)
-const stageYearOptions = ref([
+// const stageYearOptions = ref([
    
-])
+// ])
 watch(() => props.data, (data) => {
   if (!data.id) {
     betweenTime.value = []
@@ -464,7 +485,12 @@ const getProType = async () => {
     await getTypeListData(1, 'ibaProjectType')
   }
   const typeClick = async (val) => {
-    await getTypeListData(val, 'ibaRouteType')
+
+    await nextTick(() => {
+          
+            getTypeListData(val, 'ibaRouteType')
+    })
+    baseForm.value.routeType = ''
   
 }
 const getTypeListData = async (parentId, code) => {
@@ -510,6 +536,10 @@ const getProOperationCompany = async () => {
 }
 const selectIndex = ref(0)
 const stageYearClick = async (val) => {
+    if (yearFuns.value[selectIndex]) {
+        yearFuns.value[selectIndex].year = year
+    }
+
     console.log(val)
     stageYearVal.value = val
     // await nextTick()
@@ -551,6 +581,9 @@ const carYearVal = ref('')
 
 const carSelectIndex = ref(0)// ... existing code ...
 const carYearClick = (year) => {
+    if (carList.value[carSelectIndex]) {
+        carList.value[carSelectIndex].year = year
+    }
     
      carSelectIndex.value = arrIndex(stageYearOptions.value, 'value', year)
   
@@ -577,6 +610,7 @@ const carYearClick = (year) => {
 const formRef = ref(null)
 const formRules = {
     projectName: { required: true, trigger: 'blur', message: '请输入路线名称' },
+    operationCompany: { required: true, trigger: 'blur', message: '请选择运营公司' },
 }
 
 //新增、编辑提交