刘翔宇-旅管家 4 years ago
parent 45c7a785ea
commit 4d93802cee

@ -43,7 +43,7 @@
</xy-table>
<div style="display: flex;justify-content: flex-end;">
<Page :total="total" show-elevator @on-change="pageChange" />
<Page :total="total" show-elevator @on-change="pageChange" show-sizer @on-page-size-change="pageSizeChange" />
</div>
<!-- 新增-->
@ -329,7 +329,8 @@
list: [],
totalMoney: 0,
total: 0,
pageIndex: 1,
pageIndex: 1,
pageSize:10,
table: [{
label: "项目名称",
prop: 'name',
@ -478,6 +479,11 @@
pageChange(e) {
this.pageIndex = e
this.getBudgets()
},
pageSizeChange(e){
this.pageSize = e
this.pageIndex = 1
this.getBudgets()
},
//
getDepartment() {
@ -488,7 +494,7 @@
//
getBudgets() {
getBudget({
page_size: 10,
page_size: this.pageSize ,
page: this.pageIndex,
year: this.select.year,
type: this.select.type,

@ -42,7 +42,7 @@
</xy-table>
<div style="display: flex;justify-content: flex-end;">
<Page :total="total" show-elevator @on-change="pageChange" />
<Page :total="total" show-elevator @on-change="pageChange" show-sizer @on-page-size-change="pageSizeChange" />
</div>
</div>
</template>
@ -111,6 +111,7 @@
totalMoney: 0,
total: 0,
pageIndex: 1,
pageSize: 10,
table: [{
label: "项目名称",
prop: 'name',
@ -224,7 +225,11 @@
})
return sums
},
pageSizeChange(e) {
this.pageIndex = 1;
this.pageSize = e;
this.getBudgets()
},
//
pageChange(e) {
this.pageIndex = e
@ -239,7 +244,7 @@
//
getBudgets() {
getBudget({
page_size: 10,
page_size: this.pageSize,
page: this.pageIndex,
year: this.select.year,
type: this.select.type,

@ -103,7 +103,7 @@
</div>
</div>
</template>
<template v-slot:date>
<template v-slot:date v-if="adminEdit">
<div class="xy-table-item">
<div class="xy-table-item-label">合同签订日期
</div>

@ -224,7 +224,7 @@
</xy-table>
<div style="display: flex;justify-content: flex-end;">
<Page :total="total" show-elevator @on-change="pageChange" />
<Page :total="total" show-elevator @on-change="pageChange" show-sizer @on-page-size-change="pageSizeChange" />
</div>
<!-- 新增合同 -->
@ -492,6 +492,7 @@
keyword: '',
showDatePicker: '',
pageIndex: 1,
pageSize: 10,
startDate: "",
endDate: "",
type: "",
@ -830,8 +831,8 @@
label: "名称",
prop: 'name',
align: 'left'
},
},
{
label: "计划金额",
prop: 'money',
@ -1288,12 +1289,17 @@
number: 'purchase_type'
})).detail
},
pageSizeChange(e) {
this.select.pageSize = e;
this.select.pageIndex = 1;
this.getContracts();
},
//
async getContracts() {
const res = await getContract({
page_size: 10,
page_size: this.select.pageSize,
page: this.select.pageIndex,
is_auth: 1,
...this.select

@ -1,171 +1,193 @@
<template>
<div style="padding: 0 20px;">
<lx-header icon="md-apps" style="margin-bottom: 10px; border: 0px; margin-top: 15px" text="付款计划">
<div slot="content"></div>
<slot>
<div class="selects">
<div>
<span style="padding: 0 6px;word-break: keep-all;">
付款计划日期
</span>
<DatePicker :value="[select.start,select.end]" placeholder="请选择日期" placement="bottom-start" style="width: 200px"
type="daterange" @on-change="datePick"></DatePicker>
</div>
<div>
<span style="padding: 0 6px;word-break: keep-all;">
关键字
</span>
<Input v-model="select.keyword" placeholder="请输入关键字" style="width: 180px"></Input>
</div>
<Button style="margin-left: 10px" type="primary"
@click="select={showDate:'',start:'',end:'',pageIndex:1,keyword:''}">重置
</Button>
<Button style="margin-left: 10px" type="primary" @click="getSignPlan"></Button>
</div>
</slot>
</lx-header>
<xy-table :list="list" :table-item="table" @delete="deleteContractSign"
@editor="(row)=>{$refs['detailContractSign'].planId = row.id;$refs['detailContractSign'].isShow = true}"></xy-table>
<div style="display: flex;justify-content: flex-end;">
<Page :total="total" show-elevator/>
</div>
<detailContractSign ref="detailContractSign" @editorSuccess="getSignPlan"></detailContractSign>
</div>
</template>
<script>
import {getContractSign, delContractSign} from "@/api/contractSign/contractSign"
import {parseTime} from "@/utils"
import {Message} from "element-ui";
import detailContractSign from "@/views/contract/components/detailContractSign";
export default {
components: {
detailContractSign
},
data() {
return {
select: {
start: `${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}`,
end: `${new Date().getFullYear()}-${new Date().getMonth() + 2}-${new Date().getDate()}`,
pageIndex: 1,
keyword: ''
},
total: 0,
list: [],
table: [
{
prop: 'contract.name',
label: '项目名称',
width: 170,
align: 'left',
fixed: 'left'
},
{
prop: 'money',
label: '计划付款金额(元)',
align: 'right',
width: 170,
formatter: (v1, v2, value) => {
return Number(value).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
}
},
{
prop: 'date',
label: '计划付款日期',
width: 180
},
{
prop: 'content',
label: '内容',
minWidth: 180,
align: 'left'
},
{
prop: 'contract.created_at',
label: '合同签订日期',
width: 180,
formatter: (v1, v2, value) => {
return parseTime(new Date(value), '{y}-{m}-{d}')
}
},
{
prop: 'contract.supply',
label: '受款单位',
width: 140
},
{
prop: 'admin.name',
label: '经办人',
width: 140
},
{
prop: 'department.name',
label: '经办科室',
width: 140
},
{
prop: 'created_at',
label: '创建信息',
width: 160,
formatter: (v1, v2, value) => {
return parseTime(new Date(value), '{y}-{m}-{d}')
}
}
],
}
},
methods: {
async getSignPlan() {
const res = await getContractSign({
page_size: 10,
page: this.select.pageIndex,
keyword: this.select.keyword,
start_date: this.select.start,
end_date: this.select.end,
is_auth:1
})
this.total = res.total
this.list = res.data
},
deleteContractSign(row) {
delContractSign({id: row.id}).then(res => {
this.getSignPlan()
Message({
type: 'success',
message: "操作成功"
})
})
},
datePick(e) {
this.select.start = e[0]
this.select.end = e[1]
},
pageChange(e) {
this.select.pageIndex = e
this.getSignPlan()
},
},
mounted() {
this.getSignPlan()
}
}
</script>
<style lang="scss" scoped>
.selects {
display: flex;
flex-wrap: wrap;
& > div {
margin-bottom: 6px;
}
}
<template>
<div style="padding: 0 20px;">
<lx-header icon="md-apps" style="margin-bottom: 10px; border: 0px; margin-top: 15px" text="付款计划">
<div slot="content"></div>
<slot>
<div class="selects">
<div>
<span style="padding: 0 6px;word-break: keep-all;">
付款计划日期
</span>
<DatePicker :value="[select.start,select.end]" placeholder="请选择日期" placement="bottom-start"
style="width: 200px" type="daterange" @on-change="datePick"></DatePicker>
</div>
<div>
<span style="padding: 0 6px;word-break: keep-all;">
关键字
</span>
<Input v-model="select.keyword" placeholder="请输入关键字" style="width: 180px"></Input>
</div>
<Button style="margin-left: 10px" type="primary"
@click="select={showDate:'',start:'',end:'',pageIndex:1,keyword:''}">重置
</Button>
<Button style="margin-left: 10px" type="primary" @click="getSignPlan"></Button>
</div>
</slot>
</lx-header>
<xy-table :list="list" :table-item="table" @delete="deleteContractSign"
@editor="(row)=>{$refs['detailContractSign'].planId = row.id;$refs['detailContractSign'].isShow = true}">
<template v-slot:btns v-if="type==0">
</template>
</xy-table>
<div style="display: flex;justify-content: flex-end;">
<Page :total="total" @on-change="pageChange" show-elevator show-sizer @on-page-size-change="pageSizeChange" />
</div>
<detailContractSign ref="detailContractSign" @editorSuccess="getSignPlan"></detailContractSign>
</div>
</template>
<script>
import {
getContractSign,
delContractSign
} from "@/api/contractSign/contractSign"
import {
parseTime
} from "@/utils"
import {
Message
} from "element-ui";
import detailContractSign from "@/views/contract/components/detailContractSign";
export default {
components: {
detailContractSign
},
data() {
return {
select: {
start: `${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}`,
end: `${new Date().getFullYear()}-${new Date().getMonth() + 2}-${new Date().getDate()}`,
pageIndex: 1,
keyword: '',
is_auth: 1,
},
total: 0,
list: [],
table: [{
prop: 'contract.name',
label: '项目名称',
width: 170,
align: 'left',
fixed: 'left'
},
{
prop: 'money',
label: '计划付款金额(元)',
align: 'right',
width: 170,
formatter: (v1, v2, value) => {
return Number(value).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
}
},
{
prop: 'date',
label: '计划付款日期',
width: 180
},
{
prop: 'content',
label: '内容',
minWidth: 180,
align: 'left'
},
{
prop: 'contract.created_at',
label: '合同签订日期',
width: 180,
formatter: (v1, v2, value) => {
return parseTime(new Date(value), '{y}-{m}-{d}')
}
},
{
prop: 'contract.supply',
label: '受款单位',
width: 140
},
{
prop: 'admin.name',
label: '经办人',
width: 140
},
{
prop: 'department.name',
label: '经办科室',
width: 140
},
{
prop: 'created_at',
label: '创建信息',
width: 160,
formatter: (v1, v2, value) => {
return parseTime(new Date(value), '{y}-{m}-{d}')
}
}
],
}
},
methods: {
pageSizeChange(e) {
this.select.pageSize = e;
this.select.pageIndex = 1;
this.getSignPlan();
},
async getSignPlan() {
const res = await getContractSign({
page_size: this.select.pageSize,
page: this.select.pageIndex,
keyword: this.select.keyword,
start_date: this.select.start,
end_date: this.select.end,
is_auth: this.select.is_auth
})
this.total = res.total
this.list = res.data
},
deleteContractSign(row) {
delContractSign({
id: row.id
}).then(res => {
this.getSignPlan()
Message({
type: 'success',
message: "操作成功"
})
})
},
datePick(e) {
this.select.start = e[0]
this.select.end = e[1]
},
pageChange(e) {
this.select.pageIndex = e
this.getSignPlan()
},
},
mounted() {
this.getSignPlan()
},
created() {
let type = parseInt(this.$route.path.split("_")[1]);
this.type = this.select.is_auth = type;
}
}
</script>
<style lang="scss" scoped>
.selects {
display: flex;
flex-wrap: wrap;
&>div {
margin-bottom: 6px;
}
}
</style>

@ -1,181 +1,223 @@
<template>
<div style="padding: 0 20px;">
<lx-header icon="md-apps" text="付款登记" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content"></div>
<slot>
<span style="padding: 0 6px;word-break: keep-all;">创建日期</span>
<span>
<DatePicker :value="selectDate" placeholder="请选择日期" type="date" placement="bottom-start" style="width: 180px" @on-change="(e)=>selectDate = e"></DatePicker>
</span>
<span style="padding: 0 6px;word-break: keep-all;">关键字</span>
<span>
<Input v-model="keywords" placeholder="请输入关键字" style="width: 180px"></Input>
</span>
<Button type="primary" style="margin-left: 10px" ghost @click="contractId = '',pageIndex = 1,keywords = '',selectDate = ''">重置</Button>
<Button type="primary" style="margin-left: 10px" @click="getFundLogs"></Button>
</slot>
</lx-header>
<xy-table :list="list" :table-item="table">
<template v-slot:btns>
<el-table-column label="操作" fixed="right" width="200" header-align="center">
<template slot-scope="scope">
<template v-if="scope.row.status === 0">
<Poptip
placement="bottom"
confirm
:transfer="true"
title="确认要删除吗"
@on-ok="deleteFundLog(scope.row)">
<Button size="small" type="error" style="margin-left: 10px;margin-bottom: 4px" ghost>删除</Button>
</Poptip>
<Button size="small" type="primary" style="margin-left: 10px;margin-bottom: 4px" @click="$refs['detailPaymentRegistration'].getFundLog(scope.row.id),$refs['detailPaymentRegistration'].isShow = true">编辑</Button>
</template>
<Button size="small" type="primary" style="margin-left: 10px;margin-bottom: 4px" @click="$refs['printRegistration'].getDetailFundLog(scope.row.id),$refs['printRegistration'].isShow = true">打印</Button>
</template>
</el-table-column>
</template>
</xy-table>
<div style="display: flex;justify-content: flex-end;">
<Page :total="total" show-elevator @on-change="pageChange"/>
</div>
<printRegistration ref="printRegistration"></printRegistration>
<detailPaymentRegistration ref="detailPaymentRegistration" @success="getFundLogs"></detailPaymentRegistration>
</div>
</template>
<script>
import {getFundLog,delFundLog} from "@/api/paymentRegistration/fundLog"
import {parseTime} from "@/utils"
import {Message} from "element-ui";
import printRegistration from "./components/printRegistration";
import detailPaymentRegistration from "./components/detailPaymentRegistration";
export default {
components:{
printRegistration,
detailPaymentRegistration
},
data() {
return {
selectDate:'',
keywords:'',
list:[],
contractId:'',
total:0,
pageIndex:1,
table:[
{
label:"项目名称",
minWidth: 150,
prop:'contract.name',
align:'left',
fixed:'left'
},
{
label:"付款申请金额(元)",
prop:"apply_money",
align:'right',
width: 180,
formatter:(v1,v2,value)=>{
return Number(value).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
}
},
{
label:'实际支付金额(元)',
prop:"act_money",
align:'right',
width: 180,
formatter:(v1,v2,value)=>{
return Number(value).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
}
},
{
label:"款项类型",
prop:"type",
width: 120
},
{
prop:'status',
label:'状态',
width: 120,
formatter:(cell,data,value)=>{
if(value === 0) return '待审核'
else return '已审核'
}
},
{
label:"是否为最后一笔",
prop:"is_end",
width: 145,
formatter:(cell,data,value)=>{
return value == 1 ? "是" : "否"
}
},
{
label:"经办人",
minWidth: 160,
prop:'admin.name',
align:'center'
},
{
label:"业务科室",
minWidth: 160,
prop:'department.name',
align:'center'
},
{
label:"备注",
minWidth: 160,
prop:'remark',
align:'left'
},
{
label:"创建信息",
prop:"created_at",
width:160,
formatter:(cell,data,value)=>{
return parseTime(new Date(value),'{y}-{m}-{d}')
}
}
]
}
},
methods: {
pageChange(e){
this.pageIndex = e
this.getFundLogs()
},
async getFundLogs(){
const res = await getFundLog({page_size:10,page:this.pageIndex,contract_id:this.contractId,keyword:this.keywords,date:this.selectDate})
this.list = res.data
this.total = res.total
},
deleteFundLog(row){
delFundLog({id:row.id}).then(res=>{
Message({
type:'success',
message:'操作成功'
})
this.getFundLogs()
})
}
},
mounted() {
this.contractId = this.$route.query.contractId
this.getFundLogs()
},
}
</script>
<style scoped lang="scss">
<template>
<div style="padding: 0 20px;">
<lx-header icon="md-apps" text="付款登记" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content"></div>
<slot>
<span style="padding: 0 6px;word-break: keep-all;">创建日期</span>
<span>
<DatePicker :value="selectDate" placeholder="请选择日期" type="date" placement="bottom-start" style="width: 180px"
@on-change="(e)=>selectDate = e"></DatePicker>
</span>
<span style="padding: 0 6px;word-break: keep-all;">关键字</span>
<span>
<Input v-model="keywords" placeholder="请输入关键字" style="width: 180px"></Input>
</span>
<span style="padding: 0 6px;word-break: keep-all;">
状态
</span>
<Select v-model="status" clearable placeholder="请选择" style="width:100px;">
<Option v-for="item in [{label:'待审核',value:0},{label:'已审核',value:1}]" :key="item.value" :value="item.value">
{{ item.label }}
</Option>
</Select>
<Button type="primary" style="margin-left: 10px" ghost
@click="contractId = '',pageIndex = 1,keywords = '',selectDate = ''">重置</Button>
<Button type="primary" style="margin-left: 10px" @click="getFundLogs"></Button>
</slot>
</lx-header>
<xy-table :list="list" :table-item="table">
<template v-slot:btns>
<el-table-column label="操作" fixed="right" width="200" header-align="center">
<template slot-scope="scope">
<template v-if="scope.row.status === 0&&type==1">
<Poptip placement="bottom" confirm :transfer="true" title="确认要删除吗" @on-ok="deleteFundLog(scope.row)">
<Button size="small" type="error" style="margin-left: 10px;margin-bottom: 4px" ghost>删除</Button>
</Poptip>
<Button size="small" type="primary" style="margin-left: 10px;margin-bottom: 4px"
@click="$refs['detailPaymentRegistration'].getFundLog(scope.row.id),$refs['detailPaymentRegistration'].isShow = true">编辑</Button>
</template>
<Button size="small" type="primary" style="margin-left: 10px;margin-bottom: 4px"
@click="$refs['printRegistration'].getDetailFundLog(scope.row.id),$refs['printRegistration'].isShow = true">打印</Button>
</template>
</el-table-column>
</template>
</xy-table>
<div style="display: flex;justify-content: flex-end;">
<Page :total="total" show-elevator @on-change="pageChange" show-sizer @on-page-size-change="pageSizeChange" />
</div>
<printRegistration ref="printRegistration"></printRegistration>
<detailPaymentRegistration ref="detailPaymentRegistration" @success="getFundLogs"></detailPaymentRegistration>
</div>
</template>
<script>
import {
getFundLog,
delFundLog
} from "@/api/paymentRegistration/fundLog"
import {
parseTime
} from "@/utils"
import {
Message
} from "element-ui";
import printRegistration from "./components/printRegistration";
import detailPaymentRegistration from "./components/detailPaymentRegistration";
export default {
components: {
printRegistration,
detailPaymentRegistration
},
data() {
return {
selectDate: '',
keywords: '',
list: [],
contractId: '',
total: 0,
pageIndex: 1,
pageSize: 10,
is_auth: 1,
status: "",
table: [{
label: "项目名称",
minWidth: 250,
prop: 'contract.name',
align: 'left',
fixed: 'left'
},
{
label: "付款申请金额(元)",
prop: "apply_money",
align: 'right',
width: 180,
formatter: (v1, v2, value) => {
return Number(value).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
}
},
{
label: '实际支付金额(元)',
prop: "act_money",
align: 'right',
width: 180,
formatter: (v1, v2, value) => {
return Number(value).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,')
}
},
{
label: "款项类型",
prop: "type",
width: 120
},
{
prop: 'status',
label: '状态',
width: 120,
formatter: (cell, data, value) => {
if (value === 0) return '待审核'
else return '已审核'
}
},
{
label: "次数",
prop: "pay_count",
width: 95,
formatter: (cell, data, value) => {
return value + 1;
}
},
{
label: "是否为最后一笔",
prop: "is_end",
width: 145,
formatter: (cell, data, value) => {
return value == 1 ? "是" : "否"
}
},
{
label: "经办人",
minWidth: 160,
prop: 'admin.name',
align: 'center'
},
{
label: "业务科室",
minWidth: 160,
prop: 'department.name',
align: 'center'
},
{
label: "备注",
minWidth: 460,
prop: 'remark',
align: 'left'
},
{
label: "创建信息",
prop: "created_at",
width: 160,
formatter: (cell, data, value) => {
return parseTime(new Date(value), '{y}-{m}-{d}')
}
}
]
}
},
methods: {
pageSizeChange(e) {
this.pageSize = e;
this.pageIndex = 1;
this.getFundLogs()
},
pageChange(e) {
this.pageIndex = e
this.getFundLogs()
},
async getFundLogs() {
const res = await getFundLog({
page_size: this.pageSize,
page: this.pageIndex,
contract_id: this.contractId,
keyword: this.keywords,
date: this.selectDate,
is_auth: this.selectDate,
status: this.status,
})
this.list = res.data
this.total = res.total
},
deleteFundLog(row) {
delFundLog({
id: row.id
}).then(res => {
Message({
type: 'success',
message: '操作成功'
})
this.getFundLogs()
})
}
},
mounted() {
this.contractId = this.$route.query.contractId
this.getFundLogs()
},
created() {
let type = parseInt(this.$route.path.split("_")[1]);
this.type = this.is_auth = type;
}
}
</script>
<style scoped lang="scss">
</style>

@ -175,7 +175,7 @@
</xy-table>
<div style="display: flex;justify-content: flex-end;">
<Page :total="total" show-elevator @on-change="pageChange" />
<Page :total="total" show-elevator @on-change="pageChange" show-sizer @on-page-size-change="pageSizeChange" />
</div>
<!-- 新增合同 -->
@ -458,8 +458,8 @@
plan_id: "",
plan_name: "请选择预算计划",
start_plan_price: "",
end_plan_price: "",
assurance_status:0
end_plan_price: "",
assurance_status: 0
},
type: [{
label: '服务',
@ -1229,12 +1229,17 @@
number: 'purchase_type'
})).detail
},
pageSizeChange(e) {
this.select.pageSize = e;
this.select.pageIndex = 1;
this.getContracts();
},
//
async getContracts() {
const res = await getContract({
page_size: 10,
page_size: this.select.pageSize,
page: this.select.pageIndex,
...this.select
})

@ -81,7 +81,7 @@
</xy-table>
<div style="display: flex;justify-content: flex-end;">
<Page :total="total" show-elevator @on-change="pageChange" />
<Page :total="total" show-elevator @on-change="pageChange" show-sizer @on-page-size-change="pageSizeChange" />
</div>
<examineRegistration ref="examineRegistration" @refresh="getFundLogs"></examineRegistration>
@ -165,6 +165,7 @@
list: [],
total: 0,
pageIndex: 1,
pageSize: 10,
table: [{
label: "项目名称",
minWidth: 300,
@ -226,6 +227,15 @@
else return '已审核'
}
},
{
label: "次数",
prop: "pay_count",
width: 95,
formatter: (cell, data, value) => {
return value + 1;
}
},
{
label: "最后一笔",
prop: "is_end",
@ -356,6 +366,11 @@
}
this.isShowPlanForSearch = false
},
pageSizeChange(e) {
this.pageSize = e
this.pageIndex = 1
this.getFundLogs()
},
pageChange(e) {
this.pageIndex = e
this.getFundLogs()
@ -366,7 +381,7 @@
},
async getFundLogs(is_export) {
await getFundLog({
page_size: 10,
page_size: this.pageSize,
page: this.pageIndex,
keyword: this.keyword,
date: this.selectDate,

Loading…
Cancel
Save