预算计划事前流程

master
xy 2 years ago
parent 999c98fb23
commit 5b37b75e21

@ -8,15 +8,15 @@
</lx-header>
<el-card>
<el-form :model="form" :rules="rules" ref="form" label-width="120px">
<el-form-item label="标题" prop="title">
<el-form-item label="出差事由" prop="title">
<el-input clearable placeholder="请输入标题" v-model="form.title" style="max-width: 300px;width: 100%;"></el-input>
</el-form-item>
<el-form-item label="是否用车" prop="use_car">
<el-radio-group v-model="form.use_car">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="是否用车" prop="use_car">-->
<!-- <el-radio-group v-model="form.use_car">-->
<!-- <el-radio :label="1"></el-radio>-->
<!-- <el-radio :label="0"></el-radio>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<el-form-item label="开始时间" prop="start_date">
<el-date-picker value-format="yyyy-MM-dd" clearable placeholder="请选择开始时间" style="max-width: 300px;width: 100%;" v-model="form.start_date"></el-date-picker>
</el-form-item>
@ -27,12 +27,12 @@
style="max-width: 300px;width: 100%;"
v-model="form.end_date"></el-date-picker>
</el-form-item>
<el-form-item label="是否室内补助" prop="is_subsidize">
<el-radio-group v-model="form.is_subsidize">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="是否室内补助" prop="is_subsidize">-->
<!-- <el-radio-group v-model="form.is_subsidize">-->
<!-- <el-radio :label="1"></el-radio>-->
<!-- <el-radio :label="0"></el-radio>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<el-form-item align="center">
<el-button type="warning" plain @click="reset"></el-button>
<el-button :loading="loading" type="primary" @click="submit"></el-button>
@ -52,12 +52,12 @@ export default {
loading: false,
form: {
title: '',
use_car: 0,
//use_car: 0,
start_date: '',
end_date: '',
is_subsidize: 0,
use_car_status: 1,
subsidize_status: 1,
//is_subsidize: 0,
// use_car_status: 1,
// subsidize_status: 1,
expense_status: 1,
away_status: 1,
},
@ -117,8 +117,8 @@ export default {
this.loading = true
this.$refs.form.validate((valid) => {
if (valid) {
this.form.use_car_status = this.form.use_car ? 1 : "";
this.form.subsidize_status = this.form.is_subsidize ? 1 : "";
// this.form.use_car_status = this.form.use_car ? 1 : "";
// this.form.subsidize_status = this.form.is_subsidize ? 1 : "";
save(this.form,true).then(res => {
this.loading = false
this.$message({

@ -11,7 +11,7 @@
>
<template v-slot:title>
<div class="xy-table-item">
<div class="xy-table-item-label">标题 </div>
<div class="xy-table-item-label">出差事由 </div>
<div class="xy-table-item-content">
<el-input
v-model="form.title"
@ -22,28 +22,28 @@
</div>
</div>
</template>
<template v-slot:use_car>
<div class="xy-table-item">
<div class="xy-table-item-label">是否用车 </div>
<div class="xy-table-item-content">
<el-radio-group style="width: 300px" v-model="form.use_car">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</div>
</div>
</template>
<template v-slot:is_subsidize>
<div class="xy-table-item">
<div class="xy-table-item-label">是否室内补助 </div>
<div class="xy-table-item-content">
<el-radio-group style="width: 300px" v-model="form.is_subsidize">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</div>
</div>
</template>
<!-- <template v-slot:use_car>-->
<!-- <div class="xy-table-item">-->
<!-- <div class="xy-table-item-label">是否用车 </div>-->
<!-- <div class="xy-table-item-content">-->
<!-- <el-radio-group style="width: 300px" v-model="form.use_car">-->
<!-- <el-radio :label="1"></el-radio>-->
<!-- <el-radio :label="0"></el-radio>-->
<!-- </el-radio-group>-->
<!-- </div>-->
<!-- </div>-->
<!-- </template>-->
<!-- <template v-slot:is_subsidize>-->
<!-- <div class="xy-table-item">-->
<!-- <div class="xy-table-item-label">是否室内补助 </div>-->
<!-- <div class="xy-table-item-content">-->
<!-- <el-radio-group style="width: 300px" v-model="form.is_subsidize">-->
<!-- <el-radio :label="1"></el-radio>-->
<!-- <el-radio :label="0"></el-radio>-->
<!-- </el-radio-group>-->
<!-- </div>-->
<!-- </div>-->
<!-- </template>-->
<template v-slot:start_date>
<div class="xy-table-item">
<div class="xy-table-item-label">开始时间 </div>
@ -136,12 +136,12 @@ export default {
form: {
title: "",
use_car: "",
is_subsidize: "",
//use_car: "",
//is_subsidize: "",
start_date: "",
end_date: "",
use_car_status: "",
subsidize_status: "",
//use_car_status: "",
//subsidize_status: "",
expense_status: "",
away_status: "",
financial_status: "",

@ -240,7 +240,7 @@ export default {
]),
table: [
{
label: "标题",
label: "出差事由",
prop: "title",
width: 200,
align: "left",
@ -274,51 +274,51 @@ export default {
{
label: "流程状态",
multiHd: [
{
width: 100,
label: "用车",
customFn:row => {
if (!row.use_car) {
return (
<span style="color: rgb(140, 140, 140);">-</span>
)
}
return (
<div>
<span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.useCar.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.useCar.getStatus()) || '待申请' }</span>
<br/>
{
(row.FLOWSTATUS.useCar.getStatus() > 1) ? <a style="color: #333" on={{['click']:()=>{
this.toOaDetail('useCar',row,)
}}}>查看</a> : ''
}
</div>
)
}
},
{
width: 100,
label: "市内补助",
customFn:row => {
if (!row.is_subsidize) {
return (
<span style="color: rgb(140, 140, 140);">-</span>
)
}
return (
<div>
<span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.subsidize.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.subsidize.getStatus()) || '待申请' }</span>
<br/>
{
(row.FLOWSTATUS.subsidize.getStatus() > 1) ? <a style="color: #333" on={{['click']:()=>{
this.toOaDetail('subsidize',row)
}}}>查看</a> : ''
}
</div>
)
}
},
// {
// width: 100,
// label: "",
// customFn:row => {
// if (!row.use_car) {
// return (
// <span style="color: rgb(140, 140, 140);">-</span>
// )
// }
// return (
// <div>
// <span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.useCar.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.useCar.getStatus()) || '' }</span>
// <br/>
// {
// (row.FLOWSTATUS.useCar.getStatus() > 1) ? <a style="color: #333" on={{['click']:()=>{
// this.toOaDetail('useCar',row,)
// }}}></a> : ''
// }
// </div>
// )
// }
// },
// {
// width: 100,
// label: "",
// customFn:row => {
// if (!row.is_subsidize) {
// return (
// <span style="color: rgb(140, 140, 140);">-</span>
// )
// }
// return (
// <div>
// <span style={{ 'color': this.flowStatusColor.get(row.FLOWSTATUS.subsidize.getStatus()) }}>{ this.flowStatus.get(row.FLOWSTATUS.subsidize.getStatus()) || '' }</span>
// <br/>
// {
// (row.FLOWSTATUS.subsidize.getStatus() > 1) ? <a style="color: #333" on={{['click']:()=>{
// this.toOaDetail('subsidize',row)
// }}}></a> : ''
// }
// </div>
// )
// }
//
// },
{
width: 100,
label: "出差审批",
@ -450,7 +450,7 @@ export default {
"6583dbec5d888": row.end_date,
"6583dc097b6e2": row.title,
};
let url = `${process.env.VUE_APP_OUT_OLD}/flow/create/21?auth_token=${this.$store.getters.oa_token}&out_away_id=${
let url = `${process.env.VUE_APP_OUT_OLD}/flow/create/56?auth_token=${this.$store.getters.oa_token}&out_away_id=${
row.id
}&default_json=${JSON.stringify(baseInfo)}`;
window.open(
@ -515,24 +515,27 @@ export default {
"expense": new Flow(),
"financial": new Flow()
}
if (item.use_car) {
flowStatus.useCar.setStatus(item.use_car_status)
if (item.use_car_status === 1) {
flowStatus.useCar.setExecutable(true)
}
}
if (item.is_subsidize) {
flowStatus.subsidize.setStatus(item.subsidize_status)
if (item.subsidize_status === 1) {
flowStatus.subsidize.setExecutable(true)
}
}
// if (item.use_car) {
// flowStatus.useCar.setStatus(item.use_car_status)
// if (item.use_car_status === 1) {
// flowStatus.useCar.setExecutable(true)
// }
// }
// if (item.is_subsidize) {
// flowStatus.subsidize.setStatus(item.subsidize_status)
// if (item.subsidize_status === 1) {
// flowStatus.subsidize.setExecutable(true)
// }
// }
flowStatus.away.setStatus(item.away_status)
if (item.away_status === 1) {
flowStatus.away.setExecutable(true)
}
flowStatus.expense.setStatus(item.expense_status)
if ((!item.is_subsidize || item.subsidize_status === 3) && (!item.use_car || item.use_car_status === 3) && item.away_status === 3 && (!item.expense_status || item.expense_status === 1) && (this.$moment().diff(this.$moment(item.end_date),"days") <= 30 || item.can_expenses)) {
// if ((!item.is_subsidize || item.subsidize_status === 3) && (!item.use_car || item.use_car_status === 3) && item.away_status === 3 && (!item.expense_status || item.expense_status === 1) && (this.$moment().diff(this.$moment(item.end_date),"days") <= 30 || item.can_expenses)) {
// flowStatus.expense.setExecutable(true)
// }
if (item.away_status === 3 && (!item.expense_status || item.expense_status === 1) && (this.$moment().diff(this.$moment(item.end_date),"days") <= 30 || item.can_expenses)) {
flowStatus.expense.setExecutable(true)
}

@ -355,6 +355,30 @@
</div>
</div>
</template>
<template #flow_mod_id>
<div class="xy-table-item">
<div class="xy-table-item-label">
事前流程
</div>
<div class="xy-table-item-content">
<el-select
placeholder="事前流程"
clearable
size="small"
v-model="form.flow_mod_id"
style="width: 300px"
>
<el-option
v-for="item in flowIds"
:label="item.name"
:value="item.id"
:key="item.id"
>
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:department>
<div class="xy-table-item">
<div class="xy-table-item-label">
@ -516,6 +540,30 @@
</div>
</div>
</template>
<template #flow_mod_id>
<div class="xy-table-item">
<div class="xy-table-item-label">
事前流程
</div>
<div class="xy-table-item-content">
<el-select
placeholder="事前流程"
clearable
size="small"
v-model="editorForm.flow_mod_id"
style="width: 300px"
>
<el-option
v-for="item in flowIds"
:label="item.name"
:value="item.id"
:key="item.id"
>
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:year>
<div class="xy-table-item">
<div class="xy-table-item-label">
@ -684,7 +732,7 @@ import {
} from "@/api/budget/budget";
import { listdeptNoAuth } from "@/api/system/department";
import { Message } from "element-ui";
import { parseTime, moneyFormatter, moneyRecovery } from "@/utils";
import {parseTime, moneyFormatter, moneyRecovery, deepCopy} from "@/utils";
import { getparameter, getparameterTree } from "@/api/system/dictionary";
import { mergeTableRow } from "@/utils/mergeTableRow";
@ -697,6 +745,45 @@ export default {
},
data() {
return {
//
flowIds: [
{
id: 5,
name: "办公用品采购",
type: 1 //
},
{
id: 12,
name: "物资购置",
type: 1
},
{
id: 19,
name: "政府采购流转",
type: 2
},
{
id: 29,
name: "政府小额采购",
type: 2
},
{
id: 22,
name: "公务接待",
type: 1
},
{
id: 23,
name: "会议费用",
type: 1
},
{
id: 28,
name: "培训费",
type: 1
}
],
tableHeight: 0,
isShowAdd: false,
types: [],
@ -706,6 +793,7 @@ export default {
pid: "0",
name: "",
type: "",
flow_mod_id: "",
year: "",
department: "",
money: "",
@ -988,6 +1076,25 @@ export default {
this.departments = res;
});
},
//
async getFlowIds () {
let copy = deepCopy(this.flowIds)
const res = await getparameter({
number: "flow_ids"
})
try {
this.flowIds = res?.detail?.map(i => {
let data = JSON.parse(i.remark)
return {
name: i.value,
...data
}
})
}catch (e) {
this.flowIds = copy
}
console.log(this.flowIds)
},
//
getBudgets() {
getBudget({
@ -1044,6 +1151,7 @@ export default {
plan_department_links: plan_department_links,
remark: this.form.remark,
pid: this.form.pid,
flow_mod_id: this.form.flow_mod_id
}).then((res) => {
Message({
message: "操作成功",
@ -1096,6 +1204,8 @@ export default {
remark: this.editorForm.remark,
plan_department_id: this.editorForm.department,
plan_department_links: plan_department_links,
pid: this.editorForm.pid,
flow_mod_id: this.editorForm.flow_mod_id
}).then((res) => {
this.isShowEditor = false;
Message({
@ -1121,6 +1231,7 @@ export default {
id: res.id,
name: res.name,
type: res.type,
flow_mod_id: res.flow_mod_id,
department: res.plan_department_id,
money: moneyFormatter(res.money),
update_money: moneyFormatter(res.update_money),
@ -1143,6 +1254,7 @@ export default {
},
},
created() {
this.getFlowIds();
this.table = this.tableItem;
this.initLoad();

@ -1453,7 +1453,8 @@ export default {
use_money: i._inputMoney,
new_money: i.money,
}));
this.form.plan_price = selections.reduce((a, b) => a + Number(b._inputMoney), 0)
this.form.plan_price = selections.reduce((a, b) => a + Number(b._inputMoney), 0);
this.form.flow_mod_id = selections[0]?.flow_mod_id;
this.step = 2;
} else {
this.$message({

@ -85,6 +85,9 @@ export default {
key: "created_at",
width: 120,
align: "center",
render: (h, { row }) => {
return h("span", this.$moment(row.created_at).format("YYYY-MM-DD HH:mm:ss"));
},
},
{
title: "查看",

Loading…
Cancel
Save