结算模块修改

This commit is contained in:
bonus 2025-11-15 15:48:22 +08:00
parent 4c583e40c0
commit d78bdc7e3b
4 changed files with 325 additions and 757 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +1,11 @@
<template> <template>
<div class="app-container" id="costApplyList"> <div class="app-container" id="costApplyList">
<el-form <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
:model="queryParams" label-width="80px">
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="80px"
>
<el-form-item prop="unitIds"> <el-form-item prop="unitIds">
<treeselect <treeselect v-model="queryParams.unitId" :options="unitList" :normalizer="normalizer" :show-count="true"
v-model="queryParams.unitId" style="width: 240px" :disable-branch-nodes="true" noChildrenText="没有数据了" noOptionsText="没有数据"
:options="unitList" noResultsText="没有搜索结果" placeholder="请选择结算单位" @select="unitChange" />
:normalizer="normalizer"
:show-count="true"
style="width: 240px"
:disable-branch-nodes="true"
noChildrenText="没有数据了"
noOptionsText="没有数据"
noResultsText="没有搜索结果"
placeholder="请选择结算单位"
@select="unitChange"
/>
<!-- <el-cascader v-model="unitIds" <!-- <el-cascader v-model="unitIds"
:show-all-levels="false" :show-all-levels="false"
:options="unitList" :options="unitList"
@ -34,19 +18,9 @@
></el-cascader> --> ></el-cascader> -->
</el-form-item> </el-form-item>
<el-form-item prop="projectIds"> <el-form-item prop="projectIds">
<treeselect <treeselect v-model="queryParams.projectId" :options="proList" :normalizer="normalizer"
v-model="queryParams.projectId" :show-count="true" style="width: 240px" :disable-branch-nodes="true" noChildrenText="没有数据了"
:options="proList" noOptionsText="没有数据" noResultsText="没有搜索结果" placeholder="请选择结算工程" @select="proChange" />
:normalizer="normalizer"
:show-count="true"
style="width: 240px"
:disable-branch-nodes="true"
noChildrenText="没有数据了"
noOptionsText="没有数据"
noResultsText="没有搜索结果"
placeholder="请选择结算工程"
@select="proChange"
/>
<!-- <el-cascader v-model="projectIds" <!-- <el-cascader v-model="projectIds"
:show-all-levels="false" :show-all-levels="false"
:options="proList" :options="proList"
@ -58,16 +32,12 @@
></el-cascader> --> ></el-cascader> -->
</el-form-item> </el-form-item>
<el-form-item prop="agreementCode"> <el-form-item prop="agreementCode">
<el-input v-model="queryParams.agreementCode" placeholder="请输入协议号" clearable disabled /> <el-input v-model="queryParams.agreementCode" placeholder="请输入协议号" clearable />
</el-form-item> </el-form-item>
<el-form-item prop="sltStatus"> <el-form-item prop="sltStatus">
<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 statusList" :key="dict.id" :label="dict.name"
v-for="dict in statusList" :value="dict.id"></el-option>
:key="dict.id"
:label="dict.name"
:value="dict.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -118,13 +88,8 @@
<el-button size="mini" type="normal" icon="el-icon-search" @click="handleView(scope.row)"> <el-button size="mini" type="normal" icon="el-icon-search" @click="handleView(scope.row)">
查看 查看
</el-button> </el-button>
<el-button <el-button size="mini" type="primary" icon="el-icon-edit" @click="handleExame(scope.row)"
size="mini" v-if="scope.row.sltStatus == '1'">
type="primary"
icon="el-icon-edit"
@click="handleExame(scope.row)"
v-if="scope.row.sltStatus == '1'"
>
审批 审批
</el-button> </el-button>
<!-- <el-button size="mini" type="danger" icon="el-icon-delete" <!-- <el-button size="mini" type="danger" icon="el-icon-delete"
@ -135,13 +100,8 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
v-show="total > 0" :limit.sync="queryParams.pageSize" @pagination="getList" />
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 审批弹窗 --> <!-- 审批弹窗 -->
<el-dialog title="结算审批" :visible.sync="applyVisible" width="650px" append-to-body> <el-dialog title="结算审批" :visible.sync="applyVisible" width="650px" append-to-body>
@ -151,16 +111,8 @@
<el-radio v-model="aform.status" label="3">不通过</el-radio> <el-radio v-model="aform.status" label="3">不通过</el-radio>
</el-form-item> </el-form-item>
<el-form-item label="原因" prop="remark"> <el-form-item label="原因" prop="remark">
<el-input <el-input v-model="aform.remark" maxlength="100" placeholder="请输入" show-word-limit size="small"
v-model="aform.remark" style="width: 350px" type="textarea" rows="4"></el-input>
maxlength="100"
placeholder="请输入"
show-word-limit
size="small"
style="width: 350px"
type="textarea"
rows="4"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer" style="text-align: center"> <div slot="footer" class="dialog-footer" style="text-align: center">
@ -246,22 +198,36 @@
</div> </div>
<div class="fillIn" style="margin-top: 20px; display: flex; justify-content: space-between"> <div class="fillIn" style="margin-top: 20px; display: flex; justify-content: space-between">
<div class="item" style="width: 33%"> <div class="item-new" style="width: 33%">
<div>
<span>部门负责人</span> <span>部门负责人</span>
</div>
<img :src="initImgPath(agreementContent.auditorSignUrl)"
style="width: 40px; height: 90px;margin-left: 20px; max-width: 100%;"
:style="{ transform: agreementContent.signType == 0 ? 'rotate(-90deg)' : '' }" alt="" />
</div> </div>
<div class="item" style="width: 33%"> <div class="item-new" style="width: 33%">
<div>
<span>承租负责人</span> <span>承租负责人</span>
</div> <img :src="agreementContent.managerSignUrl"
style="width: 40px; height: 90px; max-width: 100%;margin-left: 20px;"
:style="{ transform: agreementContent.signType == 0 ? 'rotate(-90deg)' : '' }" alt=""
onerror="this.style.display='none'" v-if="agreementContent.managerSignUrl" />
</div> </div>
<div class="item" style="width: 33%"> <div class="item-new" style="width: 33%">
<div>
<span>核算员</span> <span>核算员</span>
</div>
<img :src="initImgPath(agreementContent.sltSignUrl)"
style="width: 40px; height: 90px; max-width: 100%; margin-left: 20px;"
:style="{ transform: agreementContent.signType == 0 ? 'rotate(-90deg)' : '' }" alt=""
onerror="this.style.display='none'" v-if="agreementContent.sltSignUrl" />
</div> </div>
</div> </div>
</vue-easy-print> </vue-easy-print>
@ -348,7 +314,8 @@ export default {
unitId: null, unitId: null,
projectId: null, projectId: null,
agreementId: null, agreementId: null,
agreementCode: null agreementCode: null,
enableQuerySltData: true
}, },
openPrint: false, openPrint: false,
// //
@ -489,6 +456,7 @@ export default {
// //
handleView(row) { handleView(row) {
let arr = [] let arr = []
row.enableQuerySltData = true
arr.push(row) arr.push(row)
this.$emit('goDetail', JSON.stringify(arr)) this.$emit('goDetail', JSON.stringify(arr))
}, },
@ -516,7 +484,7 @@ export default {
this.$modal.msgError(res.msg) this.$modal.msgError(res.msg)
} }
}) })
.catch(() => {}) .catch(() => { })
}, },
// //
@ -526,6 +494,7 @@ export default {
}, },
async openPrintDialog(row) { async openPrintDialog(row) {
row.enableQuerySltData = true
this.openPrint = true this.openPrint = true
try { try {
const res = await getSltInfo([row]) const res = await getSltInfo([row])
@ -1000,6 +969,19 @@ export default {
const blob = await Packer.toBlob(doc) const blob = await Packer.toBlob(doc)
saveAs(blob, `机具设备有偿使用费结算协议书-${data.agreementCode}.docx`) saveAs(blob, `机具设备有偿使用费结算协议书-${data.agreementCode}.docx`)
},
// ======================
//
initImgPath(path) {
if (!path) return
// pathhttp base64
if (path.startsWith('http')) {
return path; // http
} else {
return `data:image/png;base64,${path}`; // base64png
}
} }
} }
} }
@ -1009,11 +991,13 @@ export default {
width: 80px !important; width: 80px !important;
margin-bottom: 10px; margin-bottom: 10px;
} }
.dialog-footer { .dialog-footer {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
align-items: center; align-items: center;
} }
.tabelColumn { .tabelColumn {
width: 1000px; width: 1000px;
height: 50px; height: 50px;
@ -1023,16 +1007,23 @@ export default {
// margin-bottom: 1px; // margin-bottom: 1px;
border-bottom: none; border-bottom: none;
} }
.columnLabel { .columnLabel {
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
text-align: center; text-align: center;
border-left: none; border-left: none;
} }
.columnContent { .columnContent {
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
text-align: center; text-align: center;
border-left: 1px solid #9c9c9c; border-left: 1px solid #9c9c9c;
} }
.item-new {
display: flex;
align-items: center;
}
</style> </style>

View File

@ -212,6 +212,7 @@
<div class="item" style="width: 33%"> <div class="item" style="width: 33%">
<div> <div>
<span>部门负责人</span> <span>部门负责人</span>
</div> </div>
</div> </div>

View File

@ -181,6 +181,14 @@
<div class="item" style="width: 33%"> <div class="item" style="width: 33%">
<div> <div>
<span>部门负责人</span> <span>部门负责人</span>
<img
:src="agreementContent.auditorSignUrl"
style="width: 40px; height: 90px; max-width: 100%; vertical-align: middle;"
:style="{ transform: agreementContent.signType == 0 ? 'rotate(-90deg)' : '' }"
alt=""
/>
</div> </div>
</div> </div>
@ -193,6 +201,14 @@
<div class="item" style="width: 33%"> <div class="item" style="width: 33%">
<div> <div>
<span>核算员</span> <span>核算员</span>
<img
:src="agreementContent.sltSignUrl"
style="width: 40px; height: 90px; max-width: 100%"
:style="{ transform: agreementContent.signType == 0 ? 'rotate(-90deg)' : '' }"
alt=""
/>
</div> </div>
</div> </div>
</div> </div>