会计事项平台更新

This commit is contained in:
hyt 2025-08-07 15:37:39 +08:00
parent 671effa4a5
commit 23f95f2bda
14 changed files with 382 additions and 94 deletions

Binary file not shown.

View File

@ -23,3 +23,25 @@ export function queryDetailsByBillCodeAPI(data) {
data,
});
}
export function queryBillFiledsAPI(data) {
return request({
url: "/kangarooDataCenterV3/ae/push/log/queryBillFileds",
method: "post",
data,
});
}
export function queryBillPagedAPI(data) {
return request({
url: "/kangarooDataCenterV3/ae/push/log/queryBillPaged",
method: "post",
data,
});
}
export function queryDetailsByBillCodeAndMdmIdAPI(data) {
return request({
url: "/kangarooDataCenterV3/ae/push/log/queryDetailsByBillCodeAndMdmId",
method: "post",
data,
});
}

View File

@ -1,8 +1,9 @@
import request from "@/utils/request";
import baseTree from '@/components/base/BaseMenuTree/index.vue'
import basePage from '@/components/base/basePage/index.vue'
export default {
components: { baseTree }
components: { basePage, baseTree }
}
//业务模块

View File

@ -35,12 +35,14 @@ export default {
sizeChange(val) {
let pageModel = this.pageModel
pageModel.pageSize = val
pageModel.limit = val
this.$emit('update:pageModel', pageModel)
this.$emit('onPageChange')
},
currentChange(val) {
let pageModel = this.pageModel
pageModel.pageIndex = val
pageModel.page = val
this.$emit('update:pageModel', pageModel)
this.$emit('onPageChange')
}

View File

@ -47,7 +47,11 @@ export default {
return data[4];
}else if (url.includes("businessMatter")) {
return data[5];
} else {
}else if (url.includes("accountantMatter")) {
return data[6];
}
else {
return empty;
}
} else {

View File

@ -115,7 +115,8 @@ export default {
this.currentPath.includes("IntegrationTaskCenter") ||
this.currentPath.includes("businessCenter") ||
this.currentPath.includes("ApplicationCenter")||
this.currentPath.includes("businessMatter")
this.currentPath.includes("businessMatter") ||
this.currentPath.includes("accountantMatter")
) {
route.meta.affix = true;
@ -186,6 +187,12 @@ export default {
icon: "el-icon-postcard",
show: false,
},
{
title: "财资事项平台",
path: "/accountantMatter",
icon: "el-icon-postcard",
show: false,
},
],
};
},
@ -198,7 +205,8 @@ export default {
url.includes("IntegrationTaskCenter") ||
url.includes("businessCenter") ||
url.includes("ApplicationCenter") ||
url.includes("businessMatter")
url.includes("businessMatter") ||
url.includes("accountantMatter")
) {
this.$store.dispatch("settings/changeSetting", {
key: "showTagsView",
@ -277,7 +285,8 @@ export default {
item.path.includes("IntegrationTaskCenter") ||
item.path.includes("businessCenter") ||
item.path.includes("ApplicationCenter") ||
item.path.includes("businessMatter")
item.path.includes("businessMatter") ||
item.path.includes("accountantMatter")
) {
this.$store.dispatch("settings/changeSetting", {
key: "showTagsView",

View File

@ -135,7 +135,11 @@ export default {
currentData = data[4]
} else if (url.includes('businessMatter')) {
currentData = data[5]
} else {
} else if (url.includes('accountantMatter')) {
currentData = data[6]
}
else {
currentData = []
}
} else {
@ -266,6 +270,8 @@ export default {
currentData = data[4]
} else if (url.includes('businessMatter')) {
currentData = data[5]
}else if (url.includes('accountantMatter')) {
currentData = data[6]
}
}
if (this.isActive(view)) {
@ -290,6 +296,8 @@ export default {
INDEX = 4
} else if (url.includes('businessMatter')) {
INDEX = 5
} else if (url.includes('accountantMatter')) {
INDEX = 6
}
}
@ -322,6 +330,8 @@ export default {
INDEX = 4
} else if (url.includes('businessMatter')) {
INDEX = 5
}else if (url.includes('accountantMatter')) {
INDEX = 6
}
}
if (INDEX != null) {
@ -361,6 +371,8 @@ export default {
INDEX = 4
} else if (url.includes('businessMatter')) {
INDEX = 5
} else if (url.includes('accountantMatter')) {
INDEX = 6
}
}
if (INDEX != null) {

View File

@ -172,6 +172,15 @@ export const constantRoutes = [{
title: '会计事项平台',
icon: 'dashboard'
}
},
{
path: 'accountantMatter',
component: () => import('@/views/newVersionView/accountantMatter/index'),
name: 'accountantMatter',
meta: {
title: '财资事项平台',
icon: 'dashboard'
}
}
]
},

View File

@ -7,6 +7,7 @@ const state = {
[],
[],
[],
[]
],
cachedViews: [
[],
@ -15,6 +16,7 @@ const state = {
[],
[],
[],
[]
],
iframeViews: [
[],
@ -22,6 +24,7 @@ const state = {
[],
[],
[],
[],
[]
],
@ -46,6 +49,8 @@ const mutations = {
Index = 4
}else if (url.includes("businessMatter")) {
Index = 5;
}else if (url.includes("accountantMatter")) {
Index = 6;
}
}
if (Index != null) {
@ -73,6 +78,8 @@ const mutations = {
Index = 4
}else if (url.includes("businessMatter")) {
Index = 5;
}else if (url.includes("accountantMatter")) {
Index = 6;
}
}
if (Index != null) {
@ -109,6 +116,8 @@ const mutations = {
Index = 4
}else if (url.includes("businessMatter")) {
Index = 5;
}else if (url.includes("accountantMatter")) {
Index = 6;
}
}
if (Index != null) {
@ -134,6 +143,8 @@ const mutations = {
Index = 4
}else if (url.includes("businessMatter")) {
Index = 5;
}else if (url.includes("accountantMatter")) {
Index = 6;
}
}
if (Index != null) {
@ -162,6 +173,8 @@ const mutations = {
Index = 4
}else if (url.includes("businessMatter")) {
Index = 5;
}else if (url.includes("accountantMatter")) {
Index = 6;
}
}
if (Index != null) {
@ -185,6 +198,8 @@ const mutations = {
Index = 4
}else if (url.includes("businessMatter")) {
Index = 5;
}else if (url.includes("accountantMatter")) {
Index = 6;
}
}
if (Index != null) {
@ -209,6 +224,8 @@ const mutations = {
Index = 4
}else if (url.includes("businessMatter")) {
Index = 5;
}else if (url.includes("accountantMatter")) {
Index = 6;
}
}
if (Index != null) {
@ -233,7 +250,9 @@ const mutations = {
} else if (url.includes("ApplicationCenter")) {
INDEX = 4
}else if (url.includes("businessMatter")) {
Index = 5;
INDEX = 5;
}else if (url.includes("accountantMatter")) {
INDEX = 6;
}
}
if (INDEX != null) {
@ -263,6 +282,8 @@ const mutations = {
INDEX = 4
}else if (url.includes("businessMatter")) {
INDEX = 5;
}else if (url.includes("accountantMatter")) {
INDEX = 6;
}
}
if (INDEX != null) {
@ -287,6 +308,8 @@ const mutations = {
INDEX = 4
}else if (url.includes("businessMatter")) {
INDEX = 5;
}else if (url.includes("accountantMatter")) {
INDEX = 6;
}
}
if (INDEX != null) {
@ -309,6 +332,8 @@ const mutations = {
INDEX = 4
}else if (url.includes("businessMatter")) {
INDEX = 5;
}else if (url.includes("accountantMatter")) {
INDEX = 6;
}
}
if (INDEX != null) {
@ -331,6 +356,8 @@ const mutations = {
INDEX = 4
}else if (url.includes("businessMatter")) {
INDEX = 5;
}else if (url.includes("accountantMatter")) {
INDEX = 6;
}
}
if (INDEX != null) {
@ -358,6 +385,8 @@ const mutations = {
INDEX = 4
}else if (url.includes("businessMatter")) {
INDEX = 5;
}else if (url.includes("accountantMatter")) {
INDEX = 6;
}
}
if (INDEX != null) {
@ -398,6 +427,8 @@ const mutations = {
INDEX = 4
}else if (url.includes("businessMatter")) {
INDEX = 5;
}else if (url.includes("accountantMatter")) {
INDEX = 6;
}
}
if (INDEX != null) {

View File

@ -425,6 +425,28 @@
{{ row.row.pkCashflow }}
</div>
</template>
<template #def1="{row}">
<div v-if="editFlag">
<el-select
class="w-100"
v-model="row.row.def1"
filterable
:clearable="true"
placeholder="请选择"
>
<el-option
v-for="(el, index) in [{label:'是',value:'Y'},{label:'否',value:'N'}]"
:key="el.value"
:label="el.label"
:value="el.value"
>
</el-option>
</el-select>
</div>
<div v-else>
{{ row.row.def1 === 'Y' ? '是' : '否' }}
</div>
</template>
<!-- 备注-->
<template #remark="{row}">
<div v-if="editFlag">
@ -832,7 +854,7 @@ export default {
clickRowKey: '',
activeTabs: '元数据属性',
tabItem: ['元数据属性', '固定值'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)','if(*?:)'],
//text
textarea: '',
textareaEn: '',
@ -1176,6 +1198,11 @@ export default {
prop: 'pkCashflow',
width: 150
},
{
label: '是否计算科目余额',
prop: 'def1',
width: 150
},
{
label: '备注',
prop: 'remark',

View File

@ -25,7 +25,7 @@
</div>
<div style="margin-left: 5px;display: flex;align-items: center;">
<div style="width: 100px">单据号</div>
<el-input v-model="searchObjTable.billCode" clearable></el-input>
<el-input v-model="searchObjTable.bill_code" clearable></el-input>
</div>
<div style="margin-left: 5px;display: flex;align-items: center">
<div>单据日期起</div>
@ -54,7 +54,7 @@
</el-select>
</div>
<div>
<el-button type="primary" size="small" @click="getTableData">查询</el-button>
<el-button type="primary" size="small" @click="resetTable">查询</el-button>
</div>
<div>
<el-button type="primary" size="small" @click="coreDataOpenDialog">生成凭证</el-button>
@ -67,7 +67,7 @@
<div>分录信息</div>
</div>
<div class="table">
<base-table ref="customtable" :showIndex="false" :slotrow="false" :showSelect="true"
<base-table ref="customtable" :showIndex="false" :slotrow="true" :showSelect="true"
tableHeight="calc(50vh - 100px)" :tableData="tableData" :tableColumn="tableColumn"
@radioChange="radioChange" id="printMe" @onSelectionChange="onSelectionChange"
>
@ -80,12 +80,13 @@
</div>
</template>
</base-table>
<base-page :pageModel.sync="pageModel" @onPageChange="pageChange"></base-page>
</div>
<!-- 辅助核算-->
<template v-if="this.selected.length">
<div class="table">
<base-table ref="assistTable" :showIndex="false" :slotrow="false"
tableHeight="calc(50vh - 100px)" :tableData="assistTableData"
tableHeight="calc(50vh - 150px)" :tableData="assistTableData"
:tableColumn="assistTableColumn"
id="printMe"
>
@ -144,7 +145,12 @@ import {
tempupdateAPI, typeDeleteAPI, typeSaveAPI, typeUpdateAPI
} from '@/api/apis/ItemEntryTemplate'
import { subjectClassificationqueryAllAPI } from '@/api/apis/classifyDefinition'
import { logqueryBillAPI, coreGenerateAPI, queryDetailsByBillCodeAPI } from '@/api/apis/businessVoucher'
import {
logqueryBillAPI,
coreGenerateAPI,
queryDetailsByBillCodeAPI,
queryBillFiledsAPI, queryBillPageddsAPI, queryBillPagedAPI, queryDetailsByBillCodeAndMdmIdAPI
} from '@/api/apis/businessVoucher'
import customFormDialog from './compoments/customFormDialog'
import assistTableDialog from './compoments/assistTableDialog'
@ -218,7 +224,7 @@ export default {
clickRowKey: '',
activeTabs: '元数据属性',
tabItem: ['元数据属性', '固定值'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)','if(*?:)'],
//text
textarea: '',
textareaEn: '',
@ -245,26 +251,42 @@ export default {
prop: 'voucherNo',
width: 100
},
{
label: '会计科目',
prop: 'subjdispname',
width: 100
},
{
label: '辅助核算',
prop: 'assist',
width: 100
},
{
label: '摘要',
prop: 'abstractStr',
width: 160
width: 100
},
{
label: '借方',
prop: 'jYbSum',
width: 120
label: '借方本币金额',
prop: 'jbbSum',
width: 100
},
{
label: '贷方',
prop: 'dYbSum',
width: 120
label: '借方原币金额',
prop: 'jybSum',
width: 100
},
{
label: '操作',
prop: 'operate',
width: 160
}
label: '贷方本币金额',
prop: 'dbbSum',
width: 100
},
{
label: '贷方原币金额',
prop: 'dybSum',
width: 100
},
],
billTypeClickCode: '',
masterTableData: [],
@ -520,17 +542,14 @@ export default {
pageModel: {
page: 1, //
limit: 20, //
prop7: '',
propValue7: '',
prop8: '',
propValue8: ''
total: 0
},
selected: [],
treeSelect: [],
tableColumn: [
{
label: '单据号',
prop: 'billCode'
prop: 'bill_code'
},
{
label: '单据日期',
@ -631,11 +650,11 @@ export default {
async coreData(date) {
let arr = []
this.checkBoxList.forEach(item => {
arr.push(item.billCode)
arr.push(item.bill_code)
})
let params = {
mdmId: this.billTypeClickID,
billCode: arr.join(','),
bill_code: arr.join(','),
targetDate: date
}
this.openLoading()
@ -645,43 +664,6 @@ export default {
this.resetTable()
}
},
async ixedValueFormelDialogClick(row) {
if (row.label === '参照') {
this.fixedValuelDialogClick(false)
} else {
if (!this.fixedValueClickRow.namefieldname) {
this.$vmNews('请选择参照值')
return
}
this.addTableColumn2 = [
{
label: '名称',
prop: this.fixedValueClickRow.namefieldname
},
{
label: '编码',
prop: this.fixedValueClickRow.codefieldname
}
]
this.addDialog = true
this.addTiTle = this.fixedValueClickRow.dbName
this.pageModel.propValue7 = ''
this.pageModel.propValue8 = ''
this.pageModel.prop7 = ''
this.pageModel.prop8 = ''
this.getAddTableData()
}
},
getTableAddList(val) {
// console.log(val, 'val', this.fixedValueClickRow)
this.pageModel.propValue7 = val
this.pageModel.propValue8 = val
this.pageModel.prop7 = this.fixedValueClickRow.codefieldname
this.pageModel.prop8 = this.fixedValueClickRow.namefieldname
this.getAddTableData()
},
addPickDialog() {
if (!this.$refs.baseChoice2.optionData[this.fixedValueClickRow.namefieldname]) {
this.$vmNews('请选择一条数据')
@ -696,21 +678,6 @@ export default {
// console.log(this.clickRow, 'this.clickRow')
this.addDialog = false
},
async getAddTableData() {
const res = await queryDataPagedByMapAPI({
...this.pageModel,
pageNum: this.pageModel.page,
pageSize: this.pageModel.limit,
tablename: this.fixedValueClickRow.tablename,
pkentityorg: this.pkglbookClickObj.pkentityorg
})
this.$refs.baseChoice2.pageModel.total = res.attribute.total
this.addTableData2 = res.attribute.list
},
addonQuery(res, pageModel) {
this.pageModel = pageModel
this.getAddTableData()
},
//
transitionRowHandle(item) {
let obj = item
@ -1420,25 +1387,43 @@ export default {
},
pageChange(model) {
this.pageModel.page = model.page
this.pageModel.limit = model.limit
console.log(model, 'model')
// this.pageModel.page = model.page
// this.pageModel.limit = model.limit
this.getTableData()
},
async getTableData() {
this.assistTableData = []
if (!this.billTypeClickID) return
const res = await logqueryBillAPI({
...this.searchObjTable,
const res2 = await queryBillFiledsAPI({
mdmId: this.billTypeClickID
})
this.tableData = res.attribute
this.tableColumn = []
res2.attribute.listList.forEach(item => {
item.label = item.chName
item['prop'] = item.enName
item.ruleList.forEach(ele => {
item[ele.ruleCode] = ele.ruleValue
})
})
this.tableColumn = res2.attribute.listList
console.log(this.tableColumn, 'this.tableColumn')
const res = await queryBillPagedAPI({
...this.searchObjTable,
mdmId: this.billTypeClickID,
pageNum: this.pageModel.page,
pageSize: this.pageModel.limit
})
console.log(res, '?')
this.tableData = res.attribute.list
this.pageModel.total = res.attribute.total
this.$nextTick(() => {
this.$refs.customtable.clearRadioIndex()
this.$refs.customtable.clearSelection()
this.$refs.customtable.clearSelect()
this.selected = []
this.checkBoxList = []
})
},
resetTable() {
this.tableData = []
@ -1447,10 +1432,20 @@ export default {
this.getTableData()
},
//
radioChange(val) {
async radioChange(val) {
console.log(val, '?')
this.openLoading()
const res = await queryDetailsByBillCodeAndMdmIdAPI({
mdmId: this.billTypeClickID,
bill_code: val.bill_code
})
this.$set(val, 'logList', res.attribute)
// console.log(res, '?')
this.selected = []
this.selected.push(val)
console.log(val.logList, '?val.assistEntityList')
let row = {
props: {
children: 'sublistMdmModuleDbFileds',
@ -1835,6 +1830,10 @@ export default {
<style scoped lang="scss">
::v-deep .el-table__body-wrapper {
height: 100% !important;
}
.tabs {
width: 200px;
display: flex;

View File

@ -0,0 +1,172 @@
/**
desc 业务中心
*/
<template>
<div class="workbench">
<h3 class="workbench-title">全部应用</h3>
<el-tabs>
<el-tab-pane
v-for="(item, index) in routeData"
:key="index"
:label="item.meta ? item.meta.title : ''"
v-if="item.meta"
>
<div class="menuContainer">
<div
v-for="(list, listIndex) in item.children"
class="menuBox"
@click="goRoute(item, list)"
v-if="!list.meta.hidden"
>
<img class="menuIcon" :src="list.meta.icon" v-if="list.meta.icon" />
<img class="menuIcon" src="../logo1.png" v-else />
<p class="menuContent">{{ list.meta.title }}</p>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import { TagsView } from "@/layout/components";
import request from "@/utils/request";
export default {
name: "ApplicationCenter",
components: {
TagsView,
},
created() {
this.$store.dispatch("settings/changeSetting", {
key: "showTagsView",
value: true,
});
},
data() {
return {
routeData: [], //
};
},
mounted() {
let routeList = localStorage.getItem("routeList")
? JSON.parse(localStorage.getItem("routeList"))
: [];
this.routeData = this.OrganizeMenus(routeList);
},
methods: {
goRoute(val, item) {
let routeData = this.$router.resolve({
path: item.path,
name: item.name,
query: { mdmCode: item.meta.mdmCode, viewType: item.meta.viewType },
});
window.open(routeData.href, "_self");
},
// icon
handlerIcon(item) {
let str = "";
if (item.includes("?")) {
str = item.split("?")[1];
} else {
str = item;
}
return str;
},
handlerIconColor(item) {
let color = "";
if (item.includes("?")) {
color = item.split("?")[0];
} else {
color = "#1478F6";
}
return color;
},
//
OrganizeMenus(data) {
let arrData = [];
//
let arrID = ["688293d5d76e432487f7516bf969a822"];
arrID.forEach((a) => {
data.forEach((b) => {
if (a === b.id) {
arrData.push(b);
}
});
});
arrData.forEach((bItem) => {
if (bItem.children && bItem.children.length > 0) {
bItem.children.forEach((cItem) => {
if (cItem.meta.icon) {
this.getLogoUrl(cItem.meta.icon).then((res) => {
let imageUrl =
"data:image/png/jpg;base64," +
btoa(
new Uint8Array(res).reduce(
(el, byte) => el + String.fromCharCode(byte),
""
)
);
this.$set(cItem.meta, "icon", imageUrl);
});
}
});
}
});
return arrData;
},
getLogoUrl(id) {
return request({
url:
"/kangarooDataCenterV3/entranceController/fileDownloadNew?id=" + id,
method: "get",
responseType: "arraybuffer",
}).then((res) => {
return res;
});
},
},
};
</script>
<style lang="scss" scoped>
.workbench {
background: #fff;
padding: 15px;
//margin: 0 10px;
}
.workbench-title {
margin: 15px 0;
}
.menuContainer {
display: flex;
flex-wrap: wrap;
background-color: #fff;
}
.menuBox {
display: flex;
align-items: center;
background: #fafafa;
padding: 10px 15px;
border-radius: 10px;
width: 200px;
margin: 10px;
cursor: pointer;
}
.menuIcon {
width: 36px;
height: 36px;
line-height: 36px;
border-radius: 12px;
margin-right: 10px;
}
.menuContent {
font-size: 14px;
color: #333333;
}
</style>

View File

@ -421,7 +421,7 @@ export default {
clickRowKey: '',
activeTabs: '元数据属性',
tabItem: ['元数据属性', '固定值'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)','if(*?:)'],
fixedValueForm: [
{
elCol: [

View File

@ -41,9 +41,9 @@ module.exports = {
[process.env.VUE_APP_BASE_API]: {
// target: `http://hzya.ufyct.com:9067/`,
// target: `http://127.0.0.1:9081/`,
// target: `http://192.168.2.189:10086`,//一凡
target: `http://192.168.2.189:10086`,//一凡
// target: `http://192.168.2.78:8080`,
target: `http://b8bc6e8e.natappfree.cc`,
// target: `http://b8bc6e8e.natappfree.cc`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''