问题修复

This commit is contained in:
hongchao 2025-10-14 22:41:20 +08:00
parent 0407b57efb
commit 921d797f35
2 changed files with 217 additions and 17 deletions

View File

@ -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,7 +241,7 @@
<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'
@ -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

View File

@ -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()
},