问题修复
This commit is contained in:
		
							parent
							
								
									0407b57efb
								
							
						
					
					
						commit
						921d797f35
					
				| 
						 | 
				
			
			@ -1,6 +1,41 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div class="app-container" id="costApplyList">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
 | 
			
		||||
      <el-form-item label="分公司" prop="impUnitName">
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.impUnitName"
 | 
			
		||||
          placeholder="请选择分公司"
 | 
			
		||||
          clearable
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
          @change="handleImpUnitChange"
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in impUnitOptions"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.value"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
 | 
			
		||||
      <el-form-item label="项目部" prop="departName">
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.departName"
 | 
			
		||||
          placeholder="请选择项目部"
 | 
			
		||||
          clearable
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
          @change="handleDepartChange"
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in departOptions"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.value"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
        <el-form-item label="结算工程">
 | 
			
		||||
          <el-select
 | 
			
		||||
          v-model="queryParams.projectId"
 | 
			
		||||
| 
						 | 
				
			
			@ -45,7 +80,7 @@
 | 
			
		|||
          <el-input v-model="queryParams.agreementCode" placeholder="请输入协议号" clearable disabled/>
 | 
			
		||||
        </el-tooltip>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item prop="sltStatus">
 | 
			
		||||
      <el-form-item prop="sltStatus" label="结算状态">
 | 
			
		||||
        <el-select v-model="queryParams.sltStatus" placeholder="请选择结算状态" clearable filterable>
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="dict in dict.type.cost_status"
 | 
			
		||||
| 
						 | 
				
			
			@ -75,10 +110,12 @@
 | 
			
		|||
          <span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="协议号" align="center" prop="agreementCode" :show-overflow-tooltip="true" />
 | 
			
		||||
      <el-table-column label="结算班组" align="center" prop="unitName" width="200" />
 | 
			
		||||
      <el-table-column label="协议号" align="center" prop="agreementCode" :show-overflow-tooltip="true" width="150"/>
 | 
			
		||||
      <el-table-column label="分公司" align="center" prop="impUnitName" width="200" />
 | 
			
		||||
      <el-table-column label="项目部" align="center" prop="departName" width="200" />
 | 
			
		||||
      <el-table-column label="结算工程" align="center" prop="projectName" width="200" />
 | 
			
		||||
      <el-table-column label="合计费用(元)" align="center" prop="costs" :show-overflow-tooltip="true">
 | 
			
		||||
      <el-table-column label="结算班组" align="center" prop="unitName" width="150" />
 | 
			
		||||
      <el-table-column label="合计费用(元)" align="center" prop="costs" :show-overflow-tooltip="true" width="200">
 | 
			
		||||
        <template slot-scope="scope" v-if="scope.row.costs != null && scope.row.costs != ''">
 | 
			
		||||
          {{ scope.row.costs.toFixed(2) }}
 | 
			
		||||
        </template>
 | 
			
		||||
| 
						 | 
				
			
			@ -89,7 +126,7 @@
 | 
			
		|||
        </template>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
 | 
			
		||||
      <el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
 | 
			
		||||
      <el-table-column label="操作" align="center" width="150" class-name="small-padding fixed-width">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
          <el-button
 | 
			
		||||
            style="display: none"
 | 
			
		||||
| 
						 | 
				
			
			@ -204,10 +241,10 @@
 | 
			
		|||
 | 
			
		||||
<script>
 | 
			
		||||
import {
 | 
			
		||||
   getClzProjectListApi,getClzTeamListApi
 | 
			
		||||
   getClzProjectListApi,getClzTeamListApi,getImpUnitListApi,getDepartListByImpUnitApi
 | 
			
		||||
} from '@/api/materialsStation'
 | 
			
		||||
import { getTeamList } from '@/api/materialsStation/auth.js'
 | 
			
		||||
import {  getClzSltAgreementInfo, getClzProjectListByUnitIds, getClzAgreementInfoById, getClzSltInfo } from '@/api/cost/cost'
 | 
			
		||||
