出差报销

master
xy 2 years ago
parent 55d5446aa9
commit b811bfc8f7

@ -0,0 +1 @@
<svg t="1718083673581" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4251" width="200" height="200"><path d="M456 484V160.1l-335.9 72V484H456zM512 484h391.8V64.2l-391.8 84V484zM456 540H120.2v251.9l335.9 72V540zM512 540v335.9l391.8 84V540H512z" fill="#00adef" p-id="4252"></path></svg>

After

Width:  |  Height:  |  Size: 331 B

@ -0,0 +1 @@
<svg t="1718088373209" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="42775" width="200" height="200"><path d="M855.334 95.325L659.052 431.266c-8.024 13.733 1.881 30.993 17.787 30.993h108.338c11.377 0 20.6 9.223 20.6 20.6v78.519c0 11.377-9.223 20.6-20.6 20.6h-162.39c-11.377 0-20.6 9.223-20.6 20.6v49.61c0 11.377 9.223 20.6 20.6 20.6h162.39c11.377 0 20.6 9.223 20.6 20.6v79.686c0 11.377-9.223 20.6-20.6 20.6h-162.39c-11.377 0-20.6 9.223-20.6 20.6v124.79c0 11.377-9.223 20.6-20.6 20.6H438.862c-11.377 0-20.6-9.223-20.6-20.6v-124.79c0-11.377-9.223-20.6-20.6-20.6h-169.33c-11.377 0-20.6-9.223-20.6-20.6v-79.686c0-11.377 9.223-20.6 20.6-20.6h169.33c11.377 0 20.6-9.223 20.6-20.6v-49.61c0-11.377-9.223-20.6-20.6-20.6h-169.33c-11.377 0-20.6-9.223-20.6-20.6V482.86c0-11.377 9.223-20.6 20.6-20.6H341.8c15.796 0 25.715-17.046 17.91-30.779L168.542 95.112c-7.805-13.733 2.114-30.779 17.91-30.779h148.316c7.906 0 15.158 4.607 18.595 11.727 85.797 177.752 140.199 295.303 163.224 352.653h4.054c3.078-8.48 6.739-19.082 10.984-31.816 6.941-20.429 34.703-80.581 83.287-180.455l66.714-140.353a20.601 20.601 0 0 1 18.606-11.757h137.316c15.905 0.001 25.81 17.26 17.786 30.993z" p-id="42776" class="custom-cursor-on-hover" fill="currentColor"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -417,7 +417,7 @@ export default {
const res = await getFundLog({ const res = await getFundLog({
away_id: this.contract.id, away_id: this.contract.id,
fund_type: 2 show_type: 2
}) })
this.payment = res.data; this.payment = res.data;
@ -440,6 +440,12 @@ export default {
save({ save({
...this.contract, ...this.contract,
financial_status: 2 financial_status: 2
}).then(_ => {
this.$refs["paymentRegistration"].reset();
this.$emit('refresh')
this.$message.success("操作成功");
this.isShowPaymentRegistration = false;
}) })
// //
// editorContract({ // editorContract({
@ -465,11 +471,6 @@ export default {
// message: "", // message: "",
// }); // });
// }); // });
this.$refs["paymentRegistration"].reset();
this.$emit('refresh')
this.$message.success("操作成功");
this.isShowPaymentRegistration = false;
}); });
}, },
// //

