|
@@ -0,0 +1,429 @@
|
|
|
+//油费
|
|
|
+<template>
|
|
|
+ <div class="container">
|
|
|
+ <el-row class="row_top">
|
|
|
+ <el-col :span="12">
|
|
|
+ <h2 class="bg-left title">油费</h2>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12" class="bg-right"><el-button class="bg-bottom" type="primary" size="small" @click="returnsales()"><img width="6" height="10"
|
|
|
+ style="vertion-align: bottom; margin-right: 3px" src="../../../public/img/lujing.png" alt="" />返回
|
|
|
+ </el-button></el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="center">
|
|
|
+ <el-row style='margin-bottom:10px;'>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-button style="margin-left:10px" @click="strokeTypeChange(1)" :type="strokeType == 1?'primary':''">长途加油</el-button>
|
|
|
+ <el-button @click="strokeTypeChange(3)" :type="strokeType == 3?'primary':''">短途加油</el-button>
|
|
|
+ <!-- <el-button style="margin-left:10px" @click="typeChange('')" type="primary">导出</el-button> -->
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <div style="flex-direction: row-reverse;" class="datascreen">
|
|
|
+ <el-button class="find" type="primary" @click="find()"><img width="16" height="16" style="left: -8px;"
|
|
|
+ src="../../../public/img/sousuo.png" alt="" /></el-button>
|
|
|
+ <el-input placeholder="可按费用名称、流向、经办人查找" class="input_css" v-model="searchKeyWord" clearable></el-input>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row style='margin-bottom:10px;'>
|
|
|
+ <el-col :span="18">
|
|
|
+ <el-button style="margin-left:10px" @click="typeChange('')" :type="searchType == ''?'primary':''">全部</el-button>
|
|
|
+ <el-button @click="typeChange(1)" :type="searchType == 1?'primary':''">待审核</el-button>
|
|
|
+ <el-button @click="typeChange(1)" :type="searchType == 1?'primary':''">已通过</el-button>
|
|
|
+ <el-button @click="typeChange(1)" :type="searchType == 1?'primary':''">已驳回</el-button>
|
|
|
+ <el-button @click="typeChange(2)" :type="searchType == 2?'primary':''">已付款</el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col style='text-align:right;' :span="6">
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div class="fromdata">
|
|
|
+ <el-table :data="tableData" stripe style="width: 100%">
|
|
|
+ <el-table-column type="index" label="序号">
|
|
|
+ <template scope="scope">
|
|
|
+ <span v-if="scope.$index < 9">0{{ scope.$index + 1 }}</span>
|
|
|
+ <span v-else>{{ scope.$index + 1 }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="fillingNo" label="申请编号" width="100px">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column v-if="strokeType == 1" prop="driverName" label="司机名" width="100px">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column v-if="strokeType == 1" prop="carNo" label="车牌号" width="150px">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="feeType" label="请款金额">
|
|
|
+ <template scope="scope">
|
|
|
+ <span v-if="strokeType==1">0{{ scope.row.totalCost }}</span>
|
|
|
+ <span v-else>{{ scope.row.amountRequested }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+ <el-table-column prop="purpose" label="起点" width="200px">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.originProvince}}{{scope.row.originCity}}{{scope.row.originArea}}{{scope.row.originAddress}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="amountMoney" label="终点">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.destinationProvince}}{{scope.row.destinationCity}}{{scope.row.destinationArea}}{{scope.row.destinationAddress}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="tfc" width="120" label="油耗(升)"></el-table-column>
|
|
|
+ <el-table-column prop="approveStatus" width="100" label="状态">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.destinationProvince}}{{scope.row.destinationCity}}{{scope.row.destinationArea}}{{scope.row.destinationAddress}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="expenseRemarks" label="附件">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <img width="18" height="20" style="vertical-align: text-top; position: relative; top: -1px"
|
|
|
+ src="../../../public/img/fujian.png" @click="fujian(scope.row)" alt="" />
|
|
|
+ <span v-if="scope.row.addressUrlArray != null">
|
|
|
+ {{
|
|
|
+ scope.row.addressUrlArray.length == 0
|
|
|
+ ? ''
|
|
|
+ : scope.row.addressUrlArray.length
|
|
|
+ }}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="agent" label="轨迹"></el-table-column>
|
|
|
+
|
|
|
+ <el-table-column prop="address" label="操作" width="300">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button @click="look(scope.row)" type="primary">查看</el-button>
|
|
|
+
|
|
|
+ <!-- <el-button v-if='scope.row.approveStatus=="待确认"' @click="accomplish(scope.row)" type="primary">完成</el-button> -->
|
|
|
+ <el-button v-if='scope.row.approveStatus' @click="pass(scope.row)" type="primary">通过</el-button>
|
|
|
+ <el-button v-if='scope.row.approveStatus' @click="edit(scope.row)" type="primary">驳回</el-button>
|
|
|
+ <!-- <el-button v-if='scope.row.status=="已驳回"' @click="expenseedit(scope.row)" type="primary">编辑</el-button> -->
|
|
|
+ <el-button v-if='!scope.row.approveStatus&&scope.row.expensesType==2&&scope.row.status=="待付款"' @click="payment(scope.row)" type="primary">付款</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
|
|
|
+ style="text-align:center" :page-size="pageSize"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper" :total="deptBudgetTotal">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ <el-dialog width='50%' :visible.sync="dialogVisible1" :title="title1">
|
|
|
+ <div style='padding:20px;' v-for="(item,index) in recordList" :style="{'border-bottom':(index!=recordList.length-1?'1px solid #ccc':'none')}"
|
|
|
+>
|
|
|
+ <div style='width:100%;justify-content: space-between;' class='flex'>
|
|
|
+ <div style='width:33.333%;text-align:left;'>{{item.operateUser}}</div>
|
|
|
+ <div style='width:33.333%;text-align:center;'>{{item.dealMsg!='请款'?item.approveResult==1?'通过':'驳回':item.dealMsg}}</div>
|
|
|
+ <div style='width:33.333%;text-align:right;'>{{item.operateDate}}</div>
|
|
|
+ </div>
|
|
|
+ <div v-if='index<recordList.length-1' style='width:100%;text-align:left;'>审核意见:{{item.verifyRemark}}</div>
|
|
|
+ <div v-else style='width:100%;text-align:left;'>审核意见:{{item.verifyRemark}}</div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <WinseaContentModal v-model="fujianshow" :title="title"
|
|
|
+ @on-cancel="handleClose">
|
|
|
+ <ws-upload :editable='false' ref="upload" accept=".jpg, .jpeg, .png, .pdf, .doc, .docx, .xls, .xlsx" :comp-id="compId" :appendix-ids="appendixIdss" :size-limit="size"
|
|
|
+ />
|
|
|
+ </WinseaContentModal>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+ import WsUpload from '@/components/WsUpload'
|
|
|
+ import {
|
|
|
+ getfielfillinginfo
|
|
|
+ } from '@/model/profitable/index'
|
|
|
+ import {
|
|
|
+ woekflowhandle
|
|
|
+ } from '@/model/tasksport/index'
|
|
|
+ export default {
|
|
|
+ components: {
|
|
|
+ WsUpload,
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ value: "",
|
|
|
+ tableData: [],
|
|
|
+ deptBudgetTotal: 0,
|
|
|
+ currentPage: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ size:9,
|
|
|
+ recordList:[],
|
|
|
+ compId:localStorage.getItem('ws-pf_compId'),
|
|
|
+ dialogVisible1:false,
|
|
|
+ deptCircularPage: {},
|
|
|
+ searchType:"",
|
|
|
+ searchKeyWord:"",
|
|
|
+ strokeType:'1',
|
|
|
+ title:'附件',
|
|
|
+ title1:'',
|
|
|
+ outtotal:0,
|
|
|
+ intotal:0,
|
|
|
+ fujianshow:false,
|
|
|
+ appendixIdss:[],
|
|
|
+ }
|
|
|
+ },
|
|
|
+ activated() {
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ handlerecord(row){
|
|
|
+ if(row.expensesType==1){
|
|
|
+ this.title1='收款审核记录'
|
|
|
+ }else{
|
|
|
+ this.title1='请款审核记录'
|
|
|
+ }
|
|
|
+ getAuditRecord({ id: row.id,
|
|
|
+ workflowId: row.workflowId}).toPromise()
|
|
|
+ .then((response) => {
|
|
|
+ this.recordList=response
|
|
|
+ this.dialogVisible1=true
|
|
|
+ }).catch((response) => {})
|
|
|
+ },
|
|
|
+ returnsales(){
|
|
|
+ this.$router.go(-1)
|
|
|
+ },
|
|
|
+ handleClose() {
|
|
|
+ this.fujianshow = false
|
|
|
+ },
|
|
|
+ fujian(row) {
|
|
|
+ this.id = row.id
|
|
|
+ this.fujianshow = true
|
|
|
+ if(row.addressUrl){
|
|
|
+ this.appendixIdss=row.addressUrl
|
|
|
+ }
|
|
|
+ },
|
|
|
+ look(row){
|
|
|
+ this.$router.push({name:'expensemanagentlook',query:{id:row.id,expensesType:row.expensesType}})
|
|
|
+ },
|
|
|
+
|
|
|
+ strokeTypeChange(num){
|
|
|
+ this.strokeType = num
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ typeChange(num){
|
|
|
+ this.searchType = num
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ edit(row){
|
|
|
+ this.$router.push({name:'cashoutedit',query:{id:row.id}})
|
|
|
+ },
|
|
|
+ pass(row){
|
|
|
+ if(row.taskId){
|
|
|
+ this.$confirm('确认通过请款信息?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ woekflowhandle({
|
|
|
+ taskId: row.taskId,
|
|
|
+ approved:true,
|
|
|
+ auditMind: '34',
|
|
|
+ needReapply: true,
|
|
|
+ }).toPromise()
|
|
|
+ .then((response) => {
|
|
|
+ this.$message({
|
|
|
+ message: '通过成功!',
|
|
|
+ type: 'success',
|
|
|
+ })
|
|
|
+ this.$router.go(-1)
|
|
|
+ }).catch((response) => {
|
|
|
+ this.$message({
|
|
|
+ message: '通过失败!',
|
|
|
+ type: 'error',
|
|
|
+ })
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ this.$message({
|
|
|
+ message: '暂无此权限!',
|
|
|
+ type: 'warning',
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ pass(row){
|
|
|
+ if(row.taskId){
|
|
|
+ this.$confirm('确认通过请款信息?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ woekflowhandle({
|
|
|
+ taskId: row.taskId,
|
|
|
+ approved:false,
|
|
|
+ auditMind: '34',
|
|
|
+ needReapply: true,
|
|
|
+ }).toPromise()
|
|
|
+ .then((response) => {
|
|
|
+ this.$message({
|
|
|
+ message: '通过成功!',
|
|
|
+ type: 'success',
|
|
|
+ })
|
|
|
+ this.$router.go(-1)
|
|
|
+ }).catch((response) => {
|
|
|
+ this.$message({
|
|
|
+ message: '通过失败!',
|
|
|
+ type: 'error',
|
|
|
+ })
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ this.$message({
|
|
|
+ message: '暂无此权限!',
|
|
|
+ type: 'warning',
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ payment(row){
|
|
|
+ if(localStorage.getItem('ws-pf_roleName')=='出纳'){
|
|
|
+ this.$router.push({name:'payment',query:{id:row.id}})
|
|
|
+ }else{
|
|
|
+ this.$message({
|
|
|
+ message: '暂无此权限!',
|
|
|
+ type: 'warning',
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ allot(row){
|
|
|
+ if(localStorage.getItem('ws-pf_roleName')=='销售内勤'||localStorage.getItem('ws-pf_roleName')=='采购内勤'){
|
|
|
+ this.$router.push({name:'expenseallot',query:{id:row.id}})
|
|
|
+ }else{
|
|
|
+ this.$message({
|
|
|
+ message: '暂无此权限!',
|
|
|
+ type: 'warning',
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ cashout(){
|
|
|
+ this.$router.push({name:'cashout'})
|
|
|
+ },
|
|
|
+ storageCharge(){
|
|
|
+ this.$router.push({name:'storageCharge'})
|
|
|
+ },
|
|
|
+ receipt(){
|
|
|
+ this.$router.push({name:'receipt'})
|
|
|
+ },
|
|
|
+ // inventory(){
|
|
|
+ // this.$router.push({name:'contractinventory'})
|
|
|
+ // },
|
|
|
+ getList() {
|
|
|
+ getfielfillinginfo({
|
|
|
+ // warehouseType: 1,
|
|
|
+ compId: localStorage.getItem('ws-pf_compId'),
|
|
|
+ searchKeyWord:this.searchKeyWord,
|
|
|
+ currentPage: this.currentPage,
|
|
|
+ pageSize:this.pageSize ,
|
|
|
+ strokeType:this.strokeType
|
|
|
+ // searchType:this.searchType
|
|
|
+ })
|
|
|
+ .toPromise()
|
|
|
+ .then(response => {
|
|
|
+ this.tableData = response.records
|
|
|
+ this.deptBudgetTotal = response.total
|
|
|
+ })
|
|
|
+ },
|
|
|
+ changeDate(){
|
|
|
+ if(this.value){
|
|
|
+ this.startDate = this.value[0]
|
|
|
+ this.endDate = this.value[1]
|
|
|
+ }
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ pickerOptions() {},
|
|
|
+ find() {
|
|
|
+ this.getList()
|
|
|
+
|
|
|
+ },
|
|
|
+ handleSizeChange(val) {
|
|
|
+ console.log(`每页 ${val} 条`)
|
|
|
+ this.pageSize = val
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ handleCurrentChange(val) {
|
|
|
+ this.currentPage = val
|
|
|
+ console.log(`当前页: ${val}`)
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+ .container {
|
|
|
+ background: #E8ECF6;
|
|
|
+ }
|
|
|
+
|
|
|
+ .center {
|
|
|
+ margin: 0 auto;
|
|
|
+ background: #ffffff;
|
|
|
+ // height: calc(100vh - 13vh);
|
|
|
+ border-radius: 4px;
|
|
|
+ padding: 20px 0;
|
|
|
+
|
|
|
+ /deep/.el-table td,
|
|
|
+ /deep/.el-table th {
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .row_top {
|
|
|
+ background: #F6F7FC;
|
|
|
+ border-radius: 4px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+
|
|
|
+ .bg-left {
|
|
|
+ padding-left: 30px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .bg-right {
|
|
|
+ padding-right: 10px;
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+
|
|
|
+ .title {
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+
|
|
|
+ .title::before {
|
|
|
+ content: '';
|
|
|
+ display: inline-block;
|
|
|
+ width: 5px;
|
|
|
+ height: 30px;
|
|
|
+ background: #5473e8;
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .datascreen {
|
|
|
+ display: flex;
|
|
|
+
|
|
|
+ .data_css {
|
|
|
+ width: 40%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .input_css {
|
|
|
+ width: 50%;
|
|
|
+ margin: 0 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .find {
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .fromdata {
|
|
|
+ margin: 20px 0;
|
|
|
+ overflow-y: scroll;
|
|
|
+ height: 546px;
|
|
|
+ }
|
|
|
+ .top_info{
|
|
|
+ margin: 10px 0 0 10px;
|
|
|
+ min-width: 712px;
|
|
|
+ .info_css{
|
|
|
+ margin-right: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .bg-right{
|
|
|
+ padding-top:15px;
|
|
|
+ }
|
|
|
+</style>
|