重庆领料审批更改2

This commit is contained in:
zhouzy062 2024-03-16 13:04:28 +08:00
parent f0654697b7
commit a9de36b025
7 changed files with 1434 additions and 12 deletions

View File

@ -275,8 +275,7 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.$tab.closeOpenPage({
path:'/claimAndRefund/receive/receiveApplyAddByCq',//
// path:'/claimAndRefund/receive/receiveApplyAdd',
path:'/claimAndRefund/receive/receiveApplyAdd',
query:{
isEdit:true
}
@ -291,8 +290,7 @@ export default {
},
handleView(row) {
this.$tab.closeOpenPage({
path:'/claimAndRefund/receive/receiveApplyAddByCq',//
// path:'/claimAndRefund/receive/receiveApplyAdd',
path:'/claimAndRefund/receive/receiveApplyAdd',
query:{
taskId:row.taskId,
isEdit:false

View File

@ -126,7 +126,7 @@
<el-input placeholder="请输入审核意见" type="textarea" maxlength="200" :autosize="{ minRows: 4, maxRows: 6}" v-model="queryParams.companyAuditRemarks"></el-input>
<div slot="footer" class="dialog-footer">
<el-button @click="examineVisible=false"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany()" v-if="queryParams.taskStatus==30" v-hasPermi="['receive:examine:fgs']"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(9)" v-if="queryParams.taskStatus==30" v-hasPermi="['receive:examine:fgs']"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(5)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:sgb']"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(7)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:ajb']"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(1)" v-if="queryParams.taskStatus==32" v-hasPermi="['receive:examine:nbry-jjfgs']"> </el-button>
@ -139,7 +139,7 @@
<el-input placeholder="请输入审核意见" type="textarea" maxlength="200" :autosize="{ minRows: 4, maxRows: 6}" v-model="queryParams.companyAuditRemarks"></el-input>
<div slot="footer" class="dialog-footer">
<el-button @click="refuseVisible=false"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany()" v-if="queryParams.taskStatus==30" v-hasPermi="['receive:examine:fgs']"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(10)" v-if="queryParams.taskStatus==30" v-hasPermi="['receive:examine:fgs']"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(6)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:sgb']"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(8)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:ajb']"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(2)" v-if="queryParams.taskStatus==32" v-hasPermi="['receive:examine:nbry-jjfgs']"> </el-button>

View File

@ -0,0 +1,364 @@
<template>
<div class="app-container" id="receiveApply">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="申请日期">
<el-date-picker
v-model="queryParams.time"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="往来单位">
<el-select v-model="queryParams.unitId" filterable clearable @change="GetProData" style="width: 240px" placeholder="请选择">
<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="工程名称">
<el-select v-model="queryParams.proId" filterable clearable @change="GetUnitData" 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="keyWord">
<el-input
v-model="queryParams.keyWord"
placeholder="请输入关键字"
clearable
:maxlength="50"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</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-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新建</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-refresh"-->
<!-- size="mini"-->
<!-- @click="handleRefreshCache"-->
<!-- v-hasPermi="['store:labelType:remove']"-->
<!-- >刷新缓存</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="leaseAuditList" @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="code" :show-overflow-tooltip="true" />
<el-table-column label="领料单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="领料工程" align="center" prop="proName" :show-overflow-tooltip="true" />
<el-table-column label="协议号" align="center" prop="agreementCode" :show-overflow-tooltip="true" />
<el-table-column label="领料人" align="center" prop="leasePerson" :show-overflow-tooltip="true" />
<el-table-column label="联系电话" align="center" prop="leasePhone" :show-overflow-tooltip="true" />
<el-table-column label="申请人" align="center" prop="applyFor" :show-overflow-tooltip="true" />
<el-table-column label="申请时间" align="center" prop="createTimes" :show-overflow-tooltip="true" />
<el-table-column label="任务状态" align="center" prop="taskName" :show-overflow-tooltip="true" />
<el-table-column label="审批意见 " align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span v-if="scope.row.taskStatus<31"></span>
<span v-if="scope.row.taskStatus==31||scope.row.taskStatus==98">{{ scope.row.leaseApplyInfoList[0].companyAuditRemark }} </span>
<span v-if="scope.row.taskStatus==32||scope.row.taskStatus==99">{{ scope.row.leaseApplyInfoList[0].deptAuditRemark }} </span>
<span v-if="scope.row.taskStatus==33||scope.row.taskStatus==100">{{ scope.row.leaseApplyInfoList[0].directAuditRemark }} </span>
<span v-if="scope.row.taskStatus>33&&scope.row.taskStatus<98">{{ scope.row.leaseApplyInfoList[0].directAuditRemark }}</span>
<span v-if="scope.row.taskStatus>100">{{ scope.row.leaseApplyInfoList[0].directAuditRemark }}</span>
<!-- <span v-else>{{ scope.row.leaseApplyInfoList[0].directAuditRemark }}</span> -->
</template>
</el-table-column>
<el-table-column label="备注" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ scope.row.leaseApplyInfoList[0].remark }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="250" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
icon="el-icon-zoom-in"
@click="handleView(scope.row)"
>查看</el-button>
<el-button
size="mini"
type="primary"
icon="el-icon-edit"
v-if="scope.row.taskStatus==30"
@click="handleUpdate(scope.row)"
>编辑</el-button>
<el-button
size="mini"
type="info"
v-if="scope.row.taskStatus==98 || scope.row.taskStatus==99 || scope.row.taskStatus==100"
@click="handleUpdate2(scope.row)"
>驳回提交</el-button>
<el-button
size="mini"
type="danger"
icon="el-icon-delete"
v-if="scope.row.taskStatus==30"
@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"
:page-sizes="[5,10,15,20,30]"
@pagination="getList"
/>
</div>
</template>
<script>
import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
import { getLeaseAuditListAll,getUnitData,getProData,deleteTask } from "@/api/claimAndRefund/receive";
export default {
name: "ReceiveApply",
dicts: ['sys_normal_disable'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
leaseAuditList: [],
//
dateRange: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
dictName: undefined,
dictType: undefined,
status: undefined,
time:null, //
unitId:null, //id
proId:null, //id
types: 1, // 1 2
},
unitList:[], //
proList:[], //
};
},
created() {
this.getList();
this.GetUnitData()
this.GetProData()
},
methods: {
//
async getList() {
this.loading = true;
const params = {
unitId:this.queryParams.unitId,
projectId:this.queryParams.proId,
keyWord:this.queryParams.keyWord,
startTime:this.queryParams.time && this.queryParams.time[0],
endTime:this.queryParams.time && this.queryParams.time[1],
types:this.queryParams.types,
souceBy:0,
pageSize: this.queryParams.pageSize,
pageNum: this.queryParams.pageNum
}
const res = await getLeaseAuditListAll(params)
this.loading = false;
this.leaseAuditList = res.data.rows;
this.total = res.data.total;
},
//
async GetUnitData(){
const params = {
id:this.queryParams.proId
}
const res = await getUnitData(params)
this.unitList = res.data
console.log('GetUnitData ======================',res)
},
//
async GetProData(){
const params = {
id:this.queryParams.unitId
}
const res = await getProData(params)
this.proList = res.data
console.log('GetProData ======================',res)
},
//
reset() {
this.form = {
dictId: undefined,
dictName: undefined,
dictType: undefined,
status: "0",
remark: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd() {
this.$tab.closeOpenPage({
path:'/claimAndRefund/receiveByCq/receiveApplyAdd',//
// path:'/claimAndRefund/receive/receiveApplyAdd',
query:{
isEdit:true
}
})
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.dictId)
this.single = selection.length!=1
this.multiple = !selection.length
},
handleView(row) {
this.$tab.closeOpenPage({
path:'/claimAndRefund/receiveByCq/receiveApplyAdd',
query:{
taskId:row.taskId,
isEdit:false
}
})
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$tab.closeOpenPage({
path:'/claimAndRefund/receiveByCq/receiveApplyAdd',
query:{
taskId:row.taskId,
isEdit:true,
}
})
},
/** 驳回按钮操作 */
handleUpdate2(row) {
this.$tab.closeOpenPage({
path:'/claimAndRefund/receiveByCq/receiveApplyAdd',
query:{
taskId:row.taskId,
isEdit:true,
isBack:true,
}
})
},
/** 删除按钮操作 */
async handleDelete(row) {
this.$confirm('此操作将永久删除该领料任务, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then( async () => {
const res = await deleteTask(row.taskId)
if(res.code == 200){
this.$message({
type:'success',
message:'删除成功'
})
this.getList()
}
})
},
/** 导出按钮操作 */
handleExport() {
this.download('base/tm_task/applyExport', {
...this.queryParams
}, `领料申请单_${new Date().getTime()}.xlsx`)
},
/** 刷新缓存按钮操作 */
handleRefreshCache() {
refreshCache().then(() => {
this.$modal.msgSuccess("刷新成功");
this.$store.dispatch('dict/cleanDict');
});
}
}
};
</script>
<style lang="scss" scoped>
::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
</style>

View File

@ -354,10 +354,12 @@ export default {
this.GetDeviceTypeTree()
// this.getList();
if(this.$route.query.taskId){
if(this.$route.query.taskId&&!this.$route.query.isBack){
console.log('查看')
this.GetTaskDetail(this.$route.query.taskId)
}
if(this.$route.query.taskId&&this.$route.query.isBack){
console.log('驳回提交查看')
this.GetTaskDetail2(this.$route.query.taskId)
}
this.taskId = this.$route.query.taskId
@ -445,6 +447,8 @@ export default {
this.queryParams.leaseApplyInfo.leasePerson = data.leaseApplyInfoList[0].leasePerson
this.queryParams.agreementCode = data.agreementCode
this.queryParams.agreementId = data.agreementId
this.queryParams.leaseType = data.leaseType
this.$set(this.queryParams,'leaseType',data.leaseType)
this.queryParams.leaseApplyInfo.remark = data.leaseApplyInfoList[0].remark
this.leaseApplyInfoList = data.leaseApplyInfoList
this.leaseApplyDetails = data.leaseApplyDetails.map(item => {
@ -472,8 +476,10 @@ export default {
this.queryParams.leaseApplyInfo.leasePerson = data.leaseApplyInfoList[0].leasePerson
this.queryParams.agreementCode = data.agreementCode
this.queryParams.agreementId = data.agreementId
this.queryParams.leaseType = data.leaseType
this.$set(this.queryParams,'leaseType',data.leaseType)
this.queryParams.leaseApplyInfo.remark = data.leaseApplyInfoList[0].remark
this.leaseApplyInfoList = data.leaseApplyInfoList
this.leaseApplyInfoList = data.leaseApplyInfoList
this.leaseApplyDetails = data.leaseApplyDetails.map(item => {
return this.handelEchoData(item)
})
@ -590,7 +596,7 @@ export default {
type:'success',
message: '申请成功'
})
this.$tab.closeOpenPage({ path: "/claimAndRefund/receive/receiveApply"});
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveApply"});
}
}
})
@ -599,7 +605,7 @@ export default {
},
/** 修改按钮操作 */
handleBack(row) {
this.$tab.closeOpenPage({ path: "/claimAndRefund/receive/receiveApply"});
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveApply"});
},
/** 删除按钮操作 */
handleDelete(row) {

View File

@ -0,0 +1,526 @@
<template>
<div class="app-container" id="receiveExamine">
<el-row :gutter="10" class="mb8">
<h3>{{ queryParams.applyFor }}提交的领料申请</h3>
<div>领料单号{{ queryParams.code }}</div>
</el-row>
<el-row :gutter="24" class="mb8">
<el-col :span="18">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="领料工程" prop="dictName">
<el-input
v-model="queryParams.proName"
placeholder="请输入领料工程"
disabled
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="领料人" prop="dictName">
<el-input
v-model="queryParams.leaseApplyInfo.leasePerson"
placeholder="请输入领料人"
disabled
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="联系电话" prop="dictName">
<el-input
v-model="queryParams.leaseApplyInfo.phone"
placeholder="请输入联系电话"
disabled
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-back"
size="mini"
@click="handleBack"
>领料管理</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="queryParams.leaseApplyDetails" @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="typeModelName" :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="preNum" :show-overflow-tooltip="true" />
<el-table-column label="申请人" align="center" prop="applyFor" :show-overflow-tooltip="true" />
<el-table-column label="申请时间" align="center" prop="updateTimes" :show-overflow-tooltip="true" />
<el-table-column label="任务状态" align="center" prop="taskName" :show-overflow-tooltip="true" />
<!-- <el-table-column label="审批结果 " align="center" prop="dictName" :show-overflow-tooltip="true" />-->
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['store:labelType:edit']"-->
<!-- >编辑</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['store:labelType:remove']"-->
<!-- >删除</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"-->
<!-- />-->
</el-col>
<el-col :span="6">
<!-- <el-timeline size="large">-->
<!-- <el-timeline-item-->
<!-- v-for="(activity, index) in activities"-->
<!-- :key="index"-->
<!-- :timestamp="activity.timestamp">-->
<!-- {{activity.content}}-->
<!-- </el-timeline-item>-->
<!-- </el-timeline>-->
<el-timeline>
<el-timeline-item color="#0bbd87" icon="el-icon-check" placement="top">
<el-card>
<p class="title">提交审批</p>
<p class="author">申请人{{queryParams.applyFor}}</p>
<p class="time">申请时间{{queryParams.updateTimes}}</p>
</el-card>
</el-timeline-item>
<el-timeline-item v-for="(v,i) in flowPath" :type="v.type" :color="v.color" :icon="v.icon" :key="i" placement="top">
<el-card>
<p class="title">{{v.name}}</p>
<p class="author" v-if="queryParams[v.authorKey]">审核人{{queryParams[v.authorKey]}}</p>
<p class="time" v-if="queryParams[v.timeKey]">审核时间{{queryParams[v.timeKey]}}</p>
<p class="remark" v-if="queryParams[v.remarkKey]">审核意见{{ queryParams[v.remarkKey] }}</p>
</el-card>
</el-timeline-item>
</el-timeline>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer" style="text-align: right;margin-right: 200px;" v-if="queryParams.taskStatus<33&&!this.isView">
<el-button type="primary" @click="agree">同意</el-button>
<el-button @click="refuse">驳回</el-button>
</div>
<!-- 同意 -->
<el-dialog title="审核意见" :visible.sync="examineVisible" width="600px">
<el-input placeholder="请输入审核意见" type="textarea" maxlength="200" :autosize="{ minRows: 4, maxRows: 6}" v-model="queryParams.companyAuditRemarks"></el-input>
<div slot="footer" class="dialog-footer">
<el-button @click="examineVisible=false"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(9)" v-if="queryParams.taskStatus==30" v-hasPermi="['receive:examine:fgs']"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(5)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:sgb']"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(7)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:ajb']"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(1)" v-if="queryParams.taskStatus==32" v-hasPermi="['receive:examine:nbry-jjfgs']"> </el-button>
<el-button type="primary" @click="subAuditLeaseByCompany(3)" v-if="queryParams.taskStatus==32" v-hasPermi="['receive:examine:nbry-sbfgs']"> </el-button>
</div>
</el-dialog>
<!-- 驳回 -->
<el-dialog title="审核意见" :visible.sync="refuseVisible" width="600px">
<el-input placeholder="请输入审核意见" type="textarea" maxlength="200" :autosize="{ minRows: 4, maxRows: 6}" v-model="queryParams.companyAuditRemarks"></el-input>
<div slot="footer" class="dialog-footer">
<el-button @click="refuseVisible=false"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(10)" v-if="queryParams.taskStatus==30" v-hasPermi="['receive:examine:fgs']"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(6)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:sgb']"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(8)" v-if="queryParams.taskStatus==31" v-hasPermi="['receive:examine:ajb']"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(2)" v-if="queryParams.taskStatus==32" v-hasPermi="['receive:examine:nbry-jjfgs']"> </el-button>
<el-button type="primary" @click="refuseAuditLeaseByCompany(4)" v-if="queryParams.taskStatus==32" v-hasPermi="['receive:examine:nbry-sbfgs']"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
import { auditLeaseByCompany, getTaskDetail,rejectLeaseByCompany } from '@/api/claimAndRefund/receive'
import {mapState} from 'vuex'
export default {
name: "ReceiveExamine",
data() {
return {
flowPath:[
// {
// id:30,
// name:'',
// remarkKey:'companyAuditRemark',
// authorKey:'companyAuditBy',
// timeKey:'companyAuditTime'
// },
{
id:31,
name:'待分管部门审核',
remarkKey:'deptAuditRemark',
authorKey:'deptAuditBy',
timeKey:'deptAuditTime'
},{
id:32,
name:'待内部审核',
remarkKey:'directAuditRemark',
authorKey:'directAuditBy',
timeKey:'directAuditTime'
}
],
isView:false,
examineVisible:false,
refuseVisible:false,
//
loading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
typeList: [],
//
title: "",
//
open: false,
//
dateRange: [],
//
queryParams: {
leaseApplyInfo:{
},
leaseApplyDetails:[],
companyAuditRemarks:''
},
//
form: {},
//
rules: {
dictName: [
{ required: true, message: "字典名称不能为空", trigger: "blur" }
],
dictType: [
{ required: true, message: "字典类型不能为空", trigger: "blur" }
]
},
peopleOpen:false,
noticeOpen:false,
nform:{
notice:''
},
nrules: {
notice: [
{ required: true, message: "通知内容不能为空", trigger: "blur" }
]
},
deptName: undefined,
activities: [{
content: '小洁发起申请',
timestamp: '2018-04-15'
}, {
content: '分公司审批',
timestamp: '2018-04-13'
}, {
content: '部门审批',
timestamp: '2018-04-11'
}],
};
},
computed:{
...mapState(['user'])
},
created() {
let taskId = this.$route.query.taskId
let isView = this.$route.query.isView
this.isView = false
if(isView){
this.isView = true
}
console.log(isView)
if(taskId){
this.getData(taskId)
}
},
methods: {
agree(){
this.examineVisible = true
this.queryParams.companyAuditRemarks = '同意'
},
// handelExamine(type){
// if(type){
// this.subAuditLeaseByCompany()
// }else {
// this.queryParams.companyAuditRemarks = ''
// }
// this.examineVisible = type
// },
//
async subAuditLeaseByCompany(type){
console.log(type)
const params = JSON.parse(JSON.stringify(this.queryParams))
params.taskStatus = params.taskStatus+1
params.leaseApplyInfoList.forEach(v => {
console.log(v)
this.$set(v,'companyAuditRemark',params.companyAuditRemarks)
this.$set(v,'companyAuditBy',this.user.id)
this.$set(v,'examineStatusId',Number(params.examineStatusId))
this.$set(v,'status',type)
})
params.updateTime = params.updateTimes
params.createTime = params.createTimes
console.log(params)
const res = await auditLeaseByCompany(params)
if(res.code == 200){
this.examineVisible = false
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveManage"});
}
console.log('subAuditLeaseByCompany ==================',res)
},
//
refuse(){
this.refuseVisible = true
this.queryParams.companyAuditRemarks = '驳回'
},
// handelRefuse(type){
// if (this.queryParams.companyAuditRemarks=='') {
// this.$message.error('');
// return;
// }
// if(type){
// this.refuseAuditLeaseByCompany()
// }else {
// this.queryParams.companyAuditRemarks = ''
// }
// this.refuseVisible = type
// },
//
async refuseAuditLeaseByCompany(type){
const params = JSON.parse(JSON.stringify(this.queryParams))
if(params.taskStatus==30){
params.taskStatus=98;
params.examineStatusId=98
}
if(params.taskStatus==31){
params.taskStatus=99;
params.examineStatusId=99
}
if(params.taskStatus==32){
params.taskStatus=100;
params.examineStatusId=100
}
params.updateTime = params.updateTimes
params.createTime = params.createTimes
params.leaseApplyInfoList.forEach(v => {
this.$set(v,'companyAuditRemark',params.companyAuditRemarks)
this.$set(v,'companyAuditBy',this.user.id)
this.$set(v,'examineStatusId',Number(params.examineStatusId))
this.$set(v,'status',type)
})
console.log(params)
const res = await rejectLeaseByCompany(params)
if(res.code == 200){
this.examineVisible = false
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveManage"});
}
console.log('subAuditLeaseByCompany ==================',res)
},
/** 修改按钮操作 */
handleBack(row) {
this.$tab.closeOpenPage({ path: "/claimAndRefund/receiveByCq/receiveManage"});
},
/** 查询 */
async getData(taskId) {
const res = await getTaskDetail({
taskId
})
this.queryParams = {...this.queryParams,...res.rows[0]}
this.$set(this.queryParams,'leaseApplyInfo',this.queryParams.leaseApplyInfoList[0])
this.queryParams.leaseApplyDetails.forEach(v => {
this.$set(v,'applyFor',this.queryParams.applyFor)
this.$set(v,'updateTimes',this.queryParams.updateTimes)
this.$set(v,'taskName',this.queryParams.taskName)
this.$set(v,'createTime',this.queryParams.createTimes)
this.$set(v,'updateTime',this.queryParams.updateTimes)
})
console.log(this.queryParams.examineStatusId)
for (let i=0; i < this.flowPath.length; i++ ){
if(this.flowPath[i].id < this.queryParams.examineStatusId){
this.flowPath[i].color = '#0bbd87'
this.flowPath[i].icon = 'el-icon-check'
}else{
this.flowPath[i].remarkKey = ''
}
if(this.flowPath[i].id == this.queryParams.examineStatusId){
this.flowPath[i].type = 'primary'
this.flowPath[i].color = "#1890ff"
this.flowPath[i].icon = 'el-icon-more'
break
}
}
console.log(this.flowPath)
if(this.queryParams.examineStatusId==98){
this.flowPath[0].color = 'red'
this.flowPath[0].icon = 'el-icon-close'
this.flowPath[1].color = ''
this.flowPath[1].icon = ''
this.flowPath[2].color = ''
this.flowPath[2].icon = ''
}
if(this.queryParams.examineStatusId==99){
this.flowPath[1].color = 'red'
this.flowPath[1].icon = 'el-icon-close'
this.flowPath[2].color = ''
this.flowPath[2].icon = ''
}
if(this.queryParams.examineStatusId==100){
this.flowPath[2].color = 'red'
this.flowPath[2].icon = 'el-icon-close'
}
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
dictId: undefined,
dictName: undefined,
dictType: undefined,
status: "0",
remark: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
handleNotice(){
this.noticeOpen = true;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加字典类型";
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.dictId)
this.single = selection.length!=1
this.multiple = !selection.length
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const dictId = row.dictId || this.ids
getType(dictId).then(response => {
this.form = response.data;
this.open = true;
this.title = "验收";
});
},
/** 提交按钮 */
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.dictId != undefined) {
updateType(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addType(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const dictIds = row.dictId || this.ids;
this.$modal.confirm('是否确认删除该数据项?').then(function() {
return delType(dictIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/dict/type/export', {
...this.queryParams
}, `type_${new Date().getTime()}.xlsx`)
},
/** 刷新缓存按钮操作 */
handleRefreshCache() {
refreshCache().then(() => {
this.$modal.msgSuccess("刷新成功");
this.$store.dispatch('dict/cleanDict');
});
}
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-card__body{
padding: 10px !important;
p{
margin: 0 !important;
}
.title{
color: #848484;
font-weight: 700;
}
.author{
font-size: 13px;
margin-top: 5px;
}
.time{
font-size: 12px;
}
.remark{
margin-top: 10px;
word-break: break-all;
font-size: 13px;
}
}
</style>

View File

@ -0,0 +1,527 @@
<template>
<div class="app-container" id="receiveManage">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
<el-form-item label="申请日期" prop="time">
<el-date-picker
v-model="queryParams.time"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="往来单位" prop="unitId">
<el-select v-model="queryParams.unitId" filterable clearable @change="GetProData" style="width: 240px" placeholder="请选择">
<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" filterable clearable @change="GetUnitData" 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="keyword">
<el-input
v-model="queryParams.keyword"
placeholder="请输入关键字"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</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-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
>新建</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-refresh"-->
<!-- size="mini"-->
<!-- @click="handleRefreshCache"-->
<!-- v-hasPermi="['store:labelType:remove']"-->
<!-- >刷新缓存</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="leaseAuditList" @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="code" :show-overflow-tooltip="true" />
<el-table-column label="领料单位" align="center" prop="unitName" :show-overflow-tooltip="true" />
<el-table-column label="领料工程" align="center" prop="proName" :show-overflow-tooltip="true" />
<el-table-column label="协议号" align="center" prop="agreementCode" :show-overflow-tooltip="true" />
<el-table-column label="领料人" align="center" prop="leasePerson" :show-overflow-tooltip="true" />
<el-table-column label="联系电话" align="center" prop="leasePhone" :show-overflow-tooltip="true" />
<el-table-column label="申请人" align="center" prop="applyFor" :show-overflow-tooltip="true" />
<el-table-column label="申请时间" align="center" prop="createTimes" :show-overflow-tooltip="true" />
<el-table-column label="任务状态" align="center" prop="taskName" :show-overflow-tooltip="true" />
<!-- <el-table-column label="审批结果 " align="center" prop="dictName" :show-overflow-tooltip="true" />-->
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="left" width="250" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleView(scope.row)"
>查看</el-button>
<el-button
size="mini"
type="primary"
@click="handleExamine(scope.row)"
v-hasPermi="['receive:examine:fgs']"
v-if="Number(scope.row.examineStatusId)==30"
>审批</el-button>
<el-button
size="mini"
type="primary"
@click="handleExamine(scope.row)"
v-hasPermi="['receive:examine:sgb']"
v-if="Number(scope.row.examineStatusId)==31 && (scope.row.leaseApplyInfoList[0].status=='0'||scope.row.leaseApplyInfoList[0].status=='7'||scope.row.leaseApplyInfoList[0].status=='8'||scope.row.leaseApplyInfoList[0].status=='6')"
>审批</el-button>
<el-button
size="mini"
type="primary"
@click="handleExamine(scope.row)"
v-hasPermi="['receive:examine:ajb']"
v-if="Number(scope.row.examineStatusId)==31 && (scope.row.leaseApplyInfoList[0].status=='0'||scope.row.leaseApplyInfoList[0].status=='5'||scope.row.leaseApplyInfoList[0].status=='6'||scope.row.leaseApplyInfoList[0].status=='8')"
>审批</el-button>
<el-button
size="mini"
type="primary"
@click="handleExamine(scope.row,'jjfgs')"
v-hasPermi="['receive:examine:nbry-jjfgs']"
v-if="Number(scope.row.examineStatusId)==32 && (scope.row.leaseApplyInfoList[0].status=='5'||scope.row.leaseApplyInfoList[0].status=='7'||scope.row.leaseApplyInfoList[0].status=='4'||scope.row.leaseApplyInfoList[0].status=='2')"
>审批</el-button>
<el-button
size="mini"
type="primary"
@click="handleExamine(scope.row,'sbfgs')"
v-hasPermi="['receive:examine:nbry-sbfgs']"
v-if="Number(scope.row.examineStatusId)==32 && (scope.row.leaseApplyInfoList[0].status=='5'||scope.row.leaseApplyInfoList[0].status=='7'||scope.row.leaseApplyInfoList[0].status=='4'||scope.row.leaseApplyInfoList[0].status=='2')"
>审批</el-button>
<el-button
size="mini"
type="info"
@click="openLld(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"
/>
<!-- 领料单弹窗 -->
<el-dialog :visible.sync="open" width="800px" append-to-body>
<div style="height: 500px;overflow-y: scroll;padding: 0 20px;">
<vue-easy-print tableShow ref="remarksPrintRef" class="print">
<div class="title" style="text-align: center;font-weight: 600;font-size: 16px;">
领料单
</div>
<div class="info" style="margin-top: 10px;display: flex;flex-wrap: wrap;">
<div class="item" style="width: 50%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>领料单位</span>{{ leaseApplyData.unitName }}
</div>
<div class="item" style="width: 50%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>工程名称</span>{{ leaseApplyData.proName }}
</div>
<div class="item" style="width: 50%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>时间</span>{{ leaseApplyData.updateTimes }}
</div>
<div class="item" style="width: 50%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
<span>编号</span>{{ leaseApplyData.code }}
</div>
</div>
<el-table :data="leaseApplyDetails" class="table" border style="margin-top: 20px;padding: 1px">
<!-- <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" />
<el-table-column label="规格型号" align="center" prop="typeModelName" />
<el-table-column label="计量单位" align="center" prop="unitName" />
<el-table-column label="预领数量" align="center" prop="preNum" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="出库方式" align="center" prop="manageTypeName" />
</el-table>
<div class="fillIn" style="margin-top: 30px;display: flex;justify-content: space-between;">
<div class="item" style="width: 25%;">
<span>审核</span>
</div>
<div class="item" style="width: 25%;">
<span>领料</span>
</div>
<div class="item" style="width: 25%;">
<span>仓库</span>
</div>
<div class="item" style="width: 25%;">
<span>操作人</span>
</div>
</div>
</vue-easy-print>
</div>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" @click="print"> </el-button>
<el-button @click="open = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
import { getLeaseManageListAll, getUnitData, getProData, getTaskDetail } from '@/api/claimAndRefund/receive'
import { getInfo } from '@/api/login'
import vueEasyPrint from 'vue-easy-print';
export default {
// name: "ReceiveManage",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
typeList: [],
//
title: "",
//
open: false,
//
dateRange: [],
//
queryParams: {
time:[],
unitId:null,
proId:null,
keyword:'',
types:2,
pageNum: 1,
pageSize: 10,
dictName: undefined,
dictType: undefined,
status: undefined
},
user:{},
unitList:[],
proList: [],
leaseAuditList:[],
showJJExamineBtn:false, //-
showSBExamineBtn:false, //-
//
form: {},
//
rules: {
dictName: [
{ required: true, message: "字典名称不能为空", trigger: "blur" }
],
dictType: [
{ required: true, message: "字典类型不能为空", trigger: "blur" }
]
},
peopleOpen:false,
noticeOpen:false,
nform:{
notice:''
},
nrules: {
notice: [
{ required: true, message: "通知内容不能为空", trigger: "blur" }
]
},
deptName: undefined,
//
leaseApplyDetails:[],
//
leaseApplyData:{}
};
},
created() {
this.GetUserInfo()
// this.getList();
this.GetUnitData()
this.GetProData()
},
components:{vueEasyPrint},
methods: {
//
async GetUserInfo(){
const res = await getInfo()
this.user = res.user
this.user.roles.for
console.log(this.user)
this.getList();
},
/** 查询列表 */
async getList() {
this.loading = true;
const params = {
unitId:this.queryParams.unitId,
projectId:this.queryParams.proId,
keyWord:this.queryParams.keyword,
startTime:this.queryParams.time && this.queryParams.time[0],
endTime:this.queryParams.time && this.queryParams.time[1],
types:this.queryParams.types,
souceBy:0,
pageSize: this.queryParams.pageSize,
pageNum: this.queryParams.pageNum
}
const res = await getLeaseManageListAll(params)
this.loading = false;
console.log('getList ============',res)
this.leaseAuditList = res.data.rows;
// this.leaseAuditList.forEach((item,index)=>{
// console.log(item.leaseApplyInfoList)
// if(item.leaseApplyInfoList.length>0){
// // item.showExamineBtn = true;
// if(item.leaseApplyInfoList[0].status=="0"||item.leaseApplyInfoList[0].status=="5"||item.leaseApplyInfoList[0].status=="7"||item.leaseApplyInfoList[0].status=="8"){
// item.showExamineBtn = true;
// }
// }
// })
console.log(this.leaseAuditList)
this.total = res.data.total;
},
//
async GetUnitData(){
const params = {
id:this.queryParams.proId
}
const res = await getUnitData(params)
this.unitList = res.data
},
//
async GetProData(){
const params = {
id:this.queryParams.unitId
}
const res = await getProData(params)
this.proList = res.data
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
dictId: undefined,
dictName: undefined,
dictType: undefined,
status: "0",
remark: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
handleNotice(){
this.noticeOpen = true;
},
/** 新增按钮操作 */
handleAdd() {
// this.$tab.closeOpenPage("/claimAndRefund/receive/receiveManageAdd");
// this.reset();
// this.open = true;
// this.title = "";
},
handleExamine(row,type) {
this.$tab.closeOpenPage({
path:"/claimAndRefund/receiveByCq/receiveExamine",
query: {
taskId:row.taskId
}
});
},
handleView(row) {
this.$tab.closeOpenPage({
path:"/claimAndRefund/receiveByCq/receiveExamine?isView=true",
query: {
taskId:row.taskId
}
});
},
//
async openLld(row){
this.open = true
const res = await getTaskDetail({taskId:row.taskId})
this.leaseApplyDetails = res.rows[0].leaseApplyDetails
this.leaseApplyData = res.rows[0]
console.log('this.leaseApplyData ============',this.leaseApplyData)
},
//
print(){
this.$refs.remarksPrintRef.print();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.dictId)
this.single = selection.length!=1
this.multiple = !selection.length
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const dictId = row.dictId || this.ids
getType(dictId).then(response => {
this.form = response.data;
this.open = true;
this.title = "验收";
});
},
/** 提交按钮 */
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.dictId != undefined) {
updateType(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addType(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const dictIds = row.dictId || this.ids;
this.$modal.confirm('是否确认删除该数据项?').then(function() {
return delType(dictIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('base/tm_task/applyExport', {
...this.queryParams
}, `领料审批单_${new Date().getTime()}.xlsx`)
},
/** 刷新缓存按钮操作 */
handleRefreshCache() {
refreshCache().then(() => {
this.$modal.msgSuccess("刷新成功");
this.$store.dispatch('dict/cleanDict');
});
}
}
};
</script>
<style lang="scss" scoped>
.print{
.title{
text-align: center;
font-weight: 600;
font-size: 16px;
}
.info{
margin-top: 10px;
display: flex;
flex-wrap: wrap;
.item{
width: 50%;
flex-shrink: 0;
margin-bottom: 5px;
font-size: 14px;
}
}
.fillIn{
margin-top: 15px;
display: flex;
justify-content: space-between;
}
}
::v-deep.el-table .fixed-width .el-button--mini {
width: 60px !important;
margin-bottom: 10px;
}
</style>

View File

@ -35,14 +35,14 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://112.29.103.165:21626`,//线上环境-重庆
// target: `http://112.29.103.165:21626`,//线上环境-重庆
// target: `http://112.29.103.165:21624`,//线上环境-宁夏
// 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`,
// target: `http://10.40.92.12:8080`,//超
target: `http://10.40.92.12:8080`,//超
// target: `http://10.40.92.2:8080`,//韩
// target: `http://10.40.92.209:8080`,//川/
@ -52,6 +52,7 @@ module.exports = {
//2.打开view文件夹根目录dashboard.vue 更换大屏项目发布的跳转地址打开大屏项目config/index.js更改请求地址大屏打包node<16.0.0;
//3.只有南网项目产线gl发布打包时候需要注意
// 将 assetsDir:'static' 改为 assetsDir:'gl/static',还有env.development中的VUE_APP_BASE_API改为'/gl/dev-api';登录跳转地址从/login换成/gl/;
//4. 重庆环境的时候需要将新增领料申请跳转地址改为claimAndRefund/receive/receiveApplyAddByCq
//******** 注意事项 ********* */
changeOrigin: true,