Compare commits

...

3 Commits

Author SHA1 Message Date
zhouzy062 78d5489af9 Merge branch 'dev' of http://192.168.0.56:3000/bonus/devicesmgt into dev 2024-02-29 13:30:23 +08:00
zhouzy062 e9d8939263 前端ip配置 2024-02-29 13:30:01 +08:00
zhouzy062 9d056e4498 退料审批,结算审核 2024-02-29 13:29:34 +08:00
10 changed files with 950 additions and 845 deletions

View File

@ -71,7 +71,7 @@ export function backApplyDelApi(query) {
//审核
//审核-同意
export function ApiBackApplyAudit(data) {
return request({
url: '/material/backApply/audit',
@ -79,6 +79,14 @@ export function ApiBackApplyAudit(data) {
data: data
})
}
//审核-拒绝R
export function ApiBackApplyRefuse(data) {
return request({
url: '/material/backApply/refuse',
method: 'post',
data: data
})
}
// 退料审核新增
export function submitBackApplyApi(data) {
return request({

View File

@ -19,10 +19,42 @@ export function getSltInfo(params){
})
}
// 费用结算申请提交
export function submitFee(params){
return request({
url: '/material/sltAgreementInfo/submitFee',
method: 'post',
data: params
})
}
// 查询费用结算审核列表
export function getSltExam(query) {
return request({
url: '/material/sltAgreementInfo/getSltExam',
method: 'get',
params: query
})
}
// 查询费用结算审核列表
export function getSltExamInfo(query) {
return request({
url: '/material/sltAgreementInfo/getSltExamInfo',
method: 'get',
params: query
})
}
// 费用结算审核-同意拒绝
export function settlementReview(query) {
return request({
url: '/material/sltAgreementInfo/settlementReview',
method: 'get',
params: query
})
}

View File

@ -1,53 +1,23 @@
<template>
<div class="app-container" id="returnApply">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="关键字" prop="keyWord">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入关键字"
clearable
style="width: 240px"
/>
<el-input v-model="queryParams.keyWord" placeholder="请输入关键字" clearable style="width: 240px" />
</el-form-item>
<el-form-item label="单位名称" prop="unitId">
<el-select
v-model="queryParams.unitId"
<el-select v-model="queryParams.unitId"
clearable filterable
@change="getAgreementByUnit"
style="width: 240px"
placeholder="请选择"
>
<el-option
v-for="item in unitList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
<el-option v-for="item in unitList" :key="item.id" :label="item.name" :value="item.id" ></el-option>
</el-select>
</el-form-item>
<el-form-item label="工程名称" prop="proId">
<el-select
v-model="queryParams.proId"
clearable filterable
@change="getAgreementByProId"
style="width: 240px"
placeholder="请选择"
>
<el-option
v-for="item in proList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
<el-select v-model="queryParams.proId" clearable filterable @change="getAgreementByProId"
style="width: 240px" placeholder="请选择" >
<el-option v-for="item in proList" :key="item.id" :label="item.name" :value="item.id" ></el-option>
</el-select>
</el-form-item>
<el-form-item label="工机具类型" prop="typeId">
@ -83,37 +53,19 @@
style="width: 240px"
placeholder="请选择"
>
<el-option
v-for="item in taskStatusList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
<el-option v-for="item in taskStatusList" :key="item.id" :label="item.name" :value="item.id" > </el-option>
</el-select>
</el-form-item>
<el-form-item label="协议号" prop="agreementCode">
<el-input
v-model="queryParams.agreementCode"
placeholder="请选择协议号"
clearable
style="width: 240px"
/>
<el-input v-model="queryParams.agreementCode" placeholder="请选择协议号" clearable style="width: 240px" />
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>查询</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button >
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button >
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
@ -145,131 +97,53 @@
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="typeList"
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange" >
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="序号" sortable align="center" type="index" />
<el-table-column
label="退料单号"
align="center"
prop="code"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退料单位"
align="center"
prop="unitName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退料工程"
align="center"
prop="lotName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退料机具"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退料人员"
align="center"
prop="backPerson"
:show-overflow-tooltip="true"
/>
<el-table-column
label="联系方式"
align="center"
prop="phone"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退料申请时间"
align="center"
prop="backTime"
:show-overflow-tooltip="true"
/>
<el-table-column
label="协议号"
align="center"
prop="agreementCode"
:show-overflow-tooltip="true"
/>
<el-table-column
label="异常退料"
align="center"
prop="dictName"
:show-overflow-tooltip="true"
>
<el-table-column label="退料单号" align="center" prop="code" :show-overflow-tooltip="true"/>
<el-table-column label="退料单位" align="center" prop="unitName" :show-overflow-tooltip="true"/>
<el-table-column label="退料工程" align="center" prop="lotName" :show-overflow-tooltip="true"/>
<el-table-column label="退料机具" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="退料人员" align="center" prop="backPerson" :show-overflow-tooltip="true"/>
<el-table-column label="联系方式" align="center" prop="phone" :show-overflow-tooltip="true"/>
<el-table-column label="退料申请时间" align="center" prop="backTime" :show-overflow-tooltip="true"/>
<el-table-column label="协议号" align="center" prop="agreementCode" :show-overflow-tooltip="true"/>
<el-table-column label="异常退料" align="center" prop="dictName" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<div>
<!-- 暂时全部未否 -->
<div> <!-- 暂时全部未否 -->
</div>
</template>
</el-table-column>
<el-table-column
label="退料状态"
align="center"
:show-overflow-tooltip="true"
>
<el-table-column label="退料状态" align="center" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<!-- 状态
37-待审核
38-已审核 -->
<el-button type="text" v-if="scope.row.taskStatus == '37'">
待审核
</el-button>
<el-button
type="text"
style="color: #67c23a"
v-if="scope.row.taskStatus == '38'"
>
<!-- 状态 37-待审核 38-已审核 -->
<el-button type="text" v-if="scope.row.taskStatus == '37'">
待审核
</el-button>
<el-button type="text" style="color: #67c23a" v-if="scope.row.taskStatus == '38'">
已审核
</el-button>
<el-button type="text" v-if="scope.row.taskStatus == '39'">
退料核查
</el-button>
<el-button
type="text"
style="color: #67c23a"
v-if="scope.row.taskStatus == '40'"
>
退料完成
</el-button>
</el-button>
<el-button type="text" v-if="scope.row.taskStatus == '39'">
退料核查
</el-button>
<el-button type="text" style="color: #67c23a" v-if="scope.row.taskStatus == '40'">
退料完成
</el-button>
</template>
</el-table-column>
<el-table-column
label="不通过原因"
align="center"
prop="dictName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="250"
>
<el-table-column label="不通过原因" align="center" prop="dictName" :show-overflow-tooltip="true"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="250">
<template slot-scope="scope">
<el-button
size="mini"
plain
icon="el-icon-zoom-in"
@click="handleSee(scope.row, 'see')"
>查看</el-button
>
>查看</el-button>
<!-- <el-button
size="mini"
type="warning"
@ -279,19 +153,23 @@
v-hasPermi="['store:labelType:edit']"
>编辑</el-button
> -->
<el-button
size="mini"
type="info"
v-if="scope.row.taskStatus==101"
@click="handleUpdate(scope.row)"
>驳回提交</el-button>
<el-button
size="mini"
type="danger"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>删除</el-button
>
>删除</el-button>
<el-button
size="mini"
type="info"
@click="handlePrint(scope.row)"
>退料单</el-button
>
>退料单</el-button>
</template>
</el-table-column>
</el-table>
@ -305,20 +183,8 @@
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog
:title="title"
:visible.sync="open"
width="1000px"
append-to-body
>
<el-form
:model="dialogQueryParams"
ref="queryForm1"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form :model="dialogQueryParams" ref="queryForm1" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-row>
<el-form-item label="退料单位" prop="unitName">
<el-input
@ -390,59 +256,22 @@
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery1"
>查询</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery1"
>查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery1"
>重置</el-button
>
>重置</el-button>
</el-form-item>
</el-row>
</el-form>
<el-table
v-loading="loading"
:data="loadingList"
height="500px"
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="loadingList" height="500px" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" type="index" />
<el-table-column
label="类型名称"
align="center"
prop="typeName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格型号"
align="center"
prop="typeCode"
:show-overflow-tooltip="true"
/>
<el-table-column
label="编码"
align="center"
prop="maCode"
:show-overflow-tooltip="true"
/>
<el-table-column
label="当前在用量"
align="center"
prop="useNum"
:show-overflow-tooltip="true"
/>
<el-table-column
label="退料数量"
align="center"
prop="num"
class-name="small-padding fixed-width"
width="200"
>
<el-table-column label="类型名称" align="center" prop="typeName" :show-overflow-tooltip="true"/>
<el-table-column label="规格型号" align="center" prop="typeCode" :show-overflow-tooltip="true"/>
<el-table-column label="编码" align="center" prop="maCode" :show-overflow-tooltip="true"/>
<el-table-column label="当前在用量" align="center" prop="useNum" :show-overflow-tooltip="true"/>
<el-table-column label="退料数量" align="center" prop="num" class-name="small-padding fixed-width" width="200">
<!-- <template slot-scope="scope">
<el-input
v-model="scope.row.num"
@ -473,26 +302,12 @@
</div>
</el-dialog>
<!-- 退料单 -->
<dialogForm
:dialogTitle="title"
:isShowFlag.sync="isShowOneFlag"
:priKey="priKey"
:rowObj="rowObj"
></dialogForm>
<dialogForm :dialogTitle="title" :isShowFlag.sync="isShowOneFlag" :priKey="priKey" :rowObj="rowObj" ></dialogForm>
<!-- 提交 -->
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openOne"
append-to-body
width="400px"
>
<el-dialog v-loading.fullscreen.lock="fullscreenLoading" :title="title" :visible.sync="openOne" append-to-body width="400px">
<div class="submit_box">
<div>
<i
class="el-icon-circle-check"
style="color: #ff9900; font-size: 30px"
></i>
<i class="el-icon-circle-check" style="color: #ff9900; font-size: 30px" ></i>
</div>
<div class="submit_box_title">
<div>{{ openTextOne }}</div>
@ -504,19 +319,11 @@
<el-button type="primary" @click="submitOpenOneForm()">确定</el-button>
</div>
</el-dialog>
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
:visible.sync="openTwo"
append-to-body
width="400px"
>
<el-dialog v-loading.fullscreen.lock="fullscreenLoading" :title="title" :visible.sync="openTwo" append-to-body width="400px">
<div class="submit_box_two">
<div>
<i
class="el-icon-circle-check"
style="color: #00c196; font-size: 30px"
></i>
<i class="el-icon-circle-check" style="color: #00c196; font-size: 30px" ></i>
</div>
<div class="submit_box_title">{{ openTextThree }}</div>
</div>
@ -689,15 +496,14 @@ export default {
this.multiple = !selection.length
},
/** 修改按钮操作 */
handleUpdate(row, type) {
this.type = type
// this.reset();
// const dictId = row.dictId || this.ids
// getType(dictId).then(response => {
// this.form = response.data;
// this.open = true;
// this.title = "";
// });
handleUpdate(row) {
this.$tab.closeOpenPage({
path:'/claimAndRefund/return/returnApplyAdd',
query:{
taskId:row.taskId,
isEdit:true
}
})
},
// 退
handleUpdateOrder() {

View File

@ -411,6 +411,7 @@ export default {
},
companyId: '',
createBy: '',
isEdit:'true',
};
},
created() {
@ -418,7 +419,8 @@ export default {
this.GetProData()
this.GetDeviceTypeTreeFn()
// this.getList();
console.log('this.$route.query.taskId', this.$route.query.taskId)
// console.log('this.$route.query.isEdit', this.$route.query.isEdit)
this.isEdit = this.$route.query.isEdit;
if (this.$route.query.taskId) {
this.GetTaskDetail(this.$route.query.taskId)
}

View File

@ -230,18 +230,21 @@
<!-- 状态
37-待审核
38-已审核 -->
<el-button type="text" v-if="scope.row.taskStatus == '37'">
<el-button type="text" v-if="scope.row.applyStatus == '0'">
待审核
</el-button>
<el-button
type="text"
style="color: #67c23a"
v-if="scope.row.taskStatus == '38'"
v-if="scope.row.applyStatus == '1'||scope.row.applyStatus == '3'"
>
已审核
退料通过
</el-button>
<el-button type="text" v-if="scope.row.taskStatus == '39'">
<!-- <el-button type="text" v-if="scope.row.taskStatus == '39'">
退料核查
</el-button> -->
<el-button type="text" style="color: red" v-if="scope.row.applyStatus == '2'||scope.row.applyStatus == '4'">
退料驳回
</el-button>
<el-button
type="text"
@ -276,9 +279,19 @@
size="mini"
type="primary"
icon="el-icon-edit"
v-if="scope.row.taskStatus == '37'"
v-if="scope.row.applyStatus == '0'"
v-hasPermi="['receive:examine:nbry-jjfgs']"
@click="handleUpdate(scope.row, 'update')"
>审核</el-button
>机具审批</el-button
>
<el-button
size="mini"
type="primary"
icon="el-icon-edit"
v-if="scope.row.applyStatus == '0'"
v-hasPermi="['receive:examine:nbry-sbfgs']"
@click="handleUpdate(scope.row, 'update')"
>调试审批</el-button
>
<el-button
size="mini"
@ -398,7 +411,7 @@
</el-row>
</el-form>
<el-table v-loading="loading" :data="loadingList" height="500px">
<el-table v-loading="loading" :data="loadingList" height="400px">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" type="index" />
<el-table-column
@ -438,9 +451,11 @@
v-if="loadingType == 'update' && loadingList.length > 0"
>
<el-button type="primary" @click="submitForm">通过</el-button>
<el-button type="danger" @click="submitForm2">不通过</el-button>
<el-button @click="cancel">取消</el-button>
</div>
</el-dialog>
<!-- 退料单 -->
<dialogForm
:dialogTitle="title"
@ -473,6 +488,7 @@
<el-button type="primary" @click="submitOpenOneForm()">确定</el-button>
</div>
</el-dialog>
<el-dialog
v-loading.fullscreen.lock="fullscreenLoading"
:title="title"
@ -496,7 +512,7 @@
<script>
import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
import { getBackAuditList, ApiGetView, ApiBackApplyAudit } from "@/api/claimAndRefund/return.js"
import { getBackAuditList, ApiGetView, ApiBackApplyAudit,ApiBackApplyRefuse } from "@/api/claimAndRefund/return.js"
import {
getInfo, h
} from "@/api/login";
@ -505,7 +521,7 @@ import dialogForm from "./dialogForm.vue";
// 10:42startTime,endTime typeId
// http://localhost/claimAndRefund/return/returnApply
export default {
name: "ReturnExamine",
// name: "ReturnExamine",
dicts: ['sys_normal_disable'],
components: { dialogForm, },
data() {
@ -712,7 +728,7 @@ export default {
this.openTextThree = "提交成功!";
this.openTwo = true
},
/** 提交按钮 */
/** 提交按钮 同意 */
submitForm() {
let params = {
ids: this.rowObj.id
@ -723,6 +739,18 @@ export default {
this.getList()
}
}).catch(() => { })
},
/** 提交按钮 拒绝 */
submitForm2() {
let params = {
ids: this.rowObj.id
}
ApiBackApplyRefuse(params).then(res => {
if (res.code == 200) {
this.open = false
this.getList()
}
}).catch(() => { })
},
handleAdd() {
let params = {
@ -768,7 +796,7 @@ export default {
},
/** 导出按钮操作 */
handleExport() {
this.download('material/backApply/export', {
this.download('material/backApply/exportExamine', {
...this.queryParams
}, `退料审核单_${new Date().getTime()}.xlsx`)
},

View File

@ -15,17 +15,17 @@
</el-col>
</el-row>
<div style="color: rgb(217, 0, 27);font-weight: 700;padding: 20px 0;">
结算费用合计¥230020租赁费用¥123456维修费用¥1234报废费用¥123丢失费用0
结算费用合计¥{{costAll}}租赁费用¥{{leaseCost}}维修费用¥{{repairCost}}报废费用¥{{scrapCost}}丢失费用{{loseCost}}
</div>
<div>
<el-table v-loading="loading" :data="leaseList" @selection-change="handleSelectionChange">
<el-table :data="leaseList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="租赁费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位名称" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程名称" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="nuitName" :show-overflow-tooltip="true" />
@ -38,16 +38,16 @@
<el-table-column label="外部租赁费用" align="center" prop="costs" :show-overflow-tooltip="true" />
</el-table-column>
</el-table>
<div style="width: 100%;text-align: right;padding: 20px 20px;">租赁费用小计97010.08</div>
<div style="width: 100%;text-align: right;padding: 20px 20px;">租赁费用小计{{leaseCost}}</div>
</div>
<div>
<el-table v-loading="loading" :data="repairList" @selection-change="handleSelectionChange">
<el-table :data="repairList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="维修费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位名称" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程名称" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="nuitName" :show-overflow-tooltip="true" />
@ -63,16 +63,16 @@
</el-table-column>
</el-table>
<div style="width: 100%;text-align: right;padding: 20px 20px;">维修费用小计230</div>
<div style="width: 100%;text-align: right;padding: 20px 20px;">维修费用小计{{repairCost}}</div>
</div>
<div>
<el-table v-loading="loading" :data="scrapList" @selection-change="handleSelectionChange">
<el-table :data="scrapList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="报废费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位名称" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程名称" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="nuitName" :show-overflow-tooltip="true" />
@ -86,16 +86,16 @@
<el-table-column label="维修费用" align="center" prop="costs" :show-overflow-tooltip="true" />
</el-table-column>
</el-table>
<div style="width: 100%;text-align: right;padding: 20px 20px;">报废费用小计230</div>
<div style="width: 100%;text-align: right;padding: 20px 20px;">报废费用小计{{scrapCost}}</div>
</div>
<div>
<el-table v-loading="loading" :data="loseList" @selection-change="handleSelectionChange">
<el-table :data="loseList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="丢失费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位名称" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程名称" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="nuitName" :show-overflow-tooltip="true" />
@ -103,29 +103,45 @@
<el-table-column label="丢失费用" align="center" prop="costs" :show-overflow-tooltip="true" />
</el-table-column>
</el-table>
<div style="width: 100%;text-align: right;padding: 20px 20px;">丢失费用小计230</div>
<div style="width: 100%;text-align: right;padding: 20px 20px;">丢失费用小计{{loseCost}}</div>
</div>
<el-dialog title="费用结算提交" :visible.sync="applyVisible" width="1000px">
<!-- 审批弹窗 -->
<el-dialog title="费用结算提交" align="center" :visible.sync="applyVisible" width="1200px">
<div>
<el-table v-loading="loading" :data="applyList" @selection-change="handleSelectionChange">
<el-table :data="applyList" show-summary sum-text="合计" :summary-method="getSummaries">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="报废费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位名称" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程名称" align="center" prop="contractCode" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="报废数量" align="center" prop="num" :show-overflow-tooltip="true" />
<el-table-column label="报废原因" align="center" prop="planStartTime" :show-overflow-tooltip="true" />
<el-table-column label="维修费用" align="center" prop="costs" :show-overflow-tooltip="true" />
</el-table-column>
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="租赁费用" align="center" prop="leaseCost" :show-overflow-tooltip="true" />
<el-table-column label="维修费用" align="center" prop="repairCost" :show-overflow-tooltip="true" />
<el-table-column label="报废费用" align="center" prop="scrapCost" :show-overflow-tooltip="true" />
<el-table-column label="丢失费用" align="center" prop="loseCost" :show-overflow-tooltip="true" />
<el-table-column label="增项费用" align="center" prop="addCost" :show-overflow-tooltip="true" width="150">
<template slot-scope="scope">
<el-input-number v-model="scope.row.addCost" controls-position="right" style="width: 100%;" :min="0" @input="countNum(scope.row)"></el-input-number>
</template>
</el-table-column>
<el-table-column label="减免费用" align="center" prop="subCost" :show-overflow-tooltip="true" width="150">
<template slot-scope="scope">
<el-input-number v-model="scope.row.subCost" controls-position="right" style="width: 100%;" :min="0" @input="countNum(scope.row)"></el-input-number>
</template>
</el-table-column>
<el-table-column label="增减原因" align="center" prop="remark" :show-overflow-tooltip="true" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.remark" style="width: 100%;"></el-input>
</template>
</el-table-column>
<el-table-column label="费用小计" align="center" prop="cost" :show-overflow-tooltip="true" width="120"/>
</el-table>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="applyVisible=false"> </el-button>
<el-button type="primary"> </el-button>
<el-button type="primary" @click="submitApply"> </el-button>
</div>
</el-dialog>
@ -137,7 +153,7 @@
<script>
import { getAgreementList,getUnitList, getProjectList } from "@/api/claimAndRefund/receive";
import { getSltInfo } from "@/api/cost/cost";
import { getSltInfo,submitFee } from "@/api/cost/cost";
export default {
name: "Agreement",
@ -145,7 +161,7 @@
data() {
return {
//
loading: true,
loading: false,
//
ids: [],
//
@ -216,17 +232,22 @@
]
},
leaseList:[],//
leaseCost:0,
repairList:[],//
repairCost:0,
scrapList:[],//
scrapCost:0,
loseList:[],//
loseCost:0,
costAll:0,
deptName: undefined,
applyVisible:false,
applyList:[]
};
},
created() {
this.rowData = this.$route.query.rowData;
console.log(this.rowData)
let arr = JSON.parse(this.$route.query.rowData);
this.rowData = arr;
this.getDataAll();
// this.getUnitList();
// this.getProjectList();
@ -247,24 +268,106 @@
/** 查询列表 */
getDataAll() {
this.loading = true;
getSltInfo(this.rowData).then(response => {
// this.agreementList = response.rows;
this.leaseList = response.data.leaseList;//
this.leaseCost = this.countCost(this.leaseList)
this.repairList = response.data.repairList;//
this.repairCost = this.countCost(this.repairList)
this.scrapList = response.data.scrapList;//
this.scrapCost = this.countCost(this.scrapList)
this.loseList = response.data.loseList;//
this.loading = false;
this.loseCost = this.countCost(this.loseList)
this.applyList = response.data.relations
this.applyList.forEach(item=>{
item.cost = Number(item.leaseCost)+Number(item.repairCost)+Number(item.scrapCost)+Number(item.loseCost)+Number(item.addCost)-Number(item.subCost);
})
let costSum = Number(this.leaseCost)+Number(this.repairCost)+Number(this.scrapCost)+Number(this.loseCost);
this.costAll = costSum.toFixed(2)
}
);
},
//
//1
countCost(list){
let arrCost = 0;
list.forEach(item=>{
arrCost = arrCost + Number(item.costs)
console.log(arrCost)
})
console.log(arrCost)
return arrCost.toFixed(2)
},
//
handleAdd() {
this.applyVisible = true
},
//el-table-
getSummaries(param) {
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 9) {
sums[index] = '最终费用';
return;
}
const values = data.map(item => Number(item[column.property]));
// amount
if (column.property === 'cost') {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
}else {
return prev;
}
}, 0);
// sums[index] += ' ';
} else {
sums[index] = '---'
}
}
});
return sums;
},
countNum(row){
row.cost = Number(row.leaseCost)+Number(row.repairCost)+Number(row.scrapCost)+Number(row.loseCost)+Number(row.addCost)-Number(row.subCost)
},
//
submitApply(){
let costAll = 0
this.applyList.forEach(item=>{
costAll=costAll+item.cost
})
console.log(costAll)
let param ={
relations:this.applyList,
cost:costAll
}
console.log(param)
submitFee(param).then(res => {
console.log(res)
if(res.code==200){
this.$tab.closeOpenPage({
path:'/cost/cost/costApplyList',
})
}
})
},
//
handleBack(){

View File

@ -1,5 +1,5 @@
<template>
<div class="app-container" id="agreement">
<div class="app-container" id="costApplyList">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="结算单位" prop="unitId">
<el-select v-model="queryParams.unitId" placeholder="请选择往来单位" clearable filterable>
@ -38,6 +38,7 @@
type="primary"
plain
size="mini"
@click="handleApplyList"
>批量结算</el-button>
</el-form-item>
</el-form>
@ -52,7 +53,13 @@
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="合计费用" align="center" prop="cost" :show-overflow-tooltip="true" />
<el-table-column label="结算状态" align="center" prop="sltStatus" :show-overflow-tooltip="true" />
<el-table-column label="结算状态" align="center" prop="sltStatus" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.sltStatus=='1'">待审核</span>
<span v-if="scope.row.sltStatus=='2'">审核通过</span>
<span v-if="scope.row.sltStatus=='3'">审核驳回</span>
</template>
</el-table-column>
<!-- <el-table-column label="租赁期限(天)" align="center" prop="leaseDay" :show-overflow-tooltip="true" />
<el-table-column label="授权人" align="center" prop="authPerson" :show-overflow-tooltip="true" />
<el-table-column label="联系电话 " align="center" prop="phone" :show-overflow-tooltip="true" />
@ -92,7 +99,7 @@ import { getSltAgreementInfo } from "@/api/cost/cost";
export default {
name: "Agreement",
name: "CostApplyList",
dicts: ['sys_normal_disable'],
data() {
return {
@ -214,17 +221,32 @@ export default {
},
//
handleApply(row){
let arr = [row];
console.log(arr)
console.log(this.ids)
console.log(JSON.stringify(arr))
this.$tab.closeOpenPage({
path:'/cost/cost/costApplyAdd',
query:{
rowData:[row]
rowData:JSON.stringify(arr)
}
})
},
handleApplyList(){
if(this.ids.length>0){
let arr = this.ids;
this.$tab.closeOpenPage({
path:'/cost/cost/costApplyAdd',
query:{
rowData:JSON.stringify(arr)
}
})
}
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.agreementId)
this.ids = selection.map(item => item)
this.single = selection.length!=1
this.multiple = !selection.length
},

View File

@ -1,281 +1,361 @@
<template>
<div class="app-container" id="agreement">
<el-row style="width: 100%;">
<el-col :span="18">
<el-button type="primary" size="mini" >租赁明细导出</el-button>
<el-button type="primary" size="mini" >丢失明细导出</el-button>
<el-button type="primary" size="mini" >维修明细导出</el-button>
<el-button type="primary" size="mini" >报废明细导出</el-button>
<el-button type="warning" size="mini" >全部明细导出</el-button>
<el-button type="success" size="mini" >提交</el-button>
</el-col>
<el-col :span="4">
<el-button type="danger" size="mini" style="float: right;" @click="handleBack">返回</el-button>
</el-col>
</el-row>
<div style="color: rgb(217, 0, 27);font-weight: 700;padding: 20px 0;">
结算费用合计¥230020租赁费用¥123456维修费用¥1234报废费用¥123丢失费用0
<div class="app-container" id="agreement">
<el-row style="width: 100%;">
<el-col :span="18">
<el-button type="primary" size="mini" >租赁明细导出</el-button>
<el-button type="primary" size="mini" >丢失明细导出</el-button>
<el-button type="primary" size="mini" >维修明细导出</el-button>
<el-button type="primary" size="mini" >报废明细导出</el-button>
<el-button type="warning" size="mini" >全部明细导出</el-button>
<el-button type="success" size="mini" @click="handleExame">审批</el-button>
</el-col>
<el-col :span="4">
<el-button type="danger" size="mini" style="float: right;" @click="handleBack">返回</el-button>
</el-col>
</el-row>
<div style="color: rgb(217, 0, 27);font-weight: 700;padding: 20px 0;">
结算费用合计¥{{costAll}}:
<div v-for="(item,index) in applyList" :key="index">
租赁费用¥{{item.leaseCost}}维修费用¥{{item.repairCost}}报废费用¥{{item.scrapCost}}丢失费用{{item.loseCost}},增加项费用¥{{item.addCost}}减免费用¥{{item.subCost}}增减原因{{item.remark}}
</div>
<div>
<el-table v-loading="loading" :data="agreementList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="租赁费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位名称" align="center" prop="agreementCode" :show-overflow-tooltip="true" />
<el-table-column label="结算工程名称" align="center" prop="contractCode" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="fileName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="signTime" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="租赁单价" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="租赁数量" align="center" prop="planStartTime" :show-overflow-tooltip="true" />
<el-table-column label="租赁日期" align="center" prop="leaseDay" :show-overflow-tooltip="true" />
<el-table-column label="归还数量" align="center" prop="authPerson" :show-overflow-tooltip="true" />
<el-table-column label="归还日期 " align="center" prop="phone" :show-overflow-tooltip="true" />
<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>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<div style="width: 100%;text-align: right;padding: 20px 20px;">租赁费用小计97010.08</div>
</div>
<div>
<el-table v-loading="loading" :data="agreementList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="维修费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位名称" align="center" prop="agreementCode" :show-overflow-tooltip="true" />
<el-table-column label="结算工程名称" align="center" prop="contractCode" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="fileName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="signTime" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="维修数量" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="维修费用" align="center" prop="planStartTime" :show-overflow-tooltip="true" />
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<div style="width: 100%;text-align: right;padding: 20px 20px;">维修费用小计230</div>
</div>
<div>
<el-table v-loading="loading" :data="agreementList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="报废费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位名称" align="center" prop="agreementCode" :show-overflow-tooltip="true" />
<el-table-column label="结算工程名称" align="center" prop="contractCode" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="fileName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="signTime" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="报废数量" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="报废原因" align="center" prop="planStartTime" :show-overflow-tooltip="true" />
<el-table-column label="维修费用" align="center" prop="planStartTime" :show-overflow-tooltip="true" />
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<div style="width: 100%;text-align: right;padding: 20px 20px;">报废费用小计230</div>
</div>
<div>
<el-table v-loading="loading" :data="agreementList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="丢失费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位名称" align="center" prop="agreementCode" :show-overflow-tooltip="true" />
<el-table-column label="结算工程名称" align="center" prop="contractCode" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="fileName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="signTime" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="丢失数量" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="丢失费用" align="center" prop="planStartTime" :show-overflow-tooltip="true" />
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<div style="width: 100%;text-align: right;padding: 20px 20px;">丢失费用小计230</div>
</div>
</div>
</template>
<script>
import { getAgreementList,getUnitList, getProjectList } from "@/api/claimAndRefund/receive";
export default {
name: "Agreement",
dicts: ['sys_normal_disable'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
unitList: [],
//
projectList: [],
statusList:[{id:'0',name:'请选择'},{id:'1',name:'已结算'},{id:'2',name:'未结算'},{id:'3',name:'待审核'}], //
//
agreementList: [],
//
title: "",
//
open: false,
//
dateRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
keyWord: undefined,
},
//
form: {},
//
uploadHeader: process.env.VUE_APP_BASE_API,
imageUrl:'',
imageName:'',
fileList:[],
field101fileList:[],
dialogImageUrl: '',
dialogVisible: false,
//
// uploadUrl:'http://192.168.0.14:21624/system',//线+system
// uploadUrl:'http://112.29.103.165:21626/system',//线+system
uploadUrl: process.env.VUE_APP_BASE_API + "/system", //
//
rules: {
contractCode: [
{ required: true, message: "合同编号不能为空", trigger: "blur" }
],
signTime: [
{ required: true, message: "签订日期不能为空", trigger: "blur" }
],
unitName: [
{ required: true, message: "往来单位不能为空", trigger: "blur" }
],
projectName: [
{ required: true, message: "工程名称不能为空", trigger: "blur" }
]
},
peopleOpen:false,
noticeOpen:false,
nform:{
notice:''
},
nrules: {
notice: [
{ required: true, message: "通知内容不能为空", trigger: "blur" }
]
},
deptName: undefined,
};
},
created() {
this.getList();
// this.getUnitList();
// this.getProjectList();
},
methods: {
// ,getUnitList, getProjectList
getUnitList(){
getUnitList().then(response => {
this.unitList = response.data;
})
},
getProjectList(){
getProjectList().then(response => {
this.projectList = response.data;
})
},
/** 查询字典类型列表 */
getList() {
this.loading = true;
getAgreementList(this.queryParams).then(response => {
this.agreementList = response.rows;
this.total = response.total;
this.loading = false;
</div>
<div>
<el-table :data="leaseList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="租赁费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="nuitName" :show-overflow-tooltip="true" />
<el-table-column label="租赁单价" align="center" prop="leasePrice" :show-overflow-tooltip="true" />
<el-table-column label="租赁数量" align="center" prop="num" :show-overflow-tooltip="true" />
<el-table-column label="租赁日期" align="center" prop="startTime" :show-overflow-tooltip="true" />
<!-- <el-table-column label="归还数量" align="center" prop="" :show-overflow-tooltip="true" /> -->
<el-table-column label="归还日期 " align="center" prop="endTime" :show-overflow-tooltip="true" />
<el-table-column label="租赁天数" align="center" prop="leaseDays" :show-overflow-tooltip="true" />
<el-table-column label="外部租赁费用" align="center" prop="costs" :show-overflow-tooltip="true" />
</el-table-column>
</el-table>
<div style="width: 100%;text-align: right;padding: 20px 20px;">租赁费用小计{{leaseCost}}</div>
</div>
<div>
<el-table :data="repairList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="维修费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="nuitName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="nuitName" :show-overflow-tooltip="true" />
<el-table-column label="维修状态" align="center" prop="repairStatus" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.repairStatus==0">未审核</span>
<span v-if="scope.row.repairStatus==1">已审核</span>
</template>
</el-table-column>
<el-table-column label="维修数量" align="center" prop="num" :show-overflow-tooltip="true" />
<el-table-column label="维修费用" align="center" prop="costs" :show-overflow-tooltip="true" />
</el-table-column>
</el-table>
<div style="width: 100%;text-align: right;padding: 20px 20px;">维修费用小计{{repairCost}}</div>
</div>
<div>
<el-table :data="scrapList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="报废费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="nuitName" :show-overflow-tooltip="true" />
<el-table-column label="报废数量" align="center" prop="num" :show-overflow-tooltip="true" />
<el-table-column label="报废原因" align="center" prop="scrapType" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.scrapType==0">自然</span>
<span v-if="scope.row.scrapType==1">人为</span>
</template>
</el-table-column>
<el-table-column label="维修费用" align="center" prop="costs" :show-overflow-tooltip="true" />
</el-table-column>
</el-table>
<div style="width: 100%;text-align: right;padding: 20px 20px;">报废费用小计{{scrapCost}}</div>
</div>
<div>
<el-table :data="loseList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="丢失费用明细" align="center">
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="设备名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
<el-table-column label="规格型号" align="center" prop="modelName" :show-overflow-tooltip="true" />
<el-table-column label="计量单位" align="center" prop="nuitName" :show-overflow-tooltip="true" />
<el-table-column label="丢失数量" align="center" prop="num" :show-overflow-tooltip="true" />
<el-table-column label="丢失费用" align="center" prop="costs" :show-overflow-tooltip="true" />
</el-table-column>
</el-table>
<div style="width: 100%;text-align: right;padding: 20px 20px;">丢失费用小计{{loseCost}}</div>
</div>
<!-- 审批弹窗 -->
<el-dialog title="费用结算审核" :visible.sync="applyVisible" width="650px" append-to-body>
<el-form ref="aform" :model="aform" label-width="120px">
<el-form-item label="结算审核" prop="status">
<el-radio v-model="aform.status" label="1">通过</el-radio>
<el-radio v-model="aform.status" label="2">不通过</el-radio>
</el-form-item>
<el-form-item label="原因" prop="remark">
<el-input
v-model="aform.remark" maxlength="200"
placeholder="请输入" show-word-limit
size="small" style="width: 350px"
type="textarea"
></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="submitListForm"> </el-button>
<el-button @click="applyVisible=false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getAgreementList,getUnitList, getProjectList } from "@/api/claimAndRefund/receive";
import { getSltExamInfo,settlementReview } from "@/api/cost/cost";
export default {
name: "Agreement",
dicts: ['sys_normal_disable'],
data() {
return {
//
loading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
unitList: [],
//
projectList: [],
statusList:[{id:'0',name:'请选择'},{id:'1',name:'已结算'},{id:'2',name:'未结算'},{id:'3',name:'待审核'}], //
//
agreementList: [],
//
title: "",
//
open: false,
//
dateRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
keyWord: undefined,
},
//
form: {},
//
uploadHeader: process.env.VUE_APP_BASE_API,
imageUrl:'',
imageName:'',
fileList:[],
field101fileList:[],
dialogImageUrl: '',
dialogVisible: false,
//
// uploadUrl:'http://192.168.0.14:21624/system',//线+system
// uploadUrl:'http://112.29.103.165:21626/system',//线+system
uploadUrl: process.env.VUE_APP_BASE_API + "/system", //
//
rules: {
contractCode: [
{ required: true, message: "合同编号不能为空", trigger: "blur" }
],
signTime: [
{ required: true, message: "签订日期不能为空", trigger: "blur" }
],
unitName: [
{ required: true, message: "往来单位不能为空", trigger: "blur" }
],
projectName: [
{ required: true, message: "工程名称不能为空", trigger: "blur" }
]
},
peopleOpen:false,
noticeOpen:false,
nform:{
notice:''
},
nrules: {
notice: [
{ required: true, message: "通知内容不能为空", trigger: "blur" }
]
},
aform:{status:'1'},
Id:'',
leaseList:[],//
leaseCost:0,
repairList:[],//
repairCost:0,
scrapList:[],//
scrapCost:0,
loseList:[],//
loseCost:0,
costAll:0,
deptName: undefined,
applyVisible:false,
applyList:[]
};
},
created() {
this.Id = this.$route.query.Id;
this.getDataAll();
// this.getUnitList();
// this.getProjectList();
},
methods: {
// ,getUnitList, getProjectList
getUnitList(){
getUnitList().then(response => {
this.unitList = response.data;
})
},
getProjectList(){
getProjectList().then(response => {
this.projectList = response.data;
})
},
/** 查询列表 */
getDataAll() {
let param={
id:this.Id
}
getSltExamInfo(param).then(response => {
// this.agreementList = response.rows;
this.leaseList = response.data.leaseList;//
this.leaseCost = this.countCost(this.leaseList)
this.repairList = response.data.repairList;//
this.repairCost = this.countCost(this.repairList)
this.scrapList = response.data.scrapList;//
this.scrapCost = this.countCost(this.scrapList)
this.loseList = response.data.loseList;//
this.loseCost = this.countCost(this.loseList)
this.applyList = response.data.relations;
// this.applyList.forEach(item=>{
// item.cost = Number(item.leaseCost)+Number(item.repairCost)+Number(item.scrapCost)+Number(item.loseCost)+Number(item.addCost)-Number(item.subCost);
// })
// let costSum = Number(this.leaseCost)+Number(this.repairCost)+Number(this.scrapCost)+Number(this.loseCost);
this.costAll = response.data.cost
}
);
},
//1
countCost(list){
let arrCost = 0;
list.forEach(item=>{
arrCost = arrCost + Number(item.costs)
// console.log(arrCost)
})
// console.log(arrCost)
return arrCost.toFixed(2)
},
//
handleExame() {
this.applyVisible = true
},
// countNum(row){
// row.cost = Number(row.leaseCost)+Number(row.repairCost)+Number(row.scrapCost)+Number(row.loseCost)+Number(row.addCost)-Number(row.subCost)
// },
//
submitListForm(){
// let costAll = 0
// this.applyList.forEach(item=>{
// costAll=costAll+item.cost
// })
// console.log(costAll)
let param ={
id:this.Id,
status:this.aform.status,
remark:this.aform.remark,
}
console.log(param)
settlementReview(param).then(res => {
console.log(res)
if(res.code==200){
this.$tab.closeOpenPage({
path:'/cost/cost/costList',
})
}
})
},
//
handleBack(){
this.$tab.closeOpenPage({
path:'/cost/cost/costList',
query:{
isEdit:true
}
);
},
handleBack(){
this.$tab.closeOpenPage({
path:'/cost/cost/costList',
query:{
isEdit:true
}
})
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.agreementId)
this.single = selection.length!=1
this.multiple = !selection.length
},
/** 删除按钮操作 */
handleDelete(row) {
// const agreementId = row.agreementId;
// let param = {
// agreementId:row.agreementId+''
// }
// this.$modal.confirm('').then(function() {
// return removeAgreement(param);
// }).then(() => {
// this.getList();
// this.$modal.msgSuccess("");
// }).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
// this.download('material/agreementInfo/export', {
// ...this.queryParams
// }, `_${new Date().getTime()}.xlsx`)
},
}
};
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
width: 80px !important;
margin-bottom: 10px;
})
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.agreementId)
this.single = selection.length!=1
this.multiple = !selection.length
},
/** 导出按钮操作 */
handleExport() {
// this.download('material/agreementInfo/export', {
// ...this.queryParams
// }, `_${new Date().getTime()}.xlsx`)
},
}
</style>
};
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
width: 80px !important;
margin-bottom: 10px;
}
</style>

View File

@ -1,250 +1,272 @@
<template>
<div class="app-container" id="agreement">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="结算单位" prop="unitId">
<el-select v-model="queryParams.unitId" placeholder="请选择往来单位" clearable filterable>
<el-option
v-for="item in unitList"
:key="item.unitId"
:label="item.unitName"
:value="item.unitId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="结算工程" prop="projectId">
<el-select v-model="queryParams.projectId" placeholder="请选择工程名称" clearable filterable>
<el-option
v-for="item in projectList"
:key="item.projectId"
:label="item.projectName"
:value="item.projectId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="结算状态" prop="projectId">
<el-select v-model="queryParams.projectId" placeholder="请选择结算状态" clearable filterable>
<el-option
v-for="item in statusList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button
type="primary"
plain
size="mini"
@click="handleExame"
>审核</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="agreementList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="协议编号" align="center" prop="agreementCode" :show-overflow-tooltip="true" />
<!-- <el-table-column label="合同编号" align="center" prop="contractCode" :show-overflow-tooltip="true" />
<el-table-column label="附件图片" align="center" prop="fileName" :show-overflow-tooltip="true" />
<el-table-column label="签订日期" align="center" prop="signTime" :show-overflow-tooltip="true" /> -->
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="合计费用" align="center" prop="planStartTime" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" prop="leaseDay" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="primary"
>通过</el-button>
<el-button
<div class="app-container" id="costApplyList">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="结算单位" prop="unitId">
<el-select v-model="queryParams.unitId" placeholder="请选择往来单位" clearable filterable>
<el-option
v-for="item in unitList"
:key="item.unitId"
:label="item.unitName"
:value="item.unitId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="结算工程" prop="projectId">
<el-select v-model="queryParams.projectId" placeholder="请选择工程名称" clearable filterable>
<el-option
v-for="item in projectList"
:key="item.projectId"
:label="item.projectName"
:value="item.projectId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="结算状态" prop="sltStatus">
<el-select v-model="queryParams.sltStatus" placeholder="请选择结算状态" clearable filterable>
<el-option
v-for="item in statusList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<!-- <el-button
type="primary"
plain
size="mini"
@click="handleApplyList"
>审核</el-button> -->
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="agreementList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" type="index" width="60"/>
<el-table-column label="结算单编号" align="center" prop="code" :show-overflow-tooltip="true" />
<el-table-column label="结算单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="结算工程" align="center" prop="projectName" :show-overflow-tooltip="true" />
<el-table-column label="合计费用" align="center" prop="cost" :show-overflow-tooltip="true" />
<el-table-column label="结算状态" align="center" prop="status" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.status=='0'">待审核</span>
<span v-if="scope.row.status=='1'">审核通过</span>
<span v-if="scope.row.status=='2'">审核驳回</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="300" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="danger"
>不通过</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { getAgreementList,getUnitList, getProjectList } from "@/api/claimAndRefund/receive";
export default {
name: "Agreement",
dicts: ['sys_normal_disable'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
unitList: [],
//
projectList: [],
statusList:[{id:'0',name:'请选择'},{id:'1',name:'已结算'},{id:'2',name:'未结算'},{id:'3',name:'待审核'}], //
//
agreementList: [],
//
title: "",
//
open: false,
//
dateRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
keyWord: undefined,
},
//
form: {},
//
uploadHeader: process.env.VUE_APP_BASE_API,
imageUrl:'',
imageName:'',
fileList:[],
field101fileList:[],
dialogImageUrl: '',
dialogVisible: false,
//
// uploadUrl:'http://192.168.0.14:21624/system',//线+system
// uploadUrl:'http://112.29.103.165:21626/system',//线+system
uploadUrl: process.env.VUE_APP_BASE_API + "/system", //
//
rules: {
contractCode: [
{ required: true, message: "合同编号不能为空", trigger: "blur" }
],
signTime: [
{ required: true, message: "签订日期不能为空", trigger: "blur" }
],
unitName: [
{ required: true, message: "往来单位不能为空", trigger: "blur" }
],
projectName: [
{ required: true, message: "工程名称不能为空", trigger: "blur" }
]
},
peopleOpen:false,
noticeOpen:false,
nform:{
notice:''
},
nrules: {
notice: [
{ required: true, message: "通知内容不能为空", trigger: "blur" }
]
},
deptName: undefined,
};
type="primary"
icon="el-icon-edit"
@click="handleExame(scope.row)"
>审批</el-button>
<!-- <el-button
size="mini"
type="danger"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
>撤销申请</el-button> -->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import { getAgreementList,getUnitList, getProjectList } from "@/api/claimAndRefund/receive";
import { getSltExam } from "@/api/cost/cost";
export default {
name: "CostApplyList",
dicts: ['sys_normal_disable'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
unitList: [],
//
projectList: [],
statusList:[{id:'',name:'请选择'},{id:'0',name:'待审核'},{id:'1',name:'审核通过'},{id:'2',name:'审核驳回'}], //
//
agreementList: [],
//
title: "",
//
open: false,
//
dateRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
keyWord: undefined,
sltStatus:''
},
//
form: {},
//
uploadHeader: process.env.VUE_APP_BASE_API,
imageUrl:'',
imageName:'',
fileList:[],
field101fileList:[],
dialogImageUrl: '',
dialogVisible: false,
//
// uploadUrl:'http://192.168.0.14:21624/system',//线+system
// uploadUrl:'http://112.29.103.165:21626/system',//线+system
uploadUrl: process.env.VUE_APP_BASE_API + "/system", //
//
rules: {
contractCode: [
{ required: true, message: "合同编号不能为空", trigger: "blur" }
],
signTime: [
{ required: true, message: "签订日期不能为空", trigger: "blur" }
],
unitName: [
{ required: true, message: "往来单位不能为空", trigger: "blur" }
],
projectName: [
{ required: true, message: "工程名称不能为空", trigger: "blur" }
]
},
peopleOpen:false,
noticeOpen:false,
nform:{
notice:''
},
nrules: {
notice: [
{ required: true, message: "通知内容不能为空", trigger: "blur" }
]
},
deptName: undefined,
};
},
created() {
this.getList();
this.getUnitList();
this.getProjectList();
},
methods: {
// ,getUnitList, getProjectList
getUnitList(){
getUnitList().then(response => {
this.unitList = response.data;
})
},
created() {
getProjectList(){
getProjectList().then(response => {
this.projectList = response.data;
})
},
/** 查询字典类型列表 */
getList() {
this.loading = true;
getSltExam(this.queryParams).then(response => {
this.agreementList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.getUnitList();
this.getProjectList();
},
methods: {
// ,getUnitList, getProjectList
getUnitList(){
getUnitList().then(response => {
this.unitList = response.data;
})
},
getProjectList(){
getProjectList().then(response => {
this.projectList = response.data;
})
},
/** 查询字典类型列表 */
getList() {
this.loading = true;
getAgreementList(this.queryParams).then(response => {
this.agreementList = response.rows;
this.total = response.total;
this.loading = false;
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
//
handleExame(row){
this.$tab.closeOpenPage({
path:'/cost/cost/costExame',
query:{
Id:row.id
}
);
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
//
handleExame(){
})
},
handleApplyList(){
if(this.ids.length>0){
let arr = this.ids;
this.$tab.closeOpenPage({
path:'/cost/cost/costExame',
path:'/cost/cost/costApplyAdd',
query:{
isEdit:true
rowData:JSON.stringify(arr)
}
})
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.agreementId)
this.single = selection.length!=1
this.multiple = !selection.length
},
/** 删除按钮操作 */
handleDelete(row) {
// const agreementId = row.agreementId;
// let param = {
// agreementId:row.agreementId+''
// }
// this.$modal.confirm('').then(function() {
// return removeAgreement(param);
// }).then(() => {
// this.getList();
// this.$modal.msgSuccess("");
// }).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
// this.download('material/agreementInfo/export', {
// ...this.queryParams
// }, `_${new Date().getTime()}.xlsx`)
},
}
};
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
width: 80px !important;
margin-bottom: 10px;
}
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item)
this.single = selection.length!=1
this.multiple = !selection.length
},
/** 删除按钮操作 */
handleDelete(row) {
// const agreementId = row.agreementId;
// let param = {
// agreementId:row.agreementId+''
// }
// this.$modal.confirm('').then(function() {
// return removeAgreement(param);
// }).then(() => {
// this.getList();
// this.$modal.msgSuccess("");
// }).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
// this.download('material/agreementInfo/export', {
// ...this.queryParams
// }, `_${new Date().getTime()}.xlsx`)
},
}
</style>
};
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
width: 80px !important;
margin-bottom: 10px;
}
</style>

View File

@ -40,9 +40,11 @@ module.exports = {
// target: `http://192.168.0.14:21624`,//线上环境
// target: `http://1.12.248.179:23028`,//线上环境-南网
// target: `https://test-cc.zhgkxt.com`,//线上环境-南网
// target: `https://z.csgmall.com.cn/gl`,
// target: `http://10.40.92.14:8080`,//超
// target: `http://10.40.92.12:8080`,//韩
target: `http://10.40.92.206:8080`,//川
// target: `http://10.40.92.4:8080`,//韩
target: `http://10.40.92.209:8080`,//川
changeOrigin: true,
pathRewrite: {