middleground_code_v2/src/views/accountingSubject/index.vue

1197 lines
34 KiB
Vue
Raw Normal View History

2025-06-07 16:34:40 +08:00
<script src="../../api/apis/operationalModule.js"></script>
<template>
<div class="recordContrast">
<div class="right">
<div class="topBox">
<div class="searchBox">
公司
<el-select
class="w-100"
v-model="name"
filterable
:clearable="true"
placeholder="请选择"
@change="getTableData"
>
<el-option
v-for="(el, index) in nameOptions"
:key="el.value"
:label="el.label"
:value="el.value"
>
</el-option>
</el-select>
</div>
<div style="display: flex;align-items: center;justify-content: flex-end;">
<el-button
size="small"
:icon="item.icon"
@click="clickSave(item)"
:type="item.type ? item.type : 'primary'"
v-for="(item, index) in nowBtns"
:key="index"
>{{ item.menuName }}
</el-button>
</div>
</div>
<div class="table">
<base-table ref="customtable" :showIndex="false" :slotrow="true"
tableHeight="calc(100vh - 570px)" :tableData="tableData" :tableColumn="tableColumn"
@radioChange="radioChange" id="printMe"
:border="true"
>
<template #operation="{row}">
<div style="display: flex;align-content: center;justify-content: center">
<div style="cursor: pointer;color: #3876ee;margin-right: 10px"
@click="comparisonEditHandle(row.row)"
>
对照表
</div>
<div style="cursor: pointer;color: #3876ee;margin-right: 0px" @click.stop="copyHanlde(row.row)">复制行
</div>
</div>
</template>
</base-table>
</div>
<div class="table2">
<base-table ref="customtable" :showIndex="true" :slotrow="false"
:tableData="masterTableData2" :tableColumn="masterTableColumn2"
:sortableSwitch="true"
id="printMe"
tableHeight="calc(100vh - 570px)"
:border="true"
>
</base-table>
</div>
</div>
<base-right-dialog
@handleClose="examineOperateDialog = false"
@handleConfirmClick="handleConfirmClick"
:dialogVisible="examineOperateDialog"
size="900px"
:appendBody="true"
:loading="true"
:footerShow="true"
:submitShow="true"
:title="dialogTitle +'会计科目'"
submitTitle="保存"
>
<div class="rightDialogClass_main" style="background-color: #fff;" v-if="examineOperateDialog">
<base-form
ref="basicFormRefsName"
:formRow="basicFormForm"
:isFunBtn="false"
:spanWidth="'100px'"
justifyContent="flex-end"
:rules="basicFormRulers"
@onSelect="onSelect"
:view-status="statusView"
@elDialogClick="elDialogClick"
>
</base-form>
</div>
</base-right-dialog>
<base-dialog
:dialogVisible.sync="masterDialog"
:closeModal="false"
:footerShow="true"
title="基础档案对照表"
width="80%"
top="10vh"
@handleConfirmClick="masterPickDialog"
>
<div class="rightDialogClass_main" style="background-color: #fff;" v-if="masterDialog">
<div style="display: flex;justify-content: flex-end">
<el-button size="mini" type="primary" @click="addHandle" style="margin-bottom: 10px">新增</el-button>
</div>
<base-table ref="customtable" :showIndex="true" :slotrow="false"
:tableData="masterTableData" :tableColumn="masterTableColumn"
:sortableSwitch="true"
id="printMe"
tableHeight="calc(100vh - 570px)"
>
<template #factorname1="{row}">
<div style="background: #fff;cursor: pointer" class="elDialog" @click="elDialogOpen(1,row)">
<p :style="{ color: row['factorname1'] ? '#000' : '#c0c4cc' }" class="showText">
{{
row['factorname1'] ? row['factorname1'] :
'请点击选择'
}}
</p>
<i class="el-icon-more "
v-if="!row['factorname1']"
></i>
</div>
</template>
<template #factorname2="{row}">
<div style="background: #fff;cursor: pointer" class="elDialog" @click="elDialogOpen(2,row)">
<p :style="{ color: row['factorname2'] ? '#000' : '#c0c4cc' }" class="showText">
{{
row['factorname2'] ? row['factorname2'] :
'请点击选择'
}}
</p>
<i class="el-icon-more "
v-if="!row['factorname2']"
></i>
</div>
</template>
<template #factorname3="{row}">
<div style="background: #fff;cursor: pointer" class="elDialog" @click="elDialogOpen(3,row)">
<p :style="{ color: row['factorname3'] ? '#000' : '#c0c4cc' }" class="showText">
{{
row['factorname3'] ? row['factorname3'] :
'请点击选择'
}}
</p>
<i class="el-icon-more "
v-if="!row['factorname3']"
></i>
</div>
</template>
<template #factorname4="{row}">
<div style="background: #fff;cursor: pointer" class="elDialog" @click="elDialogOpen(4,row)">
<p :style="{ color: row['factorname4'] ? '#000' : '#c0c4cc' }" class="showText">
{{
row['factorname1'] ? row['factorname4'] :
'请点击选择'
}}
</p>
<i class="el-icon-more "
v-if="!row['factorname4']"
></i>
</div>
</template>
<template #factorname5="{row}">
<div style="background: #fff;cursor: pointer" class="elDialog" @click="elDialogOpen(5,row)">
<p :style="{ color: row['factorname5'] ? '#000' : '#c0c4cc' }" class="showText">
{{
row['factorname5'] ? row['factorname5'] :
'请点击选择'
}}
</p>
<i class="el-icon-more "
v-if="!row['factorname5']"
></i>
</div>
</template>
<template #factorname6="{row}">
<div style="background: #fff;cursor: pointer" class="elDialog" @click="elDialogOpen(6,row)">
<p :style="{ color: row['factorname6'] ? '#000' : '#c0c4cc' }" class="showText">
{{
row['factorname6'] ? row['factorname6'] :
'请点击选择'
}}
</p>
<i class="el-icon-more "
v-if="!row['factorname6']"
></i>
</div>
</template>
<template #factorname7="{row}">
<div style="background: #fff;cursor: pointer" class="elDialog" @click="elDialogOpen(7,row)">
<p :style="{ color: row['factorname7'] ? '#000' : '#c0c4cc' }" class="showText">
{{
row['factorname7'] ? row['factorname7'] :
'请点击选择'
}}
</p>
<i class="el-icon-more "
v-if="!row['factorname7']"
></i>
</div>
</template>
<template #factorname8="{row}">
<div style="background: #fff;cursor: pointer" class="elDialog" @click="elDialogOpen(8,row)">
<p :style="{ color: row['factorname8'] ? '#000' : '#c0c4cc' }" class="showText">
{{
row['factorname8'] ? row['factorname8'] :
'请点击选择'
}}
</p>
<i class="el-icon-more "
v-if="!row['factorname8']"
></i>
</div>
</template>
<template #factorname9="{row}">
<div style="background: #fff;cursor: pointer" class="elDialog" @click="elDialogOpen(9,row)">
<p :style="{ color: row['factorname9'] ? '#000' : '#c0c4cc' }" class="showText">
{{
row['factorname9'] ? row['factorname9'] :
'请点击选择'
}}
</p>
<i class="el-icon-more "
v-if="!row['factorname9']"
></i>
</div>
</template>
<template #desdocvalue="{row}">
<div style="background: #fff;cursor: pointer" class="elDialog" @click="elDialogOpenTree(9,row)">
<p :style="{ color: row['desdocvalue'] ? '#000' : '#c0c4cc' }" class="showText">
{{
row['desdocvalue'] ? row['desdocvalue'] :
'请点击选择'
}}
</p>
<i class="el-icon-more "
v-if="!row['desdocvalue']"
></i>
</div>
</template>
<template #operation="{row}">
<div style="display: flex;align-content: center;justify-content: center">
<div style="cursor: pointer;color: #3876ee;margin-right: 0px" @click.stop="copymasterHanlde(row)">复制行
</div>
<div style="cursor: pointer;color: red;margin-left: 10px"
@click.stop="delmasterHandle(row)"
>
删除行
</div>
</div>
</template>
</base-table>
</div>
</base-dialog>
<base-dialog
:dialogVisible.sync="addDialog"
:closeModal="false"
:footerShow="true"
:title="'选择'+ addTiTle"
width="80%"
top="10vh"
@handleConfirmClick="addPickDialog"
>
<div class="rightDialogClass_main" style="background-color: #fff;" v-if="addDialog">
2025-07-26 10:28:29 +08:00
<baseChoice ref="baseChoice" :tableData="addTableData" :tableColumn="addTableColumn" @onQuery="addonQuery" @getTableList="getAddTableData"
2025-06-07 16:34:40 +08:00
:showSearch="true" :placeholder="addTiTle+'搜索'"
></baseChoice>
</div>
</base-dialog>
<treePickDialog ref="treePickDialog" :nameClickRow="nameClickRow" @handleNodeClick="handleNodeClick"
></treePickDialog>
</div>
</template>
<script>
import treePickDialog from '@/views/accountingSubject/compoments/treePickDialog.vue'
import basePage from '@/components/base/basePage/index.vue'
import baseChoice from '@/components/base/baseChoice/index.vue'
import baseDialog from '@/components/base/BaseNewDialog/index.vue'
import baseRightDialog from '@/components/base/baseRightDialog'
import baseTable from '@/components/base/baseTable/index.vue'
import baseForm from '@/components/base/baseNewForm'
import {
businessModuledeleteAPI,
businessModuleMdmdeleteListAPI,
businessModuleMdmSaveListAPI,
businessModuleMdmupdateListAPI,
businessModulequeryAllAPI,
businessModuleUpdateAPI,
queryAllAPI,
queryByIdAPI,
queryMdmsByModuleIdAPI
} from '@/api/apis/operationalModule'
import { GetLoginUserButtonsAPI } from '@/api/apis/buttonList'
import {
queryBdinfoListAPI, queryDataByMapAPI, queryDataPagedByMapAPI,
queryOrgBookVOAPI, subjectContrastBDelete, subjectContrastdeleteAPI, subjectContrastqueryAll,
subjectContrastQueryAll,
subjectContrastSaveAPI, subjectContrastupdateAPI
} from '@/api/apis/accountingSubject'
export default {
name: 'recordContrast',
components: { baseDialog, baseChoice, basePage, baseTable, baseRightDialog, baseForm, treePickDialog },
data() {
return {
masterTableData2: [],
masterTableColumn2: [
{
label: '来源组织',
prop: 'glorgname'
},
{
label: '会计科目',
prop: 'desdocvalue'
}
],
nameClickRow: {},
clickMasterRow: {},
addTableData: [],
addTableColumn: [],
addDialog: false,
addTiTle: '',
clickNum: 0,
clickObj: {},
clickRow: {},
nameOptions: [],
name: '',
masterTableData: [],
masterTableColumn: [],
masterDialog: false,
basicFormForm: [
{
elCol: [
{
label: '账簿类型',
prop: 'accountBookTypeName',
tag: 'elSelect',
span: 24,
placeholder: '点击选择'
},
{
label: '编码',
prop: 'code',
tag: 'elInput',
span: 12
},
{
label: '名称',
prop: 'name',
tag: 'elInput',
span: 12
},
{
label: '来源档案',
prop: 'sourceIdsArr',
tag: 'elMultiple',
span: 24,
options: [],
limit: 9
},
{
label: '目标档案',
prop: 'desdocName',
tag: 'elInput',
span: 24,
disabled: true,
options: []
}
]
}
],
basicFormRulers: {
accountBookTypeId: [
{ required: true, message: '请选择账簿类型', trigger: 'change' }
],
code: [
{ required: true, message: '请输入编码', trigger: 'blur' }
],
name: [
{ required: true, message: '请输入名称', trigger: 'blur' }
]
},
nowBtns: [],
billTypeName: '',
billTypeClickID: '',
billTypeClickName: '',
billTypeList: [
{
name: '人员对照',
id: 1
},
{
name: '人员对照',
id: 2
},
{
name: '人员对照',
id: 3
},
{
name: '人员对照',
id: 4
}
],
searchObj: {},
pageModel: {
page: 1, //当前页码
limit: 10 //每页显示多少
},
selected: [],
tableColumn: [
{
label: '账簿类型',
prop: 'accountBookTypeName'
},
{
label: '编码',
prop: 'code'
},
{
label: '名称',
prop: 'name'
},
{
label: '来源档案',
prop: 'sourceNames'
},
{
label: '目标档案类型',
prop: 'desdocName'
},
{
label: '操作',
prop: 'operation'
}
],
tableData: [],
dialogTitle: '新增',
examineOperateDialog: false,
statusView: false,
passwordDialogShow: false,
passwordDialogTitle: '新增',
billTypeADDName: '',
2025-07-26 10:28:29 +08:00
billTypeADDID: '',
bdInfoRow:{}
2025-06-07 16:34:40 +08:00
}
},
methods: {
2025-07-26 10:28:29 +08:00
async getTableAddList(val){
let params = {
tablename:this.bdInfoRow.tablename,
prop7:this.bdInfoRow.codefieldname,
propValue7:val,
prop8:this.bdInfoRow.namefieldname,
propValue8:val,
}
let res = await queryDataByMapAPI(params)
this.addTableData = []
this.addTableData = res.attribute.list
2025-07-30 14:25:20 +08:00
2025-06-07 16:34:40 +08:00
},
handleNodeClick(node) {
console.log(node, '?')
this.$set(this.clickRow, `pkAccsubj`, node[0].pkAccsubj)
this.$set(this.clickRow, `desdocvalue`, node[0].dispname)
},
elDialogOpenTree(num, row) {
this.clickNum = num
this.clickObj = this.masterTableColumn[num - 1]
this.clickRow = row
this.$refs.treePickDialog.openDialog()
},
delmasterHandle(row) {
this.$confirm('确认删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async() => {
const res = await subjectContrastBDelete({
id: row.id
})
this.$vmNews('删除成功', 'success')
this.masterTableData.splice(row.index, 1)
this.getTableData()
})
},
copymasterHanlde(row) {
this.masterTableData.push(JSON.parse(JSON.stringify(row)))
},
addonQuery(res, pageModel) {
this.pageModel = pageModel
this.getAddTableData()
},
addPickDialog() {
if (!this.$refs.baseChoice.optionData[this.clickObj.key]) {
this.$vmNews('请选择一条数据')
return
}
this.$set(this.clickRow, `factorid${this.clickNum}`, this.$refs.baseChoice.optionData[this.clickObj.key])
this.$set(this.clickRow, `factorname${this.clickNum}`, this.$refs.baseChoice.optionData[this.clickObj.labelKey])
this.$set(this.clickRow, `factorpk${this.clickNum}`, this.$refs.baseChoice.optionData['id'])
console.log(this.clickRow, 'this.clickRow')
this.addDialog = false
},
elDialogOpen(num, row) {
this.clickNum = num
this.clickObj = this.masterTableColumn[num]
this.clickRow = row
this.pageModel.page = 1
this.pageModel.limit = 10
this.addTiTle = this.clickObj.label
this.addTableData = []
this.addTableColumn = [
{
label: '名称',
prop: this.clickObj.labelKey
},
{
label: '编码',
prop: this.clickObj.key
}
]
this.addDialog = true
this.getAddTableData()
},
2025-07-26 10:28:29 +08:00
async getAddTableData(val = false) {
let params = {
pageNum: this.pageModel.page,
pageSize: this.pageModel.limit,
tablename: this.clickObj.factortable,
pkentityorg: this.nameClickRow.pkentityorg,
}
if(val){
this.pageModel.page = 1
params.tablename=this.bdInfoRow.tablename
params.prop7=this.bdInfoRow.codefieldname
params.propValue7=val
params.prop8=this.bdInfoRow.namefieldname
params.propValue8=val
}
const res = await queryDataPagedByMapAPI(params)
2025-06-07 16:34:40 +08:00
console.log(res, 'res??')
this.$refs.baseChoice.pageModel.total = res.attribute.total
this.addTableData = res.attribute.list
},
addHandle() {
let obj = {
glorgname: this.nameClickRow.glorgname,
pkentityorg: this.nameClickRow.pkentityorg
}
this.masterTableColumn.forEach((item, index) => {
let num = index
obj['factortable' + num] = item.factortable
obj['factorpk' + num] = item.factorpk
obj['factorid' + num] = ''
obj['factorname' + num] = ''
})
this.masterTableData.push(obj)
},
async comparisonEditHandle(row) {
this.masterTableColumn = [
{
label: '来源组织',
prop: 'glorgname'
}
]
for (let i = 0; i < row.sourceIds.split(',').length; i++) {
let item = row.sourceNames.split(',')[i]
let id = row.sourceIds.split(',')[i]
let num = i + 1
this.openLoading()
const res = await queryBdinfoListAPI({
pkBdinfo: id
})
2025-07-26 10:28:29 +08:00
this.bdInfoRow = res.attribute[0]
2025-06-07 16:34:40 +08:00
//转大写
//value 编码
let key = res.attribute[0].codefieldname
//label 名称
let labelKey = res.attribute[0].namefieldname
let obj = {
label: item,
prop: 'factorname' + num,
tag: 'elSelect',
options: [],
factortable: res.attribute[0].tablename,
factorpk: res.attribute[0].tablepkname,
key: key,
labelKey: labelKey
}
this.masterTableData = JSON.parse(JSON.stringify(row.contrastBEntityList))
this.masterTableColumn.push(obj)
}
this.clickMasterRow = row
this.masterDialog = true
this.masterTableColumn.push(
{
label: '会计科目',
prop: 'desdocvalue'
}
)
this.masterTableColumn.push(
{
label: '操作',
prop: 'operation'
}
)
},
copyHanlde(row) {
this.dialogTitle = '复制'
this.examineOperateDialog = true
this.$nextTick(() => {
this.$refs.basicFormRefsName.ruleForm = {
...row,
sourceIdsArr: row.sourceIds.split(',')
}
})
},
async getNameOptions() {
const res = await queryOrgBookVOAPI({})
res.attribute.forEach(el => {
el.label = el.glorgname
el.value = el.pkentityorg
})
this.nameOptions = res.attribute
const res2 = await queryBdinfoListAPI({})
console.log(res2, '2')
res2.attribute.forEach(el => {
el.label = el.bdname
el.value = el.pkBdinfo
})
this.basicFormForm[0].elCol[3].options = res2.attribute
},
async masterPickDialog() {
const res = await subjectContrastupdateAPI(
{
...this.clickMasterRow,
contrastBEntityList: this.masterTableData
}
)
this.$vmNews('保存成功', 'success')
this.masterDialog = false
this.getTableData()
},
async elDialogClick(row, index) {
this.masterDialog = true
const res = await businessModulequeryAllAPI({})
this.masterTableData = res.attribute
},
delRightTitle(item) {
this.$confirm('确认删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async() => {
const res = await subjectContrastdeleteAPI({
id: item.id
})
if (res.status == 200) {
this.$vmNews('删除成功', 'success')
this.billTypeClickName = ''
this.billTypeClickID = ''
this.getLeftList()
this.resetTable()
}
})
},
editRightTitle(item) {
this.billTypeADDName = item.name
this.billTypeADDID = item.id
this.passwordDialogTitle = '编辑'
this.passwordDialogShow = true
},
rightAddHandle() {
this.passwordDialogShow = true
this.passwordDialogTitle = '新增'
this.billTypeADDName = ''
this.billTypeADDID = ''
},
async passwordChangeHandle() {
if (!this.billTypeADDName) {
this.$vmNews('请输入单据类型名称')
return
}
let params = {
'moduleName': this.billTypeADDName
}
if (this.passwordDialogTitle === '编辑') {
params.id = this.billTypeADDID
const res = await subjectContrastupdateAPI(params)
if (res.status == 200) {
this.$vmNews('保存成功', 'success')
this.passwordDialogShow = false
this.getLeftList()
}
return
}
const res = await queryByIdAPI(params)
if (res.status == 200) {
this.$vmNews('保存成功', 'success')
this.passwordDialogShow = false
this.getLeftList()
}
},
async getSelect() {
const res = await GetBillListAPI({
page: 1,
limit: 9999
})
res.data[1].forEach(item => {
item.label = item.appName
item.value = item.appID
})
this.basicFormForm[0].elCol[2].options = res.data[1]
this.basicFormForm[0].elCol[6].options = res.data[1]
},
async getLeftList() {
this.openLoading()
const res = await queryAllAPI({})
res.attribute.forEach((el) => {
el.name = el.moduleName
el.id = el.id
})
this.billTypeList = res.attribute
},
onSelect(val, index, indexRow, obj, options, form, row) {
if (row.prop === 'accountBookTypeName') {
this.$set(this.$refs.basicFormRefsName.ruleForm, 'accountBookTypeCode', obj.accountBookTypeCode)
this.$set(this.$refs.basicFormRefsName.ruleForm, 'accountBookTypeName', obj.accountBookTypeName)
this.$set(this.$refs.basicFormRefsName.ruleForm, 'accountBookTypeId', obj.accountBookTypeId)
}
if (row.prop === 'sourceIdsArr') {
let sourceIds = []
let sourceNames = []
2025-07-18 14:22:43 +08:00
val.forEach(item=>{
options.forEach(el => {
if (item === el.value) {
sourceIds.push(el.value)
sourceNames.push(el.label)
}
})
2025-06-07 16:34:40 +08:00
})
this.$set(this.$refs.basicFormRefsName.ruleForm, 'sourceIds', sourceIds.join(','))
this.$set(this.$refs.basicFormRefsName.ruleForm, 'sourceNames', sourceNames.join(','))
}
},
async handleConfirmClick() {
await this.$refs.basicFormRefsName.$refs.ruleForm.validate()
let form = this.$refs.basicFormRefsName.ruleForm
if (this.dialogTitle === '编辑') {
this.openLoading()
const res = await subjectContrastupdateAPI(
{
...this.$refs.basicFormRefsName.ruleForm
}
)
if (res.status == 200) {
this.$vmNews('保存成功', 'success')
this.examineOperateDialog = false
this.resetTable()
}
} else {
this.openLoading()
const res = await subjectContrastSaveAPI(
{
desdocId: '',
desdocCode: '',
desdocName: '',
contrastBEntityList: [],
...this.$refs.basicFormRefsName.ruleForm
}
)
if (res.status == 200) {
this.$vmNews('保存成功', 'success')
this.examineOperateDialog = false
this.resetTable()
}
}
},
pageChange(model) {
this.pageModel.page = model.page
this.pageModel.limit = model.limit
this.getTableData()
},
async getTableData() {
const res = await subjectContrastqueryAll({
...this.searchObj,
pkCorp: this.name
})
this.tableData = res.attribute
this.$nextTick(() => {
this.$refs.customtable.clearRadioIndex()
this.selected = []
this.clickMasterRow = {}
})
this.nameClickRow = this.nameOptions.find(el => el.value == this.name)
console.log(this.nameClickRow, 'nameClickRow', this.nameOptions)
},
resetTable() {
this.tableData = []
this.pageModel.page = 1
this.selected = []
this.getTableData()
},
// 点击某条数据
async radioChange(row) {
console.log(123, '123123')
this.selected = []
this.selected.push(row)
this.masterTableData2 = row.contrastBEntityList
let arr = [
{
label: '来源组织',
prop: 'glorgname'
}
]
console.log(row.sourceIds)
for (let i = 0; i < row.sourceIds.split(',').length; i++) {
let item = row.sourceNames.split(',')[i]
let id = row.sourceIds.split(',')[i]
let num = i + 1
this.openLoading()
const res = await queryBdinfoListAPI({
pkBdinfo: id
})
//转大写
let key = res.attribute[0].codefieldname
let labelKey = res.attribute[0].namefieldname
let obj = {
label: item,
prop: 'factorname' + num,
tag: 'elSelect',
options: [],
factortable: res.attribute[0].tablename,
factorpk: res.attribute[0].tablepkname,
key: key,
labelKey: labelKey
}
arr.push(obj)
}
arr.push(
{
label: '会计科目',
prop: 'desdocvalue'
}
)
this.masterTableColumn2 = arr
},
// 删除
delOperate() {
if (!this.selected.length) {
this.$vmNews('请至少选择一条数据')
return
}
this.$confirm('确认删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async() => {
const res = await subjectContrastdeleteAPI({
id: this.selected[0].id
})
if (res.status == 200) {
this.$vmNews('删除成功', 'success')
this.resetTable()
}
})
},
// 编辑
editOperate() {
if (!this.selected.length) {
this.$vmNews('请至少选择一条数据')
return
}
this.dialogTitle = '编辑'
this.examineOperateDialog = true
this.$nextTick(() => {
this.$refs.basicFormRefsName.ruleForm = {
...this.selected[0],
sourceIdsArr: this.selected[0].sourceIds.split(',')
}
})
},
//新增
async Operate() {
if (!this.name) {
this.$vmNews('请选择公司')
return
}
const res = await queryOrgBookVOAPI({
pkentityorg: this.name
})
console.log(res, 'res?')
res.attribute.forEach(el => {
el.label = el.glbookname
el.value = el.glbookname
el.accountBookTypeCode = el.glbookcode
el.accountBookTypeId = el.pkglbook
el.accountBookTypeName = el.glbookname
})
this.basicFormForm[0].elCol[0].options = res.attribute
this.dialogTitle = '新增'
this.examineOperateDialog = true
this.$nextTick(() => {
this.$set(this.$refs.basicFormRefsName.ruleForm, 'pkCorp', res.attribute[0].pkentityorg)
this.$set(this.$refs.basicFormRefsName.ruleForm, 'desdocName', '会计科目')
})
},
refresh() {
this.searchObj = {}
},
//获取按钮(头部)
async buttonPermissions() {
let arr = [
{
'id': '297c66371d484f5ea163c70b1c3944a7',
'create_user_id': '1',
'create_time': '2025-05-30 11:28:56',
'modify_time': '2025-05-30 11:28:56',
'modify_user_id': '1',
'org_id': '0',
'companyId': '0',
'sts': 'Y',
'start': null,
'limit': null,
'offset': null,
'sort': null,
'order': null,
'dir': null,
'rows': null,
'page': null,
'dialect_type': null,
'pageNum': null,
'pageSize': null,
'sorts': 1,
'dataSourceCode': 'master',
'code': '1',
'nameCh': '新增',
'nameEn': 'Operate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-plus',
'styles': 'primary',
'btnFunction': 'Operate',
'remark': null,
'userId': null,
'check': false
},
{
'id': 'ad708a5f65fb42d49e203a230096f43e',
'create_user_id': '1',
'create_time': '2025-05-30 11:29:22',
'modify_time': '2025-05-30 11:29:22',
'modify_user_id': '1',
'org_id': '0',
'companyId': '0',
'sts': 'Y',
'start': null,
'limit': null,
'offset': null,
'sort': null,
'order': null,
'dir': null,
'rows': null,
'page': null,
'dialect_type': null,
'pageNum': null,
'pageSize': null,
'sorts': 2,
'dataSourceCode': 'master',
'code': '2',
'nameCh': '编辑',
'nameEn': 'editOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-edit',
'styles': 'primary',
'btnFunction': 'editOperate',
'remark': null,
'userId': null,
'check': false
},
{
'id': 'cca6382b141e4816833581db63c768da',
'create_user_id': '1',
'create_time': '2025-05-30 11:29:39',
'modify_time': '2025-05-30 11:29:39',
'modify_user_id': '1',
'org_id': '0',
'companyId': '0',
'sts': 'Y',
'start': null,
'limit': null,
'offset': null,
'sort': null,
'order': null,
'dir': null,
'rows': null,
'page': null,
'dialect_type': null,
'pageNum': null,
'pageSize': null,
'sorts': 3,
'dataSourceCode': 'master',
'code': '3',
'nameCh': '删除',
'nameEn': 'delOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
2025-07-30 14:25:20 +08:00
'style': 'danger',
2025-06-07 16:34:40 +08:00
'btnFunction': 'delOperate',
'remark': null,
'userId': null,
'check': false
}
]
arr.forEach((el) => {
el.menuName = el.nameCh
el.icon = el.icoName
el.type = el.style
el.name = el.nameCN
})
this.nowBtns = arr
},
billTypeClickHandle(id, name) {
this.billTypeClickID = id
this.billTypeClickName = name
this.resetTable()
},
//头部按钮统一调用方法
clickSave(item) {
this[item.btnFunction]()
}
},
mounted() {
this.buttonPermissions()
this.getLeftList()
this.getNameOptions()
// this.getTableData()
// this.getSelect()
}
}
</script>
<style scoped lang="scss">
.addDialog {
display: flex;
align-items: center;
.nameTitle {
padding: 10px;
font-size: 14px;
color: #333;
margin-right: 10px;
width: 180px;
text-align: right;
}
}
.recordContrast {
display: flex;
overflow: hidden;
background-color: #f5f5f5;
.left {
width: 270px;
padding: 10px;
background-color: #fff;
border-radius: 4px;
margin-right: 5px;
.leftTitle {
color: #333;
font-size: 18px;
font-weight: 500;
}
}
.right {
flex: 1;
padding: 10px;
background-color: #fff;
border-radius: 4px;
.topBox {
display: flex;
align-items: center;
justify-content: space-between;
.searchBox {
display: flex;
align-items: center;
> div {
margin-right: 10px;
}
}
}
.table {
margin-top: 10px;
}
}
}
.searchBtn {
display: flex;
align-items: center;
justify-content: space-around;
margin-top: 20px;
.input {
flex: 1;
margin-right: 5px;
}
}
.showList {
height: calc(100vh - 200px);
overflow: auto;
margin-top: 10px;
.showItem {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 20px;
cursor: pointer;
.icon {
display: none;
}
&:hover {
background-color: #ebeced;
border-radius: 4px;
.icon {
display: block !important;
}
}
&.active {
background-color: #ebeced !important;
}
}
}
.elDialog {
display: flex;
width: 100%;
/* width: calc(100% - 14px);1 */
align-items: center;
justify-content: space-between;
border: 1px solid #DCDFE6;
border-radius: 4px;
padding: 5px 15px;
cursor: pointer;
i {
color: #c0c4cc
}
}
.showText {
/* width: 100%; */
/* width: calc(100% - 110px); */
/*让长段文本不换行*/
white-space: nowrap;
/*设置文本超出元素宽度部分隐藏*/
overflow-x: hidden;
/*设置文本超出部分用省略号显示*/
text-overflow: ellipsis;
}
</style>