import {  getClzSltAgreementInfo, getClzProjectListByUnitIds, getClzAgreementInfoById, getClzSltInfo} from '@/api/cost/cost'
 | 
			
		||||
import { toChineseAmount } from '@/utils/bonus.js'
 | 
			
		||||
import vueEasyPrint from 'vue-easy-print'
 | 
			
		||||
import Treeselect from '@riophae/vue-treeselect'
 | 
			
		||||
| 
						 | 
				
			
			@ -245,8 +282,12 @@ export default {
 | 
			
		|||
        unitId: null,
 | 
			
		||||
        projectId: null,
 | 
			
		||||
        agreementId: [],
 | 
			
		||||
        agreementCode: ''
 | 
			
		||||
        agreementCode: '',
 | 
			
		||||
        impUnitName: '', // 分公司
 | 
			
		||||
        departName: '' // 项目部
 | 
			
		||||
      },
 | 
			
		||||
      impUnitOptions: [], // 分公司下拉选项
 | 
			
		||||
      departOptions: [], // 项目部下拉选项
 | 
			
		||||
      openPrint: false,
 | 
			
		||||
      // 协议书内容
 | 
			
		||||
      agreementContent: {
 | 
			
		||||
| 
						 | 
				
			
			@ -265,15 +306,72 @@ export default {
 | 
			
		|||
    }
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.loadProjectList()
 | 
			
		||||
    // this.loadProjectList()
 | 
			
		||||
    // this.GetProData()
 | 
			
		||||
    this.getList()
 | 
			
		||||
    this.getImpUnitOptions()
 | 
			
		||||
    this.handleImpUnitChange()
 | 
			
		||||
    this.handleDepartChange()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    /** 获取分公司下拉 */
 | 
			
		||||
    async getImpUnitOptions() {
 | 
			
		||||
      try {
 | 
			
		||||
        const res = await getImpUnitListApi() // 调后台接口
 | 
			
		||||
        this.impUnitOptions = res.data.map(item => ({
 | 
			
		||||
          label: item.impUnitName,   // 这里根据实际字段替换
 | 
			
		||||
          value: item.impUnitName
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取分公司下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    /** 分公司选择变化,加载项目部 */
 | 
			
		||||
    async handleImpUnitChange() {
 | 
			
		||||
      this.queryParams.departName = null // 清空项目部已选
 | 
			
		||||
      this.departOptions = []            // 清空原有下拉
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        const params = {
 | 
			
		||||
          impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
        }
 | 
			
		||||
        const res = await getDepartListByImpUnitApi(params)
 | 
			
		||||
        this.departOptions = res.data.map(item => ({
 | 
			
		||||
          label: item.departName,   // 项目部名称字段
 | 
			
		||||
          value: item.departName
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取项目部下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    /** 项目部选择变化,加载工程 */
 | 
			
		||||
    async handleDepartChange() {
 | 
			
		||||
      this.queryParams.projectId = null // 清空工程已选
 | 
			
		||||
      this.projectList = []            // 清空原有下拉
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        // 同时传入分公司和项目部参数
 | 
			
		||||
        const params = {
 | 
			
		||||
          impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
          departName: this.queryParams.departName, // 项目部名称
 | 
			
		||||
        }
 | 
			
		||||
        const res = await getClzProjectListApi(params)
 | 
			
		||||
        this.projectList = res.data.map(item => ({
 | 
			
		||||
          label: item.proName,   // 工程名称字段
 | 
			
		||||
          value: item.proId
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取工程下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    async loadProjectList() {
 | 
			
		||||
      try {
 | 
			
		||||
        const res = await getClzProjectListApi({})
 | 
			
		||||
        const params = {
 | 
			
		||||
          impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
          departName: this.queryParams.departName, // 项目部名称
 | 
			
		||||
        }
 | 
			
		||||
        const res = await getClzProjectListApi(params)
 | 
			
		||||
        if (res.code === 200) {
 | 
			
		||||
          // this.projectList = response.data || []
 | 
			
		||||
          this.projectList = res.data.map(item => ({
 | 
			
		||||
| 
						 | 
				
			
			@ -344,7 +442,9 @@ export default {
 | 
			
		|||
        projectId: this.queryParams.projectId,
 | 
			
		||||
        sltStatus: this.queryParams.sltStatus,
 | 
			
		||||
        // ...this.queryParams,
 | 
			
		||||
        unitIds: this.unitIds
 | 
			
		||||
        unitIds: this.unitIds,
 | 
			
		||||
        impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
        departName: this.queryParams.departName, // 项目部名称
 | 
			
		||||
      }
 | 
			
		||||
      getClzSltAgreementInfo(params).then(response => {
 | 
			
		||||
        this.tableList = response.rows
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,41 @@
 | 
			
		|||
    <!-- 操作栏 -->
 | 
			
		||||
    <div class="operation-bar">
 | 
			
		||||
      <el-form :inline="true" label-width="80px" style="margin-bottom: 20px;">
 | 
			
		||||
      <el-form-item label="分公司" prop="impUnitName">
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.impUnitName"
 | 
			
		||||
          placeholder="请选择分公司"
 | 
			
		||||
          clearable
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
          @change="handleImpUnitChange"
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in impUnitOptions"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.value"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
 | 
			
		||||
      <el-form-item label="项目部" prop="departName">
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.departName"
 | 
			
		||||
          placeholder="请选择项目部"
 | 
			
		||||
          clearable
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
          @change="handleDepartChange"
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in departOptions"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.value"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
        <el-form-item label="结算工程">
 | 
			
		||||
          <el-select
 | 
			
		||||
          v-model="selectedProject"
 | 
			
		||||
| 
						 | 
				
			
			@ -40,7 +75,7 @@
 | 
			
		|||
        </el-form-item>
 | 
			
		||||
 | 
			
		||||
        <el-form-item>
 | 
			
		||||
          <el-button type="primary" @click="handleQuery" :loading="loading">查询</el-button>
 | 
			
		||||
          <el-button type="primary" @click="handleQuery" >查询</el-button>
 | 
			
		||||
          <el-button @click="reset">重置</el-button>
 | 
			
		||||
          <el-button @click="goBack">返回</el-button>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
| 
						 | 
				
			
			@ -57,7 +92,7 @@
 | 
			
		|||
          <el-button type="primary" size="mini" @click="handleExport2" :disabled="!hasData">未归还明细导出</el-button>
 | 
			
		||||
          <el-button type="primary" size="mini" @click="handleExport5" :disabled="!hasData">减免明细导出</el-button>
 | 
			
		||||
          <el-button type="warning" size="mini" @click="handleExportAll" :disabled="!hasData">全部明细导出</el-button>
 | 
			
		||||
          <el-button type="warning" size="mini" @click="handleExportEach" :disabled="!hasData">各结算明细导出</el-button>
 | 
			
		||||
          <!-- <el-button type="warning" size="mini" @click="handleExportEach" :disabled="!hasData">各结算明细导出</el-button> -->
 | 
			
		||||
          <el-button type="success" size="mini" @click="handleAdd" :disabled="!hasData">提交</el-button>
 | 
			
		||||
        </el-col>
 | 
			
		||||
      </el-row>
 | 
			
		||||
| 
						 | 
				
			
			@ -242,7 +277,7 @@
 | 
			
		|||
<script>
 | 
			
		||||
import { getClzSltInfo, submitClzCosts } from '@/api/cost/cost'
 | 
			
		||||
import {
 | 
			
		||||
   getClzProjectListApi,getClzTeamListApi
 | 
			
		||||
   getClzProjectListApi,getClzTeamListApi,getImpUnitListApi,getDepartListByImpUnitApi
 | 
			
		||||
} from '@/api/materialsStation'
 | 
			
		||||
import Treeselect from '@riophae/vue-treeselect'
 | 
			
		||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 | 
			
		||||
| 
						 | 
				
			
			@ -275,7 +310,13 @@ export default {
 | 
			
		|||
      projectName: '', //结算工程
 | 
			
		||||
      unitName: '', //结算班组
 | 
			
		||||
      actualTimeAndName: '', //实际时间和对应的班组名称
 | 
			
		||||
      rowData: []
 | 
			
		||||
      rowData: [],
 | 
			
		||||
      queryParams: {
 | 
			
		||||
        impUnitName: '', // 分公司
 | 
			
		||||
        departName: '', // 项目部
 | 
			
		||||
      },
 | 
			
		||||
      impUnitOptions: [], // 分公司下拉选项
 | 
			
		||||
      departOptions: [], // 项目部下拉选项
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
| 
						 | 
				
			
			@ -285,12 +326,69 @@ export default {
 | 
			
		|||
    }
 | 
			
		||||
  },
 | 
			
		||||
  async created() {
 | 
			
		||||
    await this.loadProjectList()
 | 
			
		||||
    // await this.loadProjectList()
 | 
			
		||||
    this.getImpUnitOptions()
 | 
			
		||||
    this.handleImpUnitChange()
 | 
			
		||||
    this.handleDepartChange()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    /** 获取分公司下拉 */
 | 
			
		||||
    async getImpUnitOptions() {
 | 
			
		||||
      try {
 | 
			
		||||
        const res = await getImpUnitListApi() // 调后台接口
 | 
			
		||||
        this.impUnitOptions = res.data.map(item => ({
 | 
			
		||||
          label: item.impUnitName,   // 这里根据实际字段替换
 | 
			
		||||
          value: item.impUnitName
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取分公司下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    /** 分公司选择变化,加载项目部 */
 | 
			
		||||
    async handleImpUnitChange() {
 | 
			
		||||
      this.queryParams.departName = null // 清空项目部已选
 | 
			
		||||
      this.departOptions = []            // 清空原有下拉
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        const params = {
 | 
			
		||||
          impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
        }
 | 
			
		||||
        const res = await getDepartListByImpUnitApi(params)
 | 
			
		||||
        this.departOptions = res.data.map(item => ({
 | 
			
		||||
          label: item.departName,   // 项目部名称字段
 | 
			
		||||
          value: item.departName
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取项目部下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    /** 项目部选择变化,加载工程 */
 | 
			
		||||
    async handleDepartChange() {
 | 
			
		||||
      this.queryParams.proName = null // 清空工程已选
 | 
			
		||||
      this.projectList = []            // 清空原有下拉
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        // 同时传入分公司和项目部参数
 | 
			
		||||
        const params = {
 | 
			
		||||
          impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
          departName: this.queryParams.departName, // 项目部名称
 | 
			
		||||
        }
 | 
			
		||||
        const res = await getClzProjectListApi(params)
 | 
			
		||||
        this.projectList = res.data.map(item => ({
 | 
			
		||||
          label: item.proName,   // 工程名称字段
 | 
			
		||||
          value: item.proId
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取工程下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    async loadProjectList() {
 | 
			
		||||
      try {
 | 
			
		||||
        const res = await getClzProjectListApi({})
 | 
			
		||||
        const params = {
 | 
			
		||||
          impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
          departName: this.queryParams.departName, // 项目部名称
 | 
			
		||||
        }
 | 
			
		||||
        const res = await getClzProjectListApi(params)
 | 
			
		||||
        if (res.code === 200) {
 | 
			
		||||
          // this.projectList = response.data || []
 | 
			
		||||
          this.projectList = res.data.map(item => ({
 | 
			
		||||
| 
						 | 
				
			
			@ -600,6 +698,8 @@ export default {
 | 
			
		|||
      this.selectedTeams = []
 | 
			
		||||
      this.selectedProject = ''
 | 
			
		||||
      this.actualTimeAndName = ''
 | 
			
		||||
      this.queryParams.impUnitName = '' // 清空分公司
 | 
			
		||||
      this.queryParams.departName = '' // 清空项目部
 | 
			
		||||
      this.hasQueried = false
 | 
			
		||||
      this.clearData()
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue