62fc4b00 by renchao@pashanhoo.com

收费

1 parent a2c4706b
......@@ -23,8 +23,6 @@
*     ┗┻┛ ┗┻┛+ + + +
*
-->
# 安装依赖
npm install
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
......
/*
* @Description: sfxx
* @Autor: renchao
* @LastEditTime: 2023-12-26 16:06:35
* @LastEditTime: 2024-03-20 14:02:38
*/
import request from '@/utils/request';
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
......@@ -17,6 +17,49 @@ export function getSfmxList (businessBsm) {
})
}
/**
* @description: 收费信息
* @param {*} businessBsm
* @author: renchao
*/
export function initSfxx (businessBsm) {
return request({
url: SERVER.SERVERAPI + '/rest/sys/sf/initSfxx',
method: 'get',
params: {
businessBsm: businessBsm
}
})
}
/**
* @description: 重新计费
* @param {*} businessBsm
* @author: renchao
*/
export function recharge (businessBsm) {
return request({
url: SERVER.SERVERAPI + '/rest/sys/sf/recharge',
method: 'get',
params: {
businessBsm: businessBsm
}
})
}
/**
* @description: 修改收费信息
* @param {*} businessBsm
* @author: renchao
*/
export function updateSfxx (data) {
return request({
url: SERVER.SERVERAPI + '/rest/sys/sf/updateSfxx',
method: 'post',
data
})
}
export function saveSfmx (data) {
return request({
url: SERVER.SERVERAPI + '/rest/sys/sf/saveSfmx',
......
......@@ -21,6 +21,7 @@ const getters = {
djbxx: state => state.djbxx.djbxx,
// workflow
isRefresh: state => state.user.isRefresh,
pouopData: state => state.user.pouopData,
workFresh: state => state.user.workFresh,
// 左侧菜单刷新
menuRefresh: state => state.user.menuRefresh,
......
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-02-01 08:52:00
* @LastEditTime: 2024-03-20 14:12:53
*/
import { getUserInfo } from '@/api/user'
const state = {
......@@ -9,6 +9,8 @@ const state = {
userInfo: {},
avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
isRefresh: false,
// 弹窗返回需要回传的值
pouopData: {},
// 业务流程刷新
workFresh: false,
// 左侧菜单刷新
......@@ -29,6 +31,9 @@ const mutations = {
SETMENUREFRESH: (state, data) => {
state.menuRefresh = data
},
SETPOUOPDATA: (state, data) => {
state.pouopData = data
}
}
const actions = {
......@@ -48,6 +53,10 @@ const actions = {
reMenuRefresh ({ commit }, data) {
commit('SETMENUREFRESH', data)
},
// 存储弹窗data的值
getPouopData ({ commit }, data) {
commit('SETPOUOPDATA', data)
}
}
export default {
namespaced: true,
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2024-03-19 17:30:22
* @LastEditTime: 2024-03-20 14:22:37
-->
<template>
<div class='sfxx slxx'>
......@@ -11,7 +11,7 @@
v-Loading="loading"
:label-position="flag ? 'top' : ''"
:inline="flag"
label-width="100px">
label-width="120px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
基本信息
......@@ -19,79 +19,48 @@
</div>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input v-model="ruleForm.ywh"></el-input>
<el-form-item label="受理人员:">
<el-input v-model="ruleForm.slry" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请登记类型:">
<el-input v-model="ruleForm.sqdjlx"></el-input>
<el-form-item label="受理时间:">
<el-input v-model="ruleForm.slsj" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系人:">
<el-input v-model="ruleForm.lxr"></el-input>
<el-form-item label="登记情形名称:">
<el-input v-model="ruleForm.djqxmc" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="联系人电话:">
<el-input v-model="ruleForm.lxdh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="缴费人:">
<el-input v-model="ruleForm.jfr"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="缴费单号:">
<el-input v-model="ruleForm.jfdh"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="应收金额:">
<el-input v-model="ruleForm.ysje"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实收金额:">
<el-input v-model="ruleForm.ssje"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注:">
<el-input v-model="ruleForm.bz"></el-input>
<el-form-item label="登记业务名称:">
<el-input v-model="ruleForm.djywmc" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
收费明细
<el-button type="primary" @click="hanldeAdd" style="float:right;margin-top:-5px">增加</el-button>
计费明细
</div>
<el-table :data="tableDatasf.data" border :height="210">
<el-table-column v-for="item in tableDatasf.columns" :key="item.index" :prop="item.prop" :label="item.label" align="center">
</el-table-column>
<el-table-column label="操作" width="50">
<template slot-scope="scope">
<el-button type="text" @click="handleDelete(scope.row)">删除</el-button>
</template>
<el-table :data="tableDatajf.data" border :height="100">
<el-table-column v-for="item in tableDatajf.columns" :key="item.index" :prop="item.prop" :label="item.label" align="center">
</el-table-column>
</el-table>
<div class="slxx_title title-block">
计费明细
<div class="triangle"></div>
收费明细
<el-button type="primary" @click="hanldeEdit" style="float:right;margin-top:-5px">修改</el-button>
<el-button type="primary" @click="hanldeRecharge" style="float:right;margin-top:-5px;margin-right:10px">重新计费</el-button>
</div>
<el-table :data="tableDatajf.data" border :height="210">
<el-table-column v-for="item in tableDatajf.columns" :key="item.index" :prop="item.prop" :label="item.label" align="center">
<el-table :data="tableDatasf.data" border :height="100">
<el-table-column v-for="item in tableDatasf.columns" :key="item.index" :prop="item.prop" :label="item.label" align="center">
</el-table-column>
</el-table>
<div class="slxx_title title-block">
票据
<div class="triangle"></div>
......@@ -105,22 +74,14 @@
</template>
<script>
import { mapGetters } from "vuex";
import { getSfmxList, deleteSfmx } from "@/api/sfxx.js";
import { initSfxx, recharge } from "@/api/sfxx.js";
export default {
components: {},
data () {
return {
ruleForm: {
ywh: '',
sqdjlx: '',
lxr: '',
lxdh: '',
jfr: '',
jfdh: '',
ysje: '',
ssje: '',
bz: ''
},
loading: false,
bsmBusiness: this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness,
ruleForm: {},
tableDatasf: {
columns: [
{
......@@ -128,17 +89,6 @@
label: "收费单位",
},
{
label: '是否额外收费',
align: 'center',
render: (h, scope) => {
return (
<div>
{scope.row.sfewsf == '1' ? <span></span> : <span>否</span>}
</div>
)
}
},
{
prop: "sfry",
label: "收费人员",
},
......@@ -164,39 +114,44 @@
tableDatajf: {
columns: [
{
prop: "sfdw",
label: "计费单位",
prop: "jfjs",
label: "计费基数",
},
{
label: '是否额外收费',
align: 'center',
render: (h, scope) => {
return (
<div>
{scope.row.sfewsf == '1' ? <span></span> : <span>否</span>}
</div>
)
}
prop: "jflx",
label: "计费类型",
},
{
prop: "sfry",
label: "收费人员",
prop: "jflxmc",
label: "计费类型名称",
},
{
prop: "sfkmmc",
label: "收费科目名称",
prop: "ysje",
label: "应收金额",
},
{
prop: "sjffr",
label: "实际付费人",
prop: "zkhysje",
label: "折扣后应收金额",
},
{
prop: "ssje",
label: "实收金额",
prop: "qlrmc",
label: "权利人名称",
},
{
prop: "ysje",
label: "应收金额",
prop: "ywrmc",
label: "义务人名称",
},
{
prop: "qlytmc",
label: "权利用途名称",
},
{
prop: "qlxzmc",
label: "权利性质名称",
},
{
prop: "zl",
label: "坐落",
}
],
data: [],
......@@ -204,57 +159,48 @@
}
},
computed: {
...mapGetters(["workFresh"]),
...mapGetters(["workFresh", "flag", "pouopData"]),
},
watch: {
workFresh: {
handler (newVal, oldVal) {
if (newVal) this.getList();
},
if (newVal) this.getList()
}
},
pouopData: {
handler (newValue, oldValue) {
if (newValue.length != 0) {
this.tableDatasf.data = newValue
}
},
deep: true
}
},
mounted () {
this.getList()
},
methods: {
getList () {
let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness
getSfmxList(bsmBusiness).then(res => {
this.tableData.data = res.result
initSfxx('6a114807a2779413e0db955951ac3524').then(res => {
let { slsq, jfList, sfList } = res.result
this.ruleForm = slsq
this.tableDatajf.data = jfList
this.tableDatasf.data = sfList
})
},
hanldeAdd () {
let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness
this.$popupDialog('新增', 'workflow/main/sfxx/xzsf', { bsmBusiness: bsmBusiness }, '50%', true)
},
handleDelete (row) {
let that = this
this.$confirm('此操作将永久删除该 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteSfmx(row.bsmSf).then(res => {
if (res.code == 200) {
that.$message({
message: '删除成功!',
type: 'success'
})
that.getList()
} else {
that.$message({
type: 'info',
message: res.message
})
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
hanldeRecharge () {
recharge('6a114807a2779413e0db955951ac3524').then(res => {
if (res.code == 200) {
this.tableDatasf.data = res.result
this.$message({
message: '计费成功!',
type: 'success'
})
}
})
},
hanldeEdit () {
this.$popupDialog('编辑', 'workflow/main/sfxx/sfDetail', { bsmBusiness: this.bsmBusiness, dataList: _.cloneDeep(this.tableDatasf.data) }, '50%', true)
}
}
}
......
<template>
<div class='sfDetail'>
<lb-table :column="column" :pagination="false" :key="key"
:data="formData.dataList">
</lb-table>
<div class="text-center">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" @click="handleSubmit" plain>保存</el-button>
</div>
</div>
</template>
<script>
import store from '@/store/index.js'
import { updateSfxx } from "@/api/sfxx.js";
export default {
props: {
formData: {
type: Object,
default: {}
}
},
data () {
return {
key: 0,
column: [
{
prop: 'sfdw',
label: '收费单位',
render: (h, scope) => {
return (
<el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
)
}
},
{
prop: 'sfry',
label: '收费人员',
render: (h, scope) => {
return (
<el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
)
}
},
{
prop: 'sfkmmc',
label: '收费科目名称',
render: (h, scope) => {
return (
<el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
)
}
},
{
prop: 'sjffr',
label: '实际付费人',
render: (h, scope) => {
return (
<el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
)
}
},
{
prop: 'ssje',
label: '实收金额',
render: (h, scope) => {
return (
<el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
)
}
},
{
prop: 'ysje',
label: '应收金额',
render: (h, scope) => {
return (
<el-input value={scope.row[scope.column.property]} onInput={(val) => { scope.row[scope.column.property] = val }}></el-input>
)
}
}
]
}
},
methods: {
handleSubmit () {
this.formData.dataList.forEach(item => {
item.bsmBusiness = this.formData.bsmBusiness
})
updateSfxx(this.formData.dataList).then(res => {
if (res.code == 200) {
store.dispatch("user/getPouopData", res.result);
this.$message({
message: '修改成功!',
type: 'success'
})
this.$popupCacel()
}
})
}
}
}
</script>
<style scoped lang='scss'>
</style>
\ No newline at end of file
<template>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="收费单位" prop="sfdw">
<el-input v-model="ruleForm.sfdw"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否额外收费" prop="sfewsf">
<el-radio-group v-model="ruleForm.sfewsf">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="收费人员" prop="sfry">
<el-input v-model="ruleForm.sfry"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="实际付费人" prop="sjffr">
<el-input v-model="ruleForm.sjffr"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实收金额" prop="ssje">
<el-input v-model="ruleForm.ssje"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="应收金额" prop="ysje">
<el-input v-model="ruleForm.ysje"></el-input>
</el-form-item>
</el-col>
</el-row>
<div style="text-align:center">
<el-button @click="$popupCacel">取消</el-button>
<el-button type="primary" @click="submitForm('ruleForm')">新增</el-button>
</div>
</el-form>
</template>
<script>
import store from '@/store'
import { saveSfmx } from "@/api/sfxx.js";
export default {
props: {
formData: {
type: Object,
default: () => {
return {}
}
}
},
data () {
return {
rules: {},
ruleForm: {
}
}
},
methods: {
submitForm () {
store.dispatch('user/reWorkFresh', false)
saveSfmx({ ...this.ruleForm, bsmBusiness: this.formData.bsmBusiness }).then(res => {
if (res.code == 200) {
this.$message.success('保存成功');
//刷新列表
this.$popupCacel()
store.dispatch("user/reWorkFresh", true);
}
})
}
}
}
</script>
<style scoped lang='scss'>
@import "~@/styles/public.scss";
</style>
\ No newline at end of file