@ -74,29 +74,32 @@
width="220" width="220"
> >
<template #default="{ row }" v-if="!/Finance/g.test($route.path)"> <template #default="{ row }" v-if="!/Finance/g.test($route.path)">
<Poptip <Button style="margin: 2px;" size="small" type="primary" @click="printFlow(row)"></Button>
v-if="isAuthEdit(row)" <template v-if="row.away_status === 1 && row.expense_status === 1">
:transfer="true" <Poptip
confirm v-if="isAuthEdit(row)"
placement="bottom" :transfer="true"
title="确认要删除吗" confirm
@on-ok="() => deleteAway(row.id)" placement="bottom"
> title="确认要删除吗"
@on-ok="() => deleteAway(row.id)"
>
<Button
style="margin: 2px;"
ghost
size="small"
type="error"
>删除
</Button>
</Poptip>
<Button <Button
style="margin: 2px;" style="margin: 2px;"
ghost
size="small" size="small"
type="error" type="primary"
>删除 @click="$refs['addAway'].setType('editor'),$refs['addAway'].setId(row.id),$refs['addAway'].show()"
>编辑
</Button> </Button>
</Poptip> </template>
<Button
style="margin: 2px;"
size="small"
type="primary"
@click="$refs['addAway'].setType('editor'),$refs['addAway'].setId(row.id),$refs['addAway'].show()"
>编辑
</Button>
<template v-if="row.FLOWSTATUS.useCar.isEnabled()"> <template v-if="row.FLOWSTATUS.useCar.isEnabled()">
<Button <Button
@ -384,9 +387,20 @@ export default {
} }
}, },
methods: { methods: {
showExamineAway () { printFlow (row) {
let id;
if (row.away_flow_id) {
id = row.away_flow_id;
} else if (row.expense_flow_id) {
id = row.expense_flow_id
} else {}
if (!id) {
this.$message.warning("未找到流程");
return
}
window.open(`${process.env.VUE_APP_OUT_URL}/flow/print-relate-flow?id=${id}&except_self=0&auth_token=${this.$store.getters.oa_token}`,"_blank")
}, },
async toOaDetail (tbname,row) { async toOaDetail (tbname,row) {
let url = `${process.env.VUE_APP_OUT_URL}/flow/view/` let url = `${process.env.VUE_APP_OUT_URL}/flow/view/`
switch (tbname) { switch (tbname) {

@ -276,7 +276,7 @@ export default {
} }
}) })
const res = await getFundLog({contract_id:this.contract.id}) const res = await getFundLog({contract_id:this.contract.id,show_type: 1})
this.payment = res.data this.payment = res.data
this.toggleSelection(this.paymentRegistrationForm.plan.map(item => { this.toggleSelection(this.paymentRegistrationForm.plan.map(item => {

@ -506,6 +506,7 @@ export default {
const res = await getFundLog({ const res = await getFundLog({
contract_id: this.contract.id, contract_id: this.contract.id,
show_type: 1
}); });
this.payment = res.data; this.payment = res.data;

@ -144,7 +144,8 @@
this.registration = res this.registration = res
let res1 = await getFundLog({ let res1 = await getFundLog({
page_size: 999, page_size: 999,
contract_id: this.registration.contract.id contract_id: this.registration.contract.id,
show_type: 1
}) })
if (res1.data.length > 0) { if (res1.data.length > 0) {
res1.data.map(item => { res1.data.map(item => {

@ -361,6 +361,7 @@ export default {
( (
await getFundLog({ await getFundLog({
contract_id: row.contract_id, contract_id: row.contract_id,
show_type: 1
}) })
)?.data || []; )?.data || [];
console.log(contract); console.log(contract);
@ -429,6 +430,7 @@ export default {
date: this.selectDate, date: this.selectDate,
is_auth: this.is_auth, is_auth: this.is_auth,
status: this.status, status: this.status,
show_type: 1
},noloading); },noloading);
this.list = res.data; this.list = res.data;
this.total = res.total; this.total = res.total;

@ -571,7 +571,8 @@ import {listdeptNoAuth} from "@/api/system/department";
this.contract = info this.contract = info
const res = await getFundLog({ const res = await getFundLog({
contract_id: this.contract.id contract_id: this.contract.id,
show_type: 1
}) })
this.payment = res.data this.payment = res.data

@ -5,30 +5,48 @@
<el-table-column type="index"></el-table-column> <el-table-column type="index"></el-table-column>
<el-table-column prop="name"> <el-table-column prop="name">
<template #default="{ row }"> <template #default="{ row }">
<el-link type="primary">{{ row.name }}</el-link> <el-link type="primary" href="http://contract-sqhj-test.ali251.langye.net/api/pc/download" target="_blank">{{ row.name }}</el-link>
</template>
</el-table-column>
<el-table-column prop="support">
<template #default="{ row }">
<SvgIcon icon-class="windows"></SvgIcon>
<span style="padding-left: 6px;">{{ row.support }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="support"></el-table-column>
<el-table-column prop="created_at"></el-table-column> <el-table-column prop="created_at"></el-table-column>
<el-table-column>
<template #default="{ row }">
<el-button type="primary" plain icon="el-icon-download" circle size="mini" @click="install(row)"></el-button>
</template>
</el-table-column>
</el-table> </el-table>
</el-card> </el-card>
</div> </div>
</template> </template>
<script> <script>
import SvgIcon from "@/components/SvgIcon"
export default { export default {
components: {
SvgIcon
},
data() { data() {
return { return {
list: [ list: [
{ {
name: "123.exe", name: "内控信息化系统0.0.1",
support: "wind10+", support: "wind10+",
created_at: this.$moment().format("YYYY-MM-DD") src: "http://contract-sqhj-test.ali251.langye.net/api/pc/download"
} }
] ]
} }
}, },
methods: {}, methods: {
install (row) {
window.open(row.src, "_blank")
}
},
computed: {}, computed: {},
} }
</script> </script>

@ -10,6 +10,7 @@
<div style="position: relative;height: 100%;width: 100%;"> <div style="position: relative;height: 100%;width: 100%;">
<div style="position: absolute;top: 0;left: 0;right: 0;bottom: 0;"> <div style="position: absolute;top: 0;left: 0;right: 0;bottom: 0;">
<Table <Table
:show-header="false"
:height="tableHeight" :height="tableHeight"
:loading="loading" :loading="loading"
size="small" size="small"
@ -68,27 +69,27 @@ export default {
table: [ table: [
{ {
type: "index", type: "index",
title: "序号", title: " ",
align: "center", align: "center",
width: 64, width: 46,
},
{
title: "内容",
key: "title",
align: "left",
ellipsis: true,
tooltip: true,
minWidth: 140,
}, },
{ {
title: "收件时间", title: "收件时间",
key: "created_at", key: "created_at",
width: 120, width: 160,
align: "center", align: "center",
render: (h, { row }) => { render: (h, { row }) => {
return h("span", this.$moment(row.created_at).format("YYYY-MM-DD HH:mm:ss")); return h("span",{ style: { color: "#4d8bdc" } }, this.$moment(row.created_at).format("YYYY-MM-DD HH:mm:ss"));
}, },
}, },
{
title: "内容",
key: "title",
align: "left",
ellipsis: true,
tooltip: true,
minWidth: 200,
},
{ {
title: "查看", title: "查看",
key: "show", key: "show",
@ -253,4 +254,7 @@ export default {
width: 100%; width: 100%;
height: calc(100% - 58px); height: calc(100% - 58px);
} }
::v-deep .ivu-table th,::v-deep .ivu-table td {
border-bottom-style: dashed;
}
</style> </style>

@ -1,12 +1,15 @@
<template> <template>
<el-card class="box-card" shadow="hover"> <el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span style="border-left: 3px solid #338DE3FF;padding-left: 6px;">预算总体执行情况</span> <span style="padding-left: 15px;">预算总体执行情况</span>
<DatePicker transfer :value="select.year" placeholder="选择所属年份" placement="bottom" style="width: 130px;float: right;" <DatePicker transfer :value="select.year" placeholder="选择所属年份" placement="bottom" style="width: 130px;float: right;"
type="year" @on-change="changeYear"></DatePicker> type="year" @on-change="changeYear"></DatePicker>
</div> </div>
<div class="progress-card"> <div class="progress-card">
<div class="progress-card-item"> <div class="progress-card-item">
<!-- <div class="icon-yuan">-->
<!-- <SvgIcon icon-class="yuan"></SvgIcon>-->
<!-- </div>-->
<div class="progress-card-item__num">{{moneyFormatter(statistic.progress.money_total_1 || 0)}}</div> <div class="progress-card-item__num">{{moneyFormatter(statistic.progress.money_total_1 || 0)}}</div>
<div class="progress-card-item__label">年初预算合计金额</div> <div class="progress-card-item__label">年初预算合计金额</div>
</div> </div>
@ -29,9 +32,13 @@
</template> </template>
<script> <script>
import SvgIcon from "@/components/SvgIcon";
import { moneyFormatter } from "@/utils" import { moneyFormatter } from "@/utils"
import { statistic } from '@/api/dashboard/notice' import { statistic } from '@/api/dashboard/notice'
export default { export default {
components: {
SvgIcon
},
name:"card1", name:"card1",
layout:{ layout:{
x:0, x:0,
@ -98,6 +105,23 @@ export default {
padding: 6px 0; padding: 6px 0;
} }
.icon-yuan {
background: $primaryColor;
color: #fff;
border-radius: 20px;
filter: drop-shadow(0px 6px 6px rgba(43,188,255,0.5));
display: inline-block;
padding: 10px;
svg {
background: #fff;
color: $primaryColor;
border-radius: 100%;
width: 25px;
height: 25px;
}
}
} }
} }
</style> </style>

Loading…
Cancel
Save