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