@@ -0,0 +1,80 @@ | |||
import request from '@/utils/request' | |||
// 查询资金审批申请列表 | |||
export function listCashExpense(query) { | |||
return request({ | |||
url: '/yinnong/cashExpense/list', | |||
method: 'get', | |||
params: query | |||
}) | |||
} | |||
// 统计查询资金审批申请列表 | |||
export function statisticCashExpense(query) { | |||
return request({ | |||
url: '/yinnong/cashExpense/statistic', | |||
method: 'get', | |||
params: query | |||
}) | |||
} | |||
// 导出资金审批申请 | |||
export function exportCashExpense(query) { | |||
return request({ | |||
url: '/yinnong/cashExpense/export', | |||
method: 'get', | |||
params: query | |||
}) | |||
} | |||
// 查询资金审批申请详细 | |||
export function getCashExpense(id) { | |||
return request({ | |||
url: '/yinnong/cashExpense/get/' + id, | |||
method: 'get', | |||
params: arguments[1] || {} | |||
}) | |||
} | |||
// 新增资金审批申请 | |||
export function addCashExpense(data) { | |||
return request({ | |||
url: '/yinnong/cashExpense/add', | |||
method: 'post', | |||
data: data | |||
}) | |||
} | |||
// 修改资金审批申请 | |||
export function updateCashExpense(data) { | |||
return request({ | |||
url: '/yinnong/cashExpense/edit', | |||
method: 'post', | |||
data: data | |||
}) | |||
} | |||
// 删除资金审批申请 | |||
export function delCashExpense(id) { | |||
return request({ | |||
url: '/yinnong/cashExpense/remove/' + id, | |||
method: 'get' | |||
}) | |||
} | |||
// 资金申请审批 | |||
export function applyCashExpense(id) { | |||
return request({ | |||
url: '/yinnong/cashExpense/submitApply/' + id, | |||
method: 'get' | |||
}); | |||
} | |||
// 撤销资金申请审批 | |||
export function revokeCashExpense(id) { | |||
return request({ | |||
url: '/yinnong/cashExpense/revokeApply/' + id, | |||
method: 'get' | |||
}); | |||
} | |||
@@ -2686,6 +2686,51 @@ export const constantRoutes = [ | |||
}, | |||
component: (resolve) => require(['@/views/yinnong/homestead/supervision/supervisionDetail'], resolve) | |||
}, | |||
{ | |||
path: '/yinnong/cashExpenseList', | |||
name: 'yinnongCashExpenseList', | |||
meta: { | |||
title: '资金审批申请列表', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/yinnong/bankAgriculture/cashExpense/cashExpenseList'], resolve) | |||
}, | |||
{ | |||
path: '/yinnong/cashExpenseForm', | |||
name: 'yinnongCashExpenseForm', | |||
meta: { | |||
title: '资金审批申请表单', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/yinnong/bankAgriculture/cashExpense/cashExpenseForm'], resolve) | |||
}, | |||
{ | |||
path: '/yinnong/cashExpenseDetail', | |||
name: 'yinnongCashExpenseDetail', | |||
meta: { | |||
title: '资金审批申请详情', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/yinnong/bankAgriculture/cashExpense/cashExpenseDetail'], resolve) | |||
}, | |||
{ | |||
path: '/yinnong/cashExpenseApproval', | |||
name: 'yinnongCashExpenseApproval', | |||
meta: { | |||
title: '资金审批申请', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/yinnong/bankAgriculture/cashExpense/cashExpenseApproval'], resolve) | |||
}, | |||
{ | |||
path: '/yinnong/cashExpenseProcess', | |||
name: 'yinnongCashExpenseProcess', | |||
meta: { | |||
title: '资金审批申请流程', | |||
hidden: true, | |||
}, | |||
component: (resolve) => require(['@/views/yinnong/bankAgriculture/cashExpense/cashExpenseProcess'], resolve) | |||
}, | |||
{ | |||
path: '/lawEnforcement', | |||
name: 'lawEnforcement', | |||
@@ -165,7 +165,7 @@ export default { | |||
}) | |||
}, | |||
/** 查询待办列表 */ | |||
getTaskList() { | |||
/*getTaskList() { | |||
this.loading = true; | |||
return request({ | |||
url: "/activiti/process/taskList", | |||
@@ -181,7 +181,7 @@ export default { | |||
}) | |||
.then(() => { | |||
}); | |||
}, | |||
},*/ | |||
getList(){ | |||
this.loading = true; | |||
this.queryParams.number = 2 ; | |||
@@ -188,10 +188,10 @@ export default { | |||
console.log(res.data.companyName) | |||
this.companyName = res.data.companyName; | |||
}); | |||
this.getTaskList(); | |||
//this.getTaskList(); | |||
}); | |||
}, | |||
getTaskList() { | |||
/*getTaskList() { | |||
this.loading = true; | |||
return request({ | |||
url: "/activiti/process/taskList", | |||
@@ -208,7 +208,7 @@ export default { | |||
.then(() => { | |||
}); | |||
}, | |||
},*/ | |||
}, | |||
}; | |||
</script> | |||
@@ -169,7 +169,7 @@ export default { | |||
}); | |||
}, | |||
methods: { | |||
getTaskList() { | |||
/*getTaskList() { | |||
this.loading = true; | |||
return request({ | |||
url: "/activiti/process/taskList", | |||
@@ -189,8 +189,8 @@ export default { | |||
}).then(() => { | |||
}); | |||
}, | |||
getTaskDoneList(){ | |||
},*/ | |||
/*getTaskDoneList(){ | |||
this.doneLoading = true; | |||
return request({ | |||
url: "/activiti/process/taskDoneList", | |||
@@ -211,18 +211,18 @@ export default { | |||
}) | |||
.then(() => { | |||
}); | |||
}, | |||
},*/ | |||
getListchange(type){ | |||
if(type == 'db'){ | |||
this.taskList = []; | |||
this.queryParamsTask.pageNum = 1; | |||
this.finished = false; | |||
this.getTaskList() | |||
//this.getTaskList() | |||
} else { | |||
this.taskDoneList = []; | |||
this.queryParams.pageNum = 1 ; | |||
this.doneFinished = false; | |||
this.getTaskDoneList() | |||
//this.getTaskDoneList() | |||
} | |||
} | |||
}, | |||
@@ -134,10 +134,10 @@ export default { | |||
console.log(res.data.companyName) | |||
this.companyName = res.data.companyName; | |||
}); | |||
this.getTaskList(); | |||
//this.getTaskList(); | |||
}); | |||
}, | |||
getTaskList() { | |||
/*getTaskList() { | |||
this.loading = true; | |||
return request({ | |||
url: "/activiti/process/taskList", | |||
@@ -154,7 +154,7 @@ export default { | |||
.then(() => { | |||
}); | |||
}, | |||
},*/ | |||
}, | |||
}; | |||
</script> | |||
@@ -11,52 +11,41 @@ | |||
</template> | |||
</van-nav-bar> | |||
<div class="main_box"> | |||
<van-divider content-position="center"><h4>批次号:{{this.$route.query.auditbatchNo}}</h4></van-divider> | |||
<van-row v-if="form.auditStatus== '0'"> | |||
<van-col span="4" align="right"><p class="icon_jian blue"><van-icon name="success" size="14" /></p></van-col> | |||
<van-col span="20" class="textBlue">草稿</van-col> | |||
</van-row> | |||
<van-row v-if="form.auditStatus != '0'"> | |||
<van-col span="4" align="right"><p class="icon_jian blue"><van-icon name="success" size="14" /></p></van-col> | |||
<van-col span="20" class="textBlue">已申请 | |||
<van-row> | |||
<van-col span="12" style="padding: 0;" class="textBlue" v-show="processList.auditStatus!='0'">{{form.applyUserName}}</van-col> | |||
<van-col span="12" style="padding: 0;" class="textBlue" v-show="processList.auditStatus!='0'">{{form.applyDate}}</van-col> | |||
</van-row> | |||
</van-col> | |||
</van-row> | |||
<van-row v-for="(item1,index,i) in processList" :key="i"> | |||
<van-col span="4" align="right"> | |||
<p class="icon_jian" v-show="item1.auditStatus=='1'"><van-icon name="minus" size="14" /></p> | |||
<p class="icon_jian blue" v-show="item1.auditStatus=='3'"><van-icon name="success" size="14" /></p> | |||
<p class="icon_jian red" v-show="item1.auditStatus=='2'"><van-icon name="cross" size="14" /></p> | |||
</van-col> | |||
<van-col span="20"> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item1.auditStatus == '1'">{{item1.nodeName}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.nodeName}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.nodeName}}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;" > | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditTime}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditTime}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditTime}}</p> | |||
</van-col> | |||
</van-row> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;" > | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditBy}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditBy}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditBy}}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditRemark}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditRemark}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditRemark}}</p> | |||
</van-col> | |||
</van-row> | |||
</van-col> | |||
<van-row v-for="(item,index) in processList" :key="index"> | |||
<van-divider content-position="center"><h4>批次号:{{index}}</h4></van-divider> | |||
<van-row v-for="(item1,index,i) in item" :key="i"> | |||
<van-col span="4" align="right"> | |||
<p class="icon_jian" v-show="item1.auditStatus=='1'"><van-icon name="minus" size="14" /></p> | |||
<p class="icon_jian blue" v-show="item1.auditStatus=='3'"><van-icon name="success" size="14" /></p> | |||
<p class="icon_jian red" v-show="item1.auditStatus=='2'"><van-icon name="cross" size="14" /></p> | |||
</van-col> | |||
<van-col span="20"> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item1.auditStatus == '1'">{{item1.actorName}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.actorName}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.actorName}}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;" > | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditTime}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditTime}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditTime}}</p> | |||
</van-col> | |||
</van-row> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;" > | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditBy}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditBy}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditBy}}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditRemark}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditRemark}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditRemark}}</p> | |||
</van-col> | |||
</van-row> | |||
</van-col> | |||
</van-row> | |||
</van-row> | |||
<van-divider content-position="center" v-if="approvalTemplateDetailList.length>0"><h4>审批流程</h4></van-divider> | |||
<van-row v-if="approvalTemplateDetailList.length>0" v-for="(item1,index,i) in approvalTemplateDetailList" :key="i"> | |||
@@ -111,12 +100,8 @@ export default { | |||
//查询审批进程 | |||
getTransferProcess(id){ | |||
getTransferProcess(id).then(res => { | |||
this.processList = res.data[auditbatchNo] | |||
// console.info( this.processList); | |||
// this.processList.乡镇审批时间 = this.processList.乡镇审批时间?this.format(this.processList.乡镇审批时间, "yyyy-MM-dd HH:mm:ss"):"" | |||
// this.processList.区县审批时间 = this.processList.区县审批时间?this.format(this.processList.区县审批时间, "yyyy-MM-dd HH:mm:ss"):"" | |||
// this.processList.支付状态时间 = this.processList.支付状态时间?this.format(this.processList.支付状态时间, "yyyy-MM-dd HH:mm:ss"):"" | |||
// this.processList.入账状态时间 = this.processList.入账状态时间?this.format(this.processList.入账状态时间, "yyyy-MM-dd HH:mm:ss"):"" | |||
this.processList = res.data | |||
console.info( this.processList); | |||
}) | |||
}, | |||
handleUpdate(id) { | |||
@@ -214,12 +199,4 @@ export default { | |||
color: #878787; | |||
line-height: 22Px; | |||
} | |||
.van-row{ | |||
.van-row{ | |||
.van-col{ | |||
padding: 5Px 0 0 0!important; | |||
color: #878787; | |||
} | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,312 @@ | |||
<template> | |||
<div class="app-container"> | |||
<van-nav-bar left-arrow fixed placeholder @click-left="goBack"> | |||
<template #title> | |||
<p style="font-weight: bold;">资金审批申请</p> | |||
</template> | |||
<template #right> | |||
<van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/> | |||
</template> | |||
</van-nav-bar> | |||
<van-form readonly> | |||
<div class="main_box"> | |||
<van-field v-model="form.cashAt" label="申请日期" placeholder="请选择申请日期" | |||
required :rules="[{ required: true }]" | |||
input-align="right" right-icon="arrow-down" | |||
readonly clickable @click="showCashAt = true" /> | |||
<van-popup v-model="showCashAt" position="bottom"> | |||
<van-datetime-picker | |||
:value="currentDate" | |||
type="date" | |||
title="请选择申请日期" | |||
:min-date="minDate" | |||
:max-date="maxDate" | |||
@confirm="onConfirmCashAt" | |||
@cancel="showCashAt = false" | |||
/> | |||
</van-popup> | |||
<van-field v-model="form.cashAmount" label="申请金额(元)" placeholder="请输入申请金额(元)" | |||
required :rules="[{ required: true }]" input-align="right" type="number" /> | |||
<van-field v-model="capitalExpenditureType" label="资金支出类别" placeholder="请选择资金支出类别" | |||
required :rules="[{ required: true }]" | |||
input-align="right" right-icon="arrow-down" | |||
readonly clickable @click="showType = true" /> | |||
<van-popup v-model="showType" position="bottom"> | |||
<van-picker | |||
show-toolbar | |||
:columns="capitalExpenditureTypeOptions" | |||
value-key="dictLabel" | |||
@confirm="onConfirmType" | |||
@cancel="showType = false" | |||
/> | |||
</van-popup> | |||
<van-field v-model="form.cashRemarks" label="支款说明" placeholder="请输入支款说明" | |||
required :rules="[{ required: true }]" input-align="right" maxlength="200" /> | |||
<van-field v-model="form.cashierNo" label="付款账号" placeholder="请输入付款账号" | |||
input-align="right" maxlength="50" /> | |||
<van-field v-model="form.cashierName" label="付款单位" placeholder="请输入付款单位" | |||
input-align="right" maxlength="150" /> | |||
<van-field v-model="form.payeeName" label="收款方名称" placeholder="请输入收款方名称" | |||
input-align="right" maxlength="150" /> | |||
<van-field v-model="form.payeePhone" label="收款方电话" placeholder="请输入收款方电话" | |||
input-align="right" maxlength="20" /> | |||
<van-field v-model="approvalTemplateName" label="审批流程" placeholder="请选择审批流程" | |||
required :rules="[{ required: true }]" | |||
input-align="right" right-icon="arrow-down" | |||
readonly clickable @click="showTemplate = true" | |||
/> | |||
<van-popup v-model="showTemplate" position="bottom"> | |||
<van-picker | |||
show-toolbar | |||
:columns="templateList" | |||
value-key="name" | |||
@confirm="onConfirmTemplate" | |||
@cancel="showTemplate = false" | |||
/> | |||
</van-popup> | |||
<van-field label="附件" input-align="right" readonly> | |||
<template #button> | |||
<van-button type="info" size="small" @click="openAttachment(form.id)" >查看附件</van-button> | |||
</template> | |||
</van-field> | |||
<van-popup v-model="showAttachment" lock-scroll closeable position="top" :style="{ height: '30%' }" > | |||
<div style="padding: 0 13% 0 5%;"> | |||
<van-divider>附件</van-divider> | |||
<van-uploader v-model="fileList" multiple :readonly="true" :show-upload="false" /> | |||
</div> | |||
</van-popup> | |||
</div> | |||
</van-form> | |||
<div class="main_box examine_box" v-if="this.$route.query.type === 'todo'"> | |||
<van-row type="flex" justify="space-between" align="center"> | |||
<van-col span="5">审批<br/>意见</van-col> | |||
<van-col span="19"> | |||
<van-radio-group v-model="pass" direction="horizontal"> | |||
<van-radio name="true">同意</van-radio> | |||
<van-radio name="false">驳回</van-radio> | |||
</van-radio-group> | |||
<van-field v-model="comment" type="textarea" placeholder="请输入审批意见" rows="2" /> | |||
</van-col> | |||
</van-row> | |||
</div> | |||
<div style="margin: 16px 2%;" v-if="this.$route.query.type === 'todo'"> | |||
<van-row> | |||
<van-col span="24" align="center"> | |||
<van-button type="info" native-type="submit" @click="submitApproval" class="submitButton">保<i style="margin-right: 1em;"></i>存</van-button> | |||
</van-col> | |||
</van-row> | |||
<div class="clear"></div> | |||
</div> | |||
</div> | |||
</template> | |||
<script> | |||
import {selectApprovalByTemplateId, listTemplate, approval} from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||
import { getCashExpense } from "@/api/onlineHome/bankAgriculture/cashExpense"; | |||
import {attachmentList} from "@/api/sunVillage_info/fixedAssets"; | |||
import request from "@/utils/request"; | |||
export default { | |||
name: "cashExpenseApproval", | |||
data() { | |||
return { | |||
showCashAt: false, | |||
minDate: new Date(1978, 0, 1), | |||
maxDate: new Date(2100, 11, 31), | |||
currentDate: new Date(), | |||
form: {}, | |||
capitalExpenditureType: null, | |||
capitalExpenditureTypeOptions:[], | |||
showType: false, | |||
approvalTemplateName: null, | |||
showTemplate:false, | |||
templateList:[], | |||
// 审核意见默认值 | |||
pass: "true", | |||
comment: "同意", | |||
showAttachment: false, | |||
fileList: [], | |||
}; | |||
}, | |||
created() { | |||
this.reset(); | |||
this.getDicts("capital_expenditure_type").then((res) => { | |||
this.capitalExpenditureTypeOptions = res.data; | |||
}); | |||
listTemplate({ type: '10' }).then(response => { | |||
this.templateList = response.rows; | |||
}); | |||
setTimeout(() => { | |||
this.getDetail(); | |||
}, 500); | |||
}, | |||
watch: { | |||
pass: function (val) { | |||
this.comment = val === "true" ? "同意" : "驳回"; | |||
}, | |||
}, | |||
methods: { | |||
goBack(){ | |||
this.$router.back(-1); | |||
}, | |||
onConfirmCashAt(data) { | |||
this.form.cashAt = this.format(data, 'yyyy-MM-dd'); | |||
this.showCashAt = false; | |||
}, | |||
onConfirmType(value){ | |||
this.form.capitalExpenditureType = value.dictValue; | |||
this.capitalExpenditureType = value.dictLabel; | |||
this.showType = false; | |||
}, | |||
// 表单重置 | |||
reset() { | |||
this.form = { | |||
id: null, | |||
bookId: null, | |||
deptId: null, | |||
bookName: null, | |||
cashAt: null, | |||
cashAmount: null, | |||
cashRemarks: null, | |||
capitalExpenditureType: null, | |||
cashierNo: null, | |||
cashierName: null, | |||
payeeName: null, | |||
payeePhone: null, | |||
approvalTemplateId: null, | |||
auditStatus: null, | |||
auditbatchNo: null, | |||
createBy: null, | |||
createTime: null, | |||
updateBy: null, | |||
updateTime: null | |||
}; | |||
}, | |||
getDetail(){ | |||
getCashExpense(this.$route.query.id).then(response => { | |||
this.form = response.data; | |||
this.capitalExpenditureType = this.selectDictLabel(this.capitalExpenditureTypeOptions, response.data.capitalExpenditureType); | |||
const template = this.templateList.find(item => item.id === response.data.approvalTemplateId); | |||
this.approvalTemplateName = template.name; | |||
}); | |||
}, | |||
onConfirmTemplate(data) { | |||
selectApprovalByTemplateId(data.id).then(res => { | |||
this.showTemplate = false; | |||
if (res.approvalDetails.length > 0) { | |||
this.approvalTemplateName = data.name | |||
this.form.approvalTemplateId = data.id | |||
} else { | |||
this.approvalTemplateName = null; | |||
this.form.approvalTemplateId = null; | |||
this.$notify({type: 'danger', message: '此流程无节点,无法选择!'}); | |||
} | |||
}); | |||
}, | |||
submitApproval() { | |||
approval({ | |||
taskId: this.$route.query.taskId, | |||
auditbatchNo: this.$route.query.auditbatchNo, | |||
pass: this.pass, | |||
remark: this.comment, | |||
deptId: this.form.deptId | |||
}).then((response) => { | |||
if (response.code === 200) { | |||
this.$toast.success("保存成功"); | |||
setTimeout(function () { | |||
history.go(-1) | |||
}, 500); | |||
} else { | |||
this.$toast.success("保存失败"); | |||
} | |||
}); | |||
}, | |||
goFlow(){ | |||
this.$router.push({path: '/yinnong/cashExpenseProcess', query: { id: this.form.id, templateId: this.form.approvalTemplateId }}); | |||
}, | |||
openAttachment(id) { | |||
this.showAttachment = true; | |||
this.fileList = []; | |||
let params = { | |||
tableId: id, | |||
tableName: "t_yinnong_cashexpense", | |||
bizPath: "yinnong", | |||
fileType: '', | |||
}; | |||
attachmentList(params).then(res => { | |||
res.rows.map(r => { | |||
let baseUrl = location.protocol + "//" + location.host + request.defaults.baseURL; | |||
this.fileList.push({"url": baseUrl + r.fileUrl, "file": new File([], r.fileName, {}), "id": r.id}); | |||
}); | |||
}); | |||
}, | |||
} | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.app-container { | |||
padding: 2% 0; | |||
} | |||
.main_box { | |||
width: 96%; | |||
margin: 0 auto; | |||
border-radius: 6px; | |||
box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16); | |||
overflow: hidden; | |||
background-color: #FFF; | |||
} | |||
.submitButton { | |||
width: 80%; | |||
margin: 0 auto; | |||
background-color: #1D6FE9; | |||
} | |||
.examine_box { | |||
background-color: #1D6FE9 !important; | |||
padding: 0.18rem !important; | |||
padding-left: 0 !important; | |||
border-radius: 0.15rem !important; | |||
margin-top: 0.3rem !important; | |||
} | |||
.examine_box .van-col:first-child { | |||
color: #FFF !important; | |||
font-size: 0.45rem !important; | |||
text-align: center !important; | |||
} | |||
.examine_box .van-col:last-child { | |||
background-color: #FFF !important; | |||
border-radius: 0.15rem !important; | |||
overflow: hidden !important; | |||
.van-radio-group--horizontal { | |||
padding: 0.2rem 0; | |||
border-bottom: 1px solid #eee; | |||
} | |||
} | |||
/deep/ .van-radio--horizontal { | |||
margin-left: 20px; | |||
margin-right: 0; | |||
} | |||
.submitButton { | |||
width: 96%; | |||
margin: 0 auto; | |||
} | |||
</style> |
@@ -0,0 +1,192 @@ | |||
<template> | |||
<div class="app-container"> | |||
<van-nav-bar left-arrow fixed placeholder @click-left="goBack"> | |||
<template #title> | |||
<p style="font-weight: bold;">资金审批申请详情</p> | |||
</template> | |||
<template #right> | |||
<van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/> | |||
</template> | |||
</van-nav-bar> | |||
<van-form readonly> | |||
<div class="main_box"> | |||
<van-field v-model="form.cashAt" label="申请日期" placeholder="请选择申请日期" | |||
required :rules="[{ required: true }]" | |||
input-align="right" right-icon="arrow-down" | |||
readonly clickable @click="showCashAt = true" /> | |||
<van-popup v-model="showCashAt" position="bottom"> | |||
<van-datetime-picker | |||
:value="currentDate" | |||
type="date" | |||
title="请选择申请日期" | |||
:min-date="minDate" | |||
:max-date="maxDate" | |||
@confirm="onConfirmCashAt" | |||
@cancel="showCashAt = false" | |||
/> | |||
</van-popup> | |||
<van-field v-model="form.cashAmount" label="申请金额(元)" placeholder="请输入申请金额(元)" | |||
required :rules="[{ required: true }]" input-align="right" type="number" /> | |||
<van-field v-model="capitalExpenditureType" label="资金支出类别" placeholder="请选择资金支出类别" | |||
required :rules="[{ required: true }]" | |||
input-align="right" right-icon="arrow-down" | |||
readonly clickable @click="showType = true" /> | |||
<van-popup v-model="showType" position="bottom"> | |||
<van-picker | |||
show-toolbar | |||
:columns="capitalExpenditureTypeOptions" | |||
value-key="dictLabel" | |||
@confirm="onConfirmType" | |||
@cancel="showType = false" | |||
/> | |||
</van-popup> | |||
<van-field v-model="form.cashRemarks" label="支款说明" placeholder="请输入支款说明" | |||
required :rules="[{ required: true }]" input-align="right" maxlength="200" /> | |||
<van-field v-model="form.cashierNo" label="付款账号" placeholder="请输入付款账号" | |||
input-align="right" maxlength="50" /> | |||
<van-field v-model="form.cashierName" label="付款单位" placeholder="请输入付款单位" | |||
input-align="right" maxlength="150" /> | |||
<van-field v-model="form.payeeName" label="收款方名称" placeholder="请输入收款方名称" | |||
input-align="right" maxlength="150" /> | |||
<van-field v-model="form.payeePhone" label="收款方电话" placeholder="请输入收款方电话" | |||
input-align="right" maxlength="20" /> | |||
<van-field v-model="approvalTemplateName" label="审批流程" placeholder="请选择审批流程" | |||
required :rules="[{ required: true }]" | |||
input-align="right" right-icon="arrow-down" | |||
readonly clickable @click="showTemplate = true" | |||
/> | |||
<van-popup v-model="showTemplate" position="bottom"> | |||
<van-picker | |||
show-toolbar | |||
:columns="templateList" | |||
value-key="name" | |||
@confirm="onConfirmTemplate" | |||
@cancel="showTemplate = false" | |||
/> | |||
</van-popup> | |||
</div> | |||
</van-form> | |||
</div> | |||
</template> | |||
<script> | |||
import { selectApprovalByTemplateId, listTemplate } from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||
import { getCashExpense } from "@/api/onlineHome/bankAgriculture/cashExpense"; | |||
export default { | |||
name: "cashExpenseDetail", | |||
data() { | |||
return { | |||
showCashAt: false, | |||
minDate: new Date(1978, 0, 1), | |||
maxDate: new Date(2100, 11, 31), | |||
currentDate: new Date(), | |||
form: {}, | |||
capitalExpenditureType: null, | |||
capitalExpenditureTypeOptions:[], | |||
showType: false, | |||
approvalTemplateName: null, | |||
showTemplate:false, | |||
templateList:[], | |||
}; | |||
}, | |||
created() { | |||
this.reset(); | |||
this.getDicts("capital_expenditure_type").then((res) => { | |||
this.capitalExpenditureTypeOptions = res.data; | |||
}); | |||
listTemplate({ type: '10' }).then(response => { | |||
this.templateList = response.rows; | |||
}); | |||
this.getDetail(); | |||
}, | |||
methods: { | |||
goBack(){ | |||
this.$router.push({path:'/yinnong/cashExpenseList'}) | |||
}, | |||
onConfirmCashAt(data) { | |||
this.form.cashAt = this.format(data, 'yyyy-MM-dd'); | |||
this.showCashAt = false; | |||
}, | |||
onConfirmType(value){ | |||
this.form.capitalExpenditureType = value.dictValue; | |||
this.capitalExpenditureType = value.dictLabel; | |||
this.showType = false; | |||
}, | |||
// 表单重置 | |||
reset() { | |||
this.form = { | |||
id: null, | |||
bookId: null, | |||
deptId: null, | |||
bookName: null, | |||
cashAt: null, | |||
cashAmount: null, | |||
cashRemarks: null, | |||
capitalExpenditureType: null, | |||
cashierNo: null, | |||
cashierName: null, | |||
payeeName: null, | |||
payeePhone: null, | |||
approvalTemplateId: null, | |||
auditStatus: null, | |||
auditbatchNo: null, | |||
createBy: null, | |||
createTime: null, | |||
updateBy: null, | |||
updateTime: null | |||
}; | |||
}, | |||
getDetail(){ | |||
getCashExpense(this.$route.query.id).then(response => { | |||
this.form = response.data; | |||
this.capitalExpenditureType = this.selectDictLabel(this.capitalExpenditureTypeOptions, response.data.capitalExpenditureType); | |||
const template = this.templateList.find(item => item.id === response.data.approvalTemplateId); | |||
this.approvalTemplateName = template.name; | |||
}); | |||
}, | |||
onConfirmTemplate(data) { | |||
selectApprovalByTemplateId(data.id).then(res => { | |||
this.showTemplate = false; | |||
if (res.approvalDetails.length > 0) { | |||
this.approvalTemplateName = data.name | |||
this.form.approvalTemplateId = data.id | |||
} else { | |||
this.approvalTemplateName = null; | |||
this.form.approvalTemplateId = null; | |||
this.$notify({type: 'danger', message: '此流程无节点,无法选择!'}); | |||
} | |||
}); | |||
}, | |||
goFlow(){ | |||
this.$router.push({path: '/yinnong/cashExpenseProcess', query: { id: this.form.id, templateId: this.form.approvalTemplateId }}); | |||
}, | |||
} | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.app-container { | |||
padding: 2% 0; | |||
} | |||
.main_box { | |||
width: 96%; | |||
margin: 0 auto; | |||
border-radius: 6px; | |||
box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16); | |||
overflow: hidden; | |||
background-color: #FFF; | |||
} | |||
.submitButton { | |||
width: 80%; | |||
margin: 0 auto; | |||
background-color: #1D6FE9; | |||
} | |||
</style> |
@@ -0,0 +1,246 @@ | |||
<template> | |||
<div class="app-container"> | |||
<van-nav-bar left-arrow fixed placeholder @click-left="goBack"> | |||
<template #title> | |||
<p style="font-weight: bold;">{{ navBarTitle }}</p> | |||
</template> | |||
<template #right> | |||
<van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/> | |||
</template> | |||
</van-nav-bar> | |||
<van-form @submit="submitForm" @failed="getError" :show-error-message="false" scroll-to-error validate-first> | |||
<div class="main_box"> | |||
<van-field v-model="form.cashAt" label="申请日期" placeholder="请选择申请日期" | |||
required :rules="[{ required: true }]" | |||
input-align="right" right-icon="arrow-down" | |||
readonly clickable @click="showCashAt = true" /> | |||
<van-popup v-model="showCashAt" position="bottom"> | |||
<van-datetime-picker | |||
:value="currentDate" | |||
type="date" | |||
title="请选择申请日期" | |||
:min-date="minDate" | |||
:max-date="maxDate" | |||
@confirm="onConfirmCashAt" | |||
@cancel="showCashAt = false" | |||
/> | |||
</van-popup> | |||
<van-field v-model="form.cashAmount" label="申请金额(元)" placeholder="请输入申请金额(元)" | |||
required :rules="[{ required: true }]" input-align="right" type="number" /> | |||
<van-field v-model="capitalExpenditureType" label="资金支出类别" placeholder="请选择资金支出类别" | |||
required :rules="[{ required: true }]" | |||
input-align="right" right-icon="arrow-down" | |||
readonly clickable @click="showType = true" /> | |||
<van-popup v-model="showType" position="bottom"> | |||
<van-picker | |||
show-toolbar | |||
:columns="capitalExpenditureTypeOptions" | |||
value-key="dictLabel" | |||
@confirm="onConfirmType" | |||
@cancel="showType = false" | |||
/> | |||
</van-popup> | |||
<van-field v-model="form.cashRemarks" label="支款说明" placeholder="请输入支款说明" | |||
required :rules="[{ required: true }]" input-align="right" maxlength="200" /> | |||
<van-field v-model="form.cashierNo" label="付款账号" placeholder="请输入付款账号" | |||
input-align="right" maxlength="50" /> | |||
<van-field v-model="form.cashierName" label="付款单位" placeholder="请输入付款单位" | |||
input-align="right" maxlength="150" /> | |||
<van-field v-model="form.payeeName" label="收款方名称" placeholder="请输入收款方名称" | |||
input-align="right" maxlength="150" /> | |||
<van-field v-model="form.payeePhone" label="收款方电话" placeholder="请输入收款方电话" | |||
input-align="right" maxlength="20" /> | |||
<van-field v-model="approvalTemplateName" label="审批流程" placeholder="请选择审批流程" | |||
required :rules="[{ required: true }]" | |||
input-align="right" right-icon="arrow-down" | |||
readonly clickable @click="showTemplate = true" | |||
/> | |||
<van-popup v-model="showTemplate" position="bottom"> | |||
<van-picker | |||
show-toolbar | |||
:columns="templateList" | |||
value-key="name" | |||
@confirm="onConfirmTemplate" | |||
@cancel="showTemplate = false" | |||
/> | |||
</van-popup> | |||
</div> | |||
<div style="padding: 16px 0;"> | |||
<van-row > | |||
<van-col span="24" align="center"> | |||
<van-button type="info" native-type="submit" class="submitButton">保<i style="margin-right: 1em;"></i>存</van-button> | |||
</van-col> | |||
</van-row> | |||
</div> | |||
</van-form> | |||
</div> | |||
</template> | |||
<script> | |||
import { selectApprovalByTemplateId, listTemplate } from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||
import { addCashExpense, updateCashExpense, getCashExpense } from "@/api/onlineHome/bankAgriculture/cashExpense"; | |||
export default { | |||
name: "cashExpenseForm", | |||
data() { | |||
return { | |||
navBarTitle: '', | |||
showCashAt: false, | |||
minDate: new Date(1978, 0, 1), | |||
maxDate: new Date(2100, 11, 31), | |||
currentDate: new Date(), | |||
form: {}, | |||
capitalExpenditureType: null, | |||
capitalExpenditureTypeOptions:[], | |||
showType: false, | |||
approvalTemplateName: null, | |||
showTemplate:false, | |||
templateList:[], | |||
}; | |||
}, | |||
created() { | |||
this.reset(); | |||
this.getDicts("capital_expenditure_type").then((res) => { | |||
this.capitalExpenditureTypeOptions = res.data; | |||
}); | |||
listTemplate({ type: '10' }).then(response => { | |||
this.templateList = response.rows; | |||
}); | |||
if (this.$route.query.id) { | |||
this.navBarTitle = '修改资金审批申请'; | |||
this.getDetail(); | |||
} else { | |||
this.navBarTitle = '添加资金审批申请'; | |||
} | |||
}, | |||
methods: { | |||
goBack(){ | |||
this.$router.push({path:'/yinnong/cashExpenseList'}) | |||
}, | |||
onConfirmCashAt(data) { | |||
this.form.cashAt = this.format(data, 'yyyy-MM-dd'); | |||
this.showCashAt = false; | |||
}, | |||
onConfirmType(value){ | |||
this.form.capitalExpenditureType = value.dictValue; | |||
this.capitalExpenditureType = value.dictLabel; | |||
this.showType = false; | |||
}, | |||
// 表单重置 | |||
reset() { | |||
this.form = { | |||
id: null, | |||
bookId: null, | |||
deptId: null, | |||
bookName: null, | |||
cashAt: null, | |||
cashAmount: null, | |||
cashRemarks: null, | |||
capitalExpenditureType: null, | |||
cashierNo: null, | |||
cashierName: null, | |||
payeeName: null, | |||
payeePhone: null, | |||
approvalTemplateId: null, | |||
auditStatus: null, | |||
auditbatchNo: null, | |||
createBy: null, | |||
createTime: null, | |||
updateBy: null, | |||
updateTime: null | |||
}; | |||
}, | |||
getDetail(){ | |||
getCashExpense(this.$route.query.id).then(response => { | |||
this.form = response.data; | |||
this.capitalExpenditureType = this.selectDictLabel(this.capitalExpenditureTypeOptions, response.data.capitalExpenditureType); | |||
const template = this.templateList.find(item => item.id === response.data.approvalTemplateId); | |||
this.approvalTemplateName = template.name; | |||
}); | |||
}, | |||
onConfirmTemplate(data) { | |||
selectApprovalByTemplateId(data.id).then(res => { | |||
this.showTemplate = false; | |||
if (res.approvalDetails.length > 0) { | |||
this.approvalTemplateName = data.name | |||
this.form.approvalTemplateId = data.id | |||
} else { | |||
this.approvalTemplateName = null; | |||
this.form.approvalTemplateId = null; | |||
this.$notify({type: 'danger', message: '此流程无节点,无法选择!'}); | |||
} | |||
}); | |||
}, | |||
getError(e){ | |||
this.$notify({ type: 'danger', message: e.errors[0].message }); | |||
}, | |||
submitForm() { | |||
if (this.form.id) { | |||
updateCashExpense(this.form).then(response => { | |||
if (response.code === 200) { | |||
this.$toast({ | |||
icon: 'success', | |||
message: '保存成功', | |||
duration: '1000', | |||
onClose: () => { | |||
this.goBack(); | |||
} | |||
}); | |||
} | |||
}); | |||
} else { | |||
addCashExpense(this.form).then(response => { | |||
if (response.code === 200) { | |||
this.$toast({ | |||
icon: 'success', | |||
message: '保存成功', | |||
duration: "1000", | |||
onClose: () => { | |||
this.goBack(); | |||
} | |||
}); | |||
} | |||
}); | |||
} | |||
}, | |||
goFlow() { | |||
if (this.form.id) { // 修改时 | |||
this.$router.push({path: '/yinnong/cashExpenseProcess', query: { id: this.form.id, templateId: this.form.approvalTemplateId }}); | |||
} else { // 新增时 | |||
if (this.form.approvalTemplateId) { | |||
this.$router.push({path: '/yinnong/cashExpenseProcess', query: { templateId: this.form.approvalTemplateId }}); | |||
} else { | |||
this.$notify({type: 'danger', message: '无审批流程!'}); | |||
} | |||
} | |||
}, | |||
} | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.app-container { | |||
padding: 2% 0; | |||
} | |||
.main_box { | |||
width: 96%; | |||
margin: 0 auto; | |||
border-radius: 6px; | |||
box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16); | |||
overflow: hidden; | |||
background-color: #FFF; | |||
} | |||
.submitButton { | |||
width: 80%; | |||
margin: 0 auto; | |||
background-color: #1D6FE9; | |||
} | |||
</style> |
@@ -0,0 +1,258 @@ | |||
<template> | |||
<div class="app-container"> | |||
<van-nav-bar | |||
left-arrow | |||
fixed | |||
placeholder | |||
@click-left="goBack()" | |||
@click-right="goDetail()" | |||
> | |||
<template #title> | |||
<p style="font-weight: bold;">资金审批申请</p> | |||
</template> | |||
<template #right> | |||
<van-icon name="add" size="18"/> | |||
</template> | |||
</van-nav-bar> | |||
<van-list | |||
v-model="loading" | |||
:finished="finished" | |||
finished-text="没有更多了" | |||
@load="getList" | |||
> | |||
<van-swipe-cell v-for="(item,index) in applicationList" :key="index"> | |||
<van-cell :title="item.cashRemarks.substring(0, 10)" :value="item.auditStatus" center :to="{path:'/yinnong/cashExpenseDetail', query: { id: item.id }}"> | |||
<template #icon> | |||
<van-icon name="../../../../../static/images/onlineHome/icon_yn6.png" size="30" color="#539FFD" style="margin-right: 10px;" /> | |||
</template> | |||
<template #label> | |||
<div>{{item.cashAt}}</div> | |||
<div>{{item.capitalExpenditureType}}</div> | |||
<div>{{item.cashAmount}} 元</div> | |||
</template> | |||
</van-cell> | |||
<template #right> | |||
<van-row> | |||
<van-col> | |||
<van-button v-if="item.auditStatus === '草稿'||item.auditStatus === '驳回'" square text="修改" type="info" @click="goDetail(item.id)" class="delete-button" /> | |||
</van-col> | |||
<van-col> | |||
<van-button v-if="item.auditStatus === '草稿'||item.auditStatus === '驳回'" color="#FFA63E" square text="提交" type="info" @click="onSubmit(item.id)" class="delete-button" /> | |||
</van-col> | |||
<van-col> | |||
<van-button v-if="item.auditStatus === '草稿'||item.auditStatus === '驳回'" square text="删除" type="danger" @click="deleteList(item.id,index)" class="delete-button" /> | |||
</van-col> | |||
<van-col> | |||
<van-button v-if="item.auditStatus === '待审'" square text="撤销" type="danger" @click="revokeApply(item.id)" class="delete-button" /> | |||
</van-col> | |||
<van-col> | |||
<van-button square text="附件" style="background-color: rgba(98, 173, 102, 0.2); color: #62AD66;" @click="openLoader(item.id,index)" class="delete-button" /> | |||
</van-col> | |||
</van-row> | |||
</template> | |||
</van-swipe-cell> | |||
</van-list> | |||
<van-popup v-model="show" lock-scroll closeable position="top" :style="{ height: '30%' }" > | |||
<div style="padding: 0 13% 0 5%;"> | |||
<van-divider>附件</van-divider> | |||
<van-uploader v-model="fileList" :after-read="afterRead" @delete="deleteFile" multiple /> | |||
</div> | |||
</van-popup> | |||
</div> | |||
</template> | |||
<script> | |||
import {attachmentList, commonAttach, systemAttachment} from "@/api/sunVillage_info/fixedAssets"; | |||
import { listCashExpense, delCashExpense, applyCashExpense, revokeCashExpense } from "@/api/onlineHome/bankAgriculture/cashExpense"; | |||
import request from "@/utils/request"; | |||
export default { | |||
name: "cashExpenseList", | |||
data() { | |||
return { | |||
loading: false, | |||
finished: false, | |||
applicationList:[], | |||
// 资金支出类别字典 | |||
capitalExpenditureTypeOptions: [], | |||
// 审批状态字典 | |||
auditStatusOptions:[], | |||
queryParams:{ | |||
pageNum:1, | |||
pageSize:10, | |||
// 翻译字典 | |||
translate_dict: "1", | |||
}, | |||
show: false, | |||
fileList:[], | |||
projectId:'', | |||
}; | |||
}, | |||
created() { | |||
this.getDicts("capital_expenditure_type").then(response => { | |||
this.capitalExpenditureTypeOptions = response.data; | |||
}); | |||
this.getDicts("audit_status").then(response => { | |||
this.auditStatusOptions = response.data; | |||
}); | |||
}, | |||
methods: { | |||
goBack(){ | |||
this.$router.push({path:'/yinnong/workbench'}); | |||
}, | |||
goDetail(id){ | |||
if (id) { | |||
this.$router.push({path: '/yinnong/cashExpenseForm', query: { id: id }}); | |||
} else { | |||
this.$router.push({path: '/yinnong/cashExpenseForm'}); | |||
} | |||
}, | |||
getList(){ | |||
this.loading = true; | |||
listCashExpense(this.queryParams).then(response => { | |||
response.rows.forEach(item => { | |||
this.applicationList.push(item); | |||
}); | |||
if(this.applicationList.length >= response.total){ | |||
this.finished = true; | |||
return; | |||
}else{ | |||
this.queryParams.pageNum += 1 ; | |||
} | |||
}).finally(() => this.loading = false); | |||
}, | |||
openLoader(id, index) { | |||
this.show = true; | |||
this.projectId = id; | |||
this.fileList = []; | |||
let oData1 = { | |||
tableId: id, | |||
tableName: "t_yinnong_cashexpense", | |||
bizPath: "yinnong", | |||
fileType: '', | |||
}; | |||
attachmentList(oData1).then(res => { | |||
res.rows.map(r => { | |||
let baseUrl = location.protocol + "//" + location.host + request.defaults.baseURL; | |||
this.fileList.push({"url": baseUrl + r.fileUrl, "file": new File([], r.fileName, {}), "id": r.id}); | |||
}); | |||
}); | |||
}, | |||
deleteList(id, index) { | |||
this.$dialog.confirm({ | |||
message: '是否确认删除此条数据?', | |||
}).then(() => { | |||
// on confirm | |||
this.applicationList.splice(index, 1); | |||
delCashExpense(id).then(res => { | |||
if (res.code === 200) { | |||
this.$toast.success('删除成功'); | |||
} | |||
}); | |||
}).catch(() => { | |||
// on cancel | |||
}); | |||
}, | |||
onSubmit(id) { | |||
this.$dialog.confirm({ | |||
message: '是否确认提交当前数据项的审批申请?', | |||
}).then(() => { | |||
applyCashExpense(id).then(res => { | |||
this.$toast.success('提交成功'); | |||
setTimeout(() => { | |||
history.go(0); | |||
}, 500); | |||
}); | |||
}).catch(() => { | |||
// on cancel | |||
}); | |||
}, | |||
revokeApply(id) { | |||
this.$dialog.confirm({ | |||
message: '是否确认撤销当前数据项的审批申请?', | |||
}).then(() => { | |||
revokeCashExpense(id).then(res => { | |||
this.$toast.success('撤销成功'); | |||
setTimeout(() => { | |||
history.go(0); | |||
}, 500); | |||
}); | |||
}).catch(() => { | |||
// on cancel | |||
}); | |||
}, | |||
afterRead(file) { | |||
// 此时可以自行将文件上传至服务器 | |||
let params1 = new FormData(); | |||
params1.append("tableId", this.projectId); | |||
params1.append("tableName", "t_yinnong_cashexpense"); | |||
params1.append("bizPath", "yinnong"); | |||
params1.append("fileType", ''); | |||
params1.append("file", file.file); | |||
commonAttach(params1).then((r1) => { | |||
this.$notify({ type: 'success', message: '上传成功' }); | |||
}) | |||
}, | |||
deleteFile(file){ | |||
systemAttachment(file.id).then(res => { | |||
this.$notify({ type: 'success', message: '删除成功' }); | |||
}) | |||
}, | |||
}, | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.app-container { | |||
padding: 0.2rem 3%; | |||
} | |||
/deep/.van-cell__title{ | |||
flex: 0.7; | |||
} | |||
/deep/.van-cell__title span{ | |||
font-family: Arial; | |||
font-size: 0.4rem; | |||
font-weight: normal; | |||
} | |||
/deep/.van-cell__label{ | |||
display: flex; | |||
justify-content: space-between; | |||
} | |||
/deep/.van-cell__label span{ | |||
color: #1D6FE9; | |||
font-weight: bold; | |||
i{ | |||
font-size: 0.2rem; | |||
} | |||
} | |||
/deep/.van-cell__value{ | |||
flex: 0.3; | |||
color: #1D6FE9; | |||
font-weight: bold; | |||
} | |||
/deep/.van-swipe-cell{ | |||
margin-bottom: 0.2rem; | |||
border-radius: 0.2rem; | |||
overflow: hidden; | |||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||
} | |||
/deep/van-ellipsis{ | |||
font-weight: bold; | |||
} | |||
.van-row{ | |||
height: 100%; | |||
} | |||
.van-col{ | |||
height: 100%; | |||
} | |||
.delete-button { | |||
height: 100%; | |||
} | |||
</style> |
@@ -0,0 +1,190 @@ | |||
<template> | |||
<div class="app-container"> | |||
<van-nav-bar left-arrow fixed placeholder @click-left="$router.back(-1)"> | |||
<template #title> | |||
<p style="font-weight: bold;">资金审批申请流程</p> | |||
</template> | |||
</van-nav-bar> | |||
<div class="main_box"> | |||
<div v-if="showAuditHistory"> | |||
<van-divider content-position="center"><h3>审批历史</h3></van-divider> | |||
<div style="text-align: center; font-size: 14px; color: #969799">批次号:{{ auditbatchNo }}</div> | |||
<van-row v-for="(item, index) in processList" :key="index"> | |||
<van-col span="4" align="right"> | |||
<p class="icon_jian yellow" v-show="item.auditStatus === '1'"> | |||
<van-icon name="minus" size="14"/> | |||
</p> | |||
<p class="icon_jian blue" v-show="item.auditStatus === '3'"> | |||
<van-icon name="success" size="14"/> | |||
</p> | |||
<p class="icon_jian red" v-show="item.auditStatus === '2'"> | |||
<van-icon name="cross" size="14"/> | |||
</p> | |||
</van-col> | |||
<van-col span="20"> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item.auditStatus === '1'" class="textYellow">{{ item.actorName }}</p> | |||
<p v-show="item.auditStatus === '3'" class="textBlue">{{ item.actorName }}</p> | |||
<p v-show="item.auditStatus === '2'" class="textRed">{{ item.actorName }}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item.auditStatus === '1'" class="textYellow">{{ item.auditTime }}</p> | |||
<p v-show="item.auditStatus === '3'" class="textBlue">{{ item.auditTime }}</p> | |||
<p v-show="item.auditStatus === '2'" class="textRed">{{ item.auditTime }}</p> | |||
</van-col> | |||
</van-row> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item.auditStatus === '1'" class="textYellow">{{ item.auditBy }}</p> | |||
<p v-show="item.auditStatus === '3'" class="textBlue">{{ item.auditBy }}</p> | |||
<p v-show="item.auditStatus === '2'" class="textRed">{{ item.auditBy }}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item.auditStatus === '1'" class="textYellow">{{ item.auditRemark }}</p> | |||
<p v-show="item.auditStatus === '3'" class="textBlue">{{ item.auditRemark }}</p> | |||
<p v-show="item.auditStatus === '2'" class="textRed">{{ item.auditRemark }}</p> | |||
</van-col> | |||
</van-row> | |||
</van-col> | |||
</van-row> | |||
</div> | |||
<van-divider content-position="center"><h3>审批流程</h3></van-divider> | |||
<van-row v-for="(item, index) in approvalTemplateDetailList" :key="index"> | |||
<van-col span="4" align="right"> | |||
<p class="icon_jian"> | |||
<van-icon name="minus" size="14"/> | |||
</p> | |||
</van-col> | |||
<van-col span="20"> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;"> | |||
<p>{{ item.name }}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item.approvalLevel === '1'">组级审批</p> | |||
<p v-show="item.approvalLevel === '2'">村级审批</p> | |||
<p v-show="item.approvalLevel === '3'">镇级审批</p> | |||
<p v-show="item.approvalLevel === '4'">区县审批</p> | |||
</van-col> | |||
</van-row> | |||
<van-row> | |||
<van-col span="24" style="padding: 0;"> | |||
<p>{{ item.nickName }}</p> | |||
</van-col> | |||
</van-row> | |||
</van-col> | |||
</van-row> | |||
</div> | |||
</div> | |||
</template> | |||
<script> | |||
import { selectApprovalByTemplateId } from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||
import { getCashExpense } from "@/api/onlineHome/bankAgriculture/cashExpense"; | |||
import { A_auditHistoryList } from "@/api/audit/aauditpipeline"; | |||
export default { | |||
name: "cashExpenseProcess", | |||
data() { | |||
return { | |||
processList: [], | |||
approvalTemplateDetailList: [], | |||
auditbatchNo: null, | |||
showAuditHistory: false, | |||
}; | |||
}, | |||
created() { | |||
if (this.$route.query.id) { | |||
this.queryProcess(this.$route.query.id); | |||
} | |||
if (this.$route.query.templateId) { | |||
this.queryApprovalTemplate(this.$route.query.templateId); | |||
} | |||
}, | |||
methods: { | |||
queryProcess(id) { | |||
getCashExpense(id).then((response) => { | |||
// 查询审批历史 | |||
if (response.data.auditStatus !== '0') { | |||
this.showAuditHistory = true; | |||
this.auditbatchNo = response.data.auditbatchNo; | |||
if (response.data.auditbatchNo != null && response.data.auditbatchNo !== '') { | |||
A_auditHistoryList(response.data.auditbatchNo).then(res => { | |||
this.processList = res.rows; | |||
this.processList.sort((p1, p2) => p1.id - p2.id); | |||
}); | |||
} | |||
} | |||
// this.queryApprovalTemplate(response.data.approvalTemplateId); | |||
}); | |||
}, | |||
queryApprovalTemplate(approvalTemplateId) { | |||
selectApprovalByTemplateId(approvalTemplateId).then(rs => { | |||
this.approvalTemplateDetailList = rs.approvalDetails; | |||
}); | |||
} | |||
}, | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.app-container { | |||
padding: 0.2rem 0; | |||
} | |||
.main_box { | |||
width: 96%; | |||
margin: 0 auto; | |||
border-radius: 6px; | |||
box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16); | |||
overflow: hidden; | |||
background-color: #FFF; | |||
padding: 20Px 0; | |||
} | |||
.icon_jian { | |||
background-color: #C9C9C9; | |||
display: inline-block; | |||
width: 20Px; | |||
height: 20Px; | |||
line-height: 24Px; | |||
text-align: center; | |||
border-radius: 50%; | |||
color: #FFF; | |||
} | |||
.yellow { | |||
background-color: #e6a23c; | |||
} | |||
.blue { | |||
background-color: #409eff; | |||
} | |||
.red { | |||
background-color: #F56C6C; | |||
} | |||
.textYellow { | |||
color: #e6a23c !important; | |||
} | |||
.textBlue { | |||
color: #409eff !important; | |||
} | |||
.textRed { | |||
color: #F56C6C !important; | |||
} | |||
.van-col { | |||
padding: 10Px 10Px; | |||
} | |||
.van-col:nth-child(2) { | |||
font-size: 16Px; | |||
color: #878787; | |||
line-height: 22Px; | |||
} | |||
</style> |
@@ -11,52 +11,41 @@ | |||
</template> | |||
</van-nav-bar> | |||
<div class="main_box"> | |||
<van-divider content-position="center" v-if="this.$route.query.auditbatchNo != 'null'"><h4>批次号:{{this.$route.query.auditbatchNo}}</h4></van-divider> | |||
<van-row v-if="form.auditStatus== '0'"> | |||
<van-col span="4" align="right"><p class="icon_jian blue"><van-icon name="success" size="14" /></p></van-col> | |||
<van-col span="20" class="textBlue">草稿</van-col> | |||
</van-row> | |||
<van-row v-if="form.auditStatus != '0'"> | |||
<van-col span="4" align="right"><p class="icon_jian blue"><van-icon name="success" size="14" /></p></van-col> | |||
<van-col span="20" class="textBlue">已申请 | |||
<van-row> | |||
<van-col span="12" style="padding: 0;" class="textBlue" v-show="processList.auditStatus!='0'">{{form.applyUserName}}</van-col> | |||
<van-col span="12" style="padding: 0;" class="textBlue" v-show="processList.auditStatus!='0'">{{form.applyDate}}</van-col> | |||
</van-row> | |||
</van-col> | |||
</van-row> | |||
<van-row v-for="(item1,index,i) in processList" :key="i"> | |||
<van-col span="4" align="right"> | |||
<p class="icon_jian" v-show="item1.auditStatus=='1'"><van-icon name="minus" size="14" /></p> | |||
<p class="icon_jian blue" v-show="item1.auditStatus=='3'"><van-icon name="success" size="14" /></p> | |||
<p class="icon_jian red" v-show="item1.auditStatus=='2'"><van-icon name="cross" size="14" /></p> | |||
</van-col> | |||
<van-col span="20"> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item1.auditStatus == '1'">{{item1.nodeName}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.nodeName}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.nodeName}}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;" > | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditTime}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditTime}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditTime}}</p> | |||
</van-col> | |||
</van-row> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;" > | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditBy}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditBy}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditBy}}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditRemark}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditRemark}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditRemark}}</p> | |||
</van-col> | |||
</van-row> | |||
</van-col> | |||
<van-row v-for="(item,index) in processList" :key="index"> | |||
<van-divider content-position="center"><h4>批次号:{{index}}</h4></van-divider> | |||
<van-row v-for="(item1,index,i) in item" :key="i"> | |||
<van-col span="4" align="right"> | |||
<p class="icon_jian" v-show="item1.auditStatus=='1'"><van-icon name="minus" size="14" /></p> | |||
<p class="icon_jian blue" v-show="item1.auditStatus=='3'"><van-icon name="success" size="14" /></p> | |||
<p class="icon_jian red" v-show="item1.auditStatus=='2'"><van-icon name="cross" size="14" /></p> | |||
</van-col> | |||
<van-col span="20"> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item1.auditStatus == '1'">{{item1.actorName}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.actorName}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.actorName}}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;" > | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditTime}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditTime}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditTime}}</p> | |||
</van-col> | |||
</van-row> | |||
<van-row> | |||
<van-col span="12" style="padding: 0;" > | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditBy}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditBy}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditBy}}</p> | |||
</van-col> | |||
<van-col span="12" style="padding: 0;"> | |||
<p v-show="item1.auditStatus == '1'">{{item1.auditRemark}}</p> | |||
<p v-show="item1.auditStatus == '3'" class="textBlue">{{item1.auditRemark}}</p> | |||
<p v-show="item1.auditStatus == '2'" class="textRed">{{item1.auditRemark}}</p> | |||
</van-col> | |||
</van-row> | |||
</van-col> | |||
</van-row> | |||
</van-row> | |||
<van-divider content-position="center" v-if="approvalTemplateDetailList.length>0"><h4>审批流程</h4></van-divider> | |||
<van-row v-if="approvalTemplateDetailList.length>0" v-for="(item1,index,i) in approvalTemplateDetailList" :key="i"> | |||
@@ -111,7 +100,7 @@ export default { | |||
//查询审批进程 | |||
getTransferProcess(id){ | |||
getTransferProcess(id).then(res => { | |||
this.processList = res.data[auditbatchNo] | |||
this.processList = res.data | |||
}) | |||
}, | |||
handleUpdate(id) { | |||
@@ -209,12 +198,4 @@ export default { | |||
color: #878787; | |||
line-height: 22Px; | |||
} | |||
.van-row{ | |||
.van-row{ | |||
.van-col{ | |||
padding: 5Px 0 0 0!important; | |||
color: #878787; | |||
} | |||
} | |||
} | |||
</style> |
@@ -190,6 +190,12 @@ | |||
case 'yinnong_majorevent': | |||
this.$router.push({name:'approvalApproval13',query: {id:item.data.id,taskId:item.id,type:"todo"}}) | |||
break; | |||
case 't_yinnong_cashexpense': | |||
this.$router.push({ | |||
path: '/yinnong/cashExpenseApproval', | |||
query: { id: item.data.id, taskId: item.id, auditbatchNo: item.auditbatchNo, type: "todo" } | |||
}); | |||
break; | |||
} | |||
} | |||
}, | |||
@@ -160,6 +160,12 @@ done.vue<template> | |||
case 'yinnong_majorevent': | |||
this.$router.push({name:'approvalApproval13',query: {id:item.formData.id,taskId:item.taskId,type:item.type}}) | |||
break; | |||
case 't_yinnong_cashexpense': | |||
this.$router.push({ | |||
path: '/yinnong/cashExpenseApproval', | |||
query: { id: item.data.id, taskId: item.id, auditbatchNo: item.auditbatchNo, type: "done" } | |||
}); | |||
break; | |||
} | |||
} | |||
}, | |||
@@ -218,10 +218,10 @@ | |||
this.hcAreaInfoOption = res.data; | |||
} | |||
}), | |||
this.$set(this.queryParams, "systemType", '4'); | |||
/* this.$set(this.queryParams, "systemType", '4'); | |||
ListTodo(this.queryParams).then((response) => { | |||
this.taskList = response.rows | |||
}) | |||
})*/ | |||
menus({identityType : 4}).then((response) => { | |||
this.menusList = response.data | |||