Compare commits

..

No commits in common. "huyt" and "zhangpc" have entirely different histories.

34 changed files with 535 additions and 3892 deletions

View File

@ -23,25 +23,3 @@ 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,9 +1,8 @@
import request from "@/utils/request";
import baseTree from '@/components/base/BaseMenuTree/index.vue'
import basePage from '@/components/base/basePage/index.vue'
export default {
components: { basePage, baseTree }
components: { baseTree }
}
//业务模块

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -7,7 +7,7 @@
<el-form validate-on-rule-change :model="ruleForm" :rules="rules" label-position="top" ref="ruleForm"
label-width="100px"
>
<el-row :gutter="24" v-for="(item, index) in formRow" :key="index" :style="{marginBottom: isSence ?'0': '17px'}">
<el-row :gutter="24" v-for="(item, index) in formRow" :key="index" style="margin-bottom: 17px;">
<el-col v-for="(row, indexRow) in item.elCol" :span="row.span ? row.span : spanNumber" :key="indexRow">
<el-form-item :prop="row.prop" :style="`display: flex;margin-bottom: ${marginBottom}px;`"
v-if="row.show != false" :class="(rules[row.prop] ? 'ruleFormClass ' : '')"
@ -16,7 +16,7 @@
<div class="single label" v-if="row.label" slot="label"
:style="`width: ${spanWidth};` + `justify-content: ${justifyContent};`" flex
>
<span class="label" :style="{color: isSence ? '#999':'#333',fontSize: isSence ? '14px':'13px'}">{{ row.label }}</span>
<span class="label">{{ row.label }}</span>
</div>
<el-input v-model="ruleForm[row.prop]" v-if="row.tag === 'password'" type="password" show-password clearable
auto-complete="off" placeholder="密码" @keyup.enter.native="handleLogin"
@ -204,10 +204,6 @@ export default {
type: Boolean,
default: true
},
isSence: {
type: Boolean,
default: false
},
formdata: {
type: Object
},

View File

@ -35,14 +35,12 @@ 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,11 +47,7 @@ export default {
return data[4];
}else if (url.includes("businessMatter")) {
return data[5];
}else if (url.includes("accountantMatter")) {
return data[6];
}
else {
} else {
return empty;
}
} else {

View File

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

View File

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

View File

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

View File

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

View File

@ -19,9 +19,9 @@
</div>
<div class="showList">
<div class="showItem" v-for="(item,index) in voucherList" :key="index"
:class="{active:item.id === voucherClickId}" @click="voucherCliclHandle(item.id,item.name,item.def1)"
:class="{active:item.id === voucherClickId}" @click="voucherCliclHandle(item.id,item.name)"
>
<div class="name">{{ item.name }}{{ item.def1 === 'Y' ? '①' : '' }}</div>
<div class="name">{{ item.name }}</div>
<div class="icon">
<i class="el-icon-edit" @click.stop="voucherDialogEditHandle(item)" style="margin-right: 10px"></i>
<i class="el-icon-delete" style="color: red" @click.stop="voucherDialogDelHandle(item)"></i>
@ -73,16 +73,16 @@
</div>
<div style="margin-left: 10px;display: flex;align-items: center">
凭证类别
<p v-if="!editFlag">{{ typeMerge == 'Y' ? '合并' : typeMerge == 'N' ? '拆分' : '' }}</p>
<el-switch
v-else
v-model="typeMerge"
active-value="Y"
active-text="合并"
inactive-text="拆分"
inactive-value="N"
>
</el-switch>
<p v-if="!editFlag">{{typeMerge == 'Y'?'合并':typeMerge == 'N'?'拆分':''}}</p>
<el-switch
v-else
v-model="typeMerge"
active-value="Y"
active-text="合并"
inactive-text="拆分"
inactive-value="N"
>
</el-switch>
</div>
</div>
<div style="display: flex;align-items: center;justify-content: flex-end;">
@ -119,13 +119,6 @@
type="primary"
>保存
</el-button>
<el-button
size="small"
icon="el-icon-check"
@click="copyOperate"
type="primary"
>复制
</el-button>
<el-button
size="small"
icon="el-icon-delete"
@ -425,28 +418,6 @@
{{ 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">
@ -731,29 +702,6 @@
></baseChoice>
</div>
</base-dialog>
<!-- 20250704新增凭证-->
<base-dialog
:dialogVisible.sync="voucherDialogShow"
:closeModal="false"
:footerShow="true"
:title="passwordDialogTitle+'凭证类型'"
width="400px"
top="20vh"
@handleConfirmClick="voucherDialogClickHandle"
>
<div class="rightDialogClass_main"
style="background-color: #fff;display: flex;align-content: flex-start;justify-content: flex-start;flex-direction: column"
>
<div class="addDialog">
<div class="nameTitle">凭证类型名称</div>
<el-input v-model="billTypeADDName"></el-input>
</div>
<div class="addDialog" style="align-items: center;display: flex;margin-top: 10px;justify-content: flex-start">
<div class="nameTitle">单笔生成</div>
<el-switch v-model="def1" active-value="Y" inactive-value="N"></el-switch>
</div>
</div>
</base-dialog>
</div>
</template>
@ -807,7 +755,6 @@ export default {
//
voucherClickId: '',
voucherClickName: '',
voucherClickdef1: '',
voucherDialogShow: false,
voucherList: [],
subClassOptions: [],//
@ -836,7 +783,6 @@ export default {
width: '100'
}
],
def1: 'N',
pkglbookOptions: [],
treePropsproperty: {
children: 'sublistMdmModuleDbFileds',
@ -854,7 +800,7 @@ export default {
clickRowKey: '',
activeTabs: '元数据属性',
tabItem: ['元数据属性', '固定值'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)','if(*?:)'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)'],
//text
textarea: '',
textareaEn: '',
@ -1055,28 +1001,28 @@ export default {
],
exchangeRate: [
{ required: true, message: '请输入汇率', trigger: 'change' }
],
jNumField: [
{ required: true, message: '请选择借方数量字段', trigger: 'change' }
],
jYbSumField: [
{ required: true, message: '请选择借方原币金额字段', trigger: 'change' }
],
jBbSumField: [
{ required: true, message: '请选择借方本币金额字段', trigger: 'change' }
],
dNumField: [
{ required: true, message: '请选择贷方数量字段', trigger: 'change' }
],
dYbSumField: [
{ required: true, message: '请选择贷方原币金额字段', trigger: 'change' }
],
dBbSumField: [
{ required: true, message: '请选择贷方本币金额字段', trigger: 'change' }
],
pkCashflow: [
{ required: true, message: '请选择现金流量项目主键', trigger: 'change' }
]
// jNumField: [
// { required: true, message: '', trigger: 'change' }
// ],
// jYbSumField: [
// { required: true, message: '', trigger: 'change' }
// ],
// jBbSumField: [
// { required: true, message: '', trigger: 'change' }
// ],
// dNumField: [
// { required: true, message: '', trigger: 'change' }
// ],
// dYbSumField: [
// { required: true, message: '', trigger: 'change' }
// ],
// dBbSumField: [
// { required: true, message: '', trigger: 'change' }
// ],
// pkCashflow: [
// { required: true, message: '', trigger: 'change' }
// ]
},
fixedValueForm: [
@ -1198,11 +1144,6 @@ export default {
prop: 'pkCashflow',
width: 150
},
{
label: '是否计算科目余额',
prop: 'def1',
width: 150
},
{
label: '备注',
prop: 'remark',
@ -1241,7 +1182,7 @@ export default {
children: 'sublistMdmModuleDbFileds',
label: 'name'
},
typeMerge: ''
typeMerge:''
}
},
methods: {
@ -1274,8 +1215,8 @@ export default {
this.getAddTableData()
}
},
getTableAddList(val) {
console.log(val, 'val', this.fixedValueClickRow)
getTableAddList(val){
console.log(val,'val',this.fixedValueClickRow)
this.pageModel.propValue7 = val
this.pageModel.propValue8 = val
this.pageModel.prop7 = this.fixedValueClickRow.codefieldname
@ -1287,10 +1228,9 @@ export default {
this.$vmNews('请选择一条数据')
return
}
let obj = this.$refs.baseChoice2.optionData
let obj =this.$refs.baseChoice2.optionData
this.$set(this.$refs.fixedValueFormRefsName.ruleForm, 'recordData', obj[this.fixedValueClickRow.namefieldname])
console.log(this.fixedValueClickRow, 'this.fixedValueClickRow')
this.textarea += `@@$${this.fixedValueClickRow.dbName}:id=${obj.id}`
this.textarea += `@@$${this.fixedValueClickRow.dbName}:${this.fixedValueClickRow.tablepkname}=${obj[this.fixedValueClickRow.tablepkname]}`
// 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'])
@ -1340,10 +1280,9 @@ export default {
this.selected[0].assistEntityList.push({})
},
//
voucherCliclHandle(id, name, def1) {
voucherCliclHandle(id, name) {
this.voucherClickId = id
this.voucherClickName = name
this.voucherClickdef1 = def1
this.resetTable()
},
voucherDialogDelHandle(item) {
@ -1362,7 +1301,6 @@ export default {
voucherDialogEditHandle(item) {
this.billTypeADDID = item.id
this.billTypeADDName = item.name
this.def1 = item.def1
this.voucherDialogShow = true
this.passwordDialogTitle = '编辑'
},
@ -1385,8 +1323,7 @@ export default {
if (this.passwordDialogTitle === '新增') {
const res = await typeSaveAPI({
name: this.billTypeADDName,
mdmId: this.billTypeClickID,
def1: this.def1
mdmId: this.billTypeClickID
})
this.$vmNews('保存成功', 'success')
this.getVoucherListHandle()
@ -1394,8 +1331,7 @@ export default {
const res = await typeUpdateAPI({
id: this.billTypeADDID,
name: this.billTypeADDName,
mdmId: this.billTypeClickID,
def1: this.def1
mdmId: this.billTypeClickID
})
this.$vmNews('保存成功', 'success')
this.getVoucherListHandle()
@ -1406,7 +1342,6 @@ export default {
this.voucherDialogShow = true
this.passwordDialogTitle = '新增'
this.billTypeADDName = ''
this.def1 = 'N'
this.billTypeADDID = ''
},
//
@ -1419,33 +1354,18 @@ export default {
}
})
})
let tableData = this.tableData.map(el => {
return {
...el,
typeMerge: this.typeMerge
}
})
let tableData = this.tableData.map(el=>{
return{
...el,
typeMerge:this.typeMerge
}
})
console.log(this.tableData, 'this.tableData')
const res = await confTempSaveAPI(tableData)
this.$vmNews('保存成功', 'success')
this.editFlag = false
this.getTableData()
},
//
async copyOperate() {
if (!this.selected.length) {
this.$vmNews('请至少选择一条数据')
return
}
let copyTarget = JSON.parse(JSON.stringify(this.selected[0]))
console.log(copyTarget.assistEntityList, 'copyTarget')
//id
delete copyTarget.id
copyTarget.assistEntityList.forEach(item => {
delete item.id
})
this.tableData.push(copyTarget)
},
//
closeOperate() {
this.editFlag = false
@ -2064,7 +1984,7 @@ export default {
templateTypeId: this.voucherClickId//20250704
})
this.tableData = res.attribute
this.typeMerge = this.tableData[0].typeMerge
this.typeMerge = this.tableData[0].typeMerge
this.$nextTick(() => {
this.$refs.customtable.clearRadioIndex()
this.$refs.customtable.clearSelection()
@ -2199,7 +2119,7 @@ export default {
currencyFieArr: [],
assistEntityList: [],
templateTypeId: this.voucherClickId,
typeMerge: this.typeMerge
typeMerge:this.typeMerge
}
this.tableData.push(obj)
return
@ -2303,7 +2223,7 @@ export default {
'nameEn': 'delOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,
@ -2404,7 +2324,7 @@ export default {
'nameEn': 'delOperateAssist',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,

View File

@ -1779,7 +1779,7 @@ export default {
'nameEn': 'delOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,
@ -1880,7 +1880,7 @@ export default {
'nameEn': 'delOperateAssist',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,

View File

@ -1567,7 +1567,7 @@ export default {
'nameEn': 'delOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,
@ -1668,7 +1668,7 @@ export default {
'nameEn': 'delOperateAssist',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,

View File

@ -1,415 +0,0 @@
<template>
<div class="editorItem">
<el-form-item>
<div class="editor-header" :style="indentStyle">
<span
v-if="row.children && row.children.length > 0"
class="toggle-btn"
@click="toggleCollapse"
>
<i
:class="
isCollapsed ? 'el-icon-caret-right' : 'el-icon-caret-bottom'
"
></i>
</span>
<span class="column-title"
>{{ row.column_name }}
<span style="font-size: 12px; margin-left: 5px; font-weight: bold">{{
row.column_comment
}}</span></span
>
</div>
<div class="editor-container" :style="indentStyle">
<div
class="content-editor"
:ref="'contentEditor' + row.column_name + rowIndex"
:contenteditable="!viewFlag"
@keydown="handleKeyDown($event, row.column_name, rowIndex)"
@input="handleInput($event, row.column_name, rowIndex)"
@click="handleEditorClick($event, row.column_name, rowIndex)"
@paste="handlePaste($event, row.column_name, rowIndex)"
@focus="handleEditorFocus($event, row.column_name, rowIndex)"
@blur="handleEditorBlur($event, row.column_name, rowIndex)"
></div>
<div
v-if="!viewFlag"
class="editorIcon"
@click.stop="handleAddNodeToEditor(row.column_name, rowIndex)"
>
<i class="el-icon-circle-plus"></i>
</div>
<div
v-if="!viewFlag"
class="clearIcon"
@click.stop="handleClearNodeToEditor(row.column_name, rowIndex)"
>
<i class="el-icon-circle-close"></i>
</div>
</div>
</el-form-item>
<!-- 子项只有在展开时才显示 -->
<EditorItem
v-if="!isCollapsed"
v-for="(child, index) in row.children"
:key="index"
:row="child"
:row-index="`${rowIndex}-${index}`"
v-bind="$attrs"
v-on="$listeners"
ref="childEditors"
ref-in-for
:viewFlag="viewFlag"
/>
</div>
</template>
<script>
export default {
name: "EditorItem",
props: {
row: Object,
rowIndex: [String, Number],
viewFlag: {
type: Boolean,
default: false,
},
},
data() {
return {
isCollapsed: false,
};
},
computed: {
indentLevel() {
return String(this.rowIndex).split("-").length - 1;
},
indentStyle() {
return {
paddingLeft: this.indentLevel * 20 + "px",
};
},
},
mounted() {
this.$nextTick(() => {
const refName = "contentEditor" + this.row.column_name + this.rowIndex;
const editor = this.$refs[refName];
// editor DOM undefined/
if (Array.isArray(editor)) {
if (editor.length > 0) {
this.$emit("register-editor", refName, editor[0]);
}
} else if (editor) {
this.$emit("register-editor", refName, editor);
}
});
},
methods: {
//
getEditorContent() {
// DOM
const refName = "contentEditor" + this.row.column_name + this.rowIndex;
const editor = this.$refs[refName];
//
let html_label = "";
let whereCondition = "";
if (editor) {
html_label = editor.innerHTML.trim();
editor.childNodes.forEach((node) => {
if (node.nodeType === Node.TEXT_NODE) {
whereCondition += node.textContent;
} else if (node.nodeType === Node.ELEMENT_NODE) {
whereCondition += node.getAttribute("data-token-text") || "";
}
});
//
whereCondition = whereCondition
.replace(//g, ",")
.replace(//g, "(")
.replace(//g, ")");
}
//
let children = [];
if (this.$refs.childEditors && this.$refs.childEditors.length > 0) {
children = this.$refs.childEditors.map((childComp) =>
childComp.getEditorContent()
);
}
return {
character_maximum_length: this.row.character_maximum_length,
column_comment: this.row.column_comment,
column_name: this.row.column_name,
data_type: this.row.data_type,
html_label: this.row.html_label,
is_nullable: this.row.is_nullable,
fieldName: this.row.column_name,
whereCondition,
html_label,
children,
};
},
toggleCollapse() {
this.isCollapsed = !this.isCollapsed;
},
//
handleKeyDown(e, columnName, rowIndex) {
this.$emit("handle-keydown", e, columnName, rowIndex);
},
handleInput(e, columnName, rowIndex) {
this.$emit("handle-input", e, columnName, rowIndex);
},
handleEditorClick(e, columnName, rowIndex) {
this.$emit("handle-editor-click", e, columnName, rowIndex);
},
handlePaste(e, columnName, rowIndex) {
this.$emit("handle-paste", e, columnName, rowIndex);
},
handleEditorFocus(e, columnName, rowIndex) {
this.$emit("handle-editor-focus", e, columnName, rowIndex);
},
handleEditorBlur(e, columnName, rowIndex) {
this.$emit("handle-editor-blur", e, columnName, rowIndex);
},
handleAddNodeToEditor(columnName, rowIndex) {
this.$emit("handle-add-node", columnName, rowIndex);
},
handleClearNodeToEditor(columnName, rowIndex) {
this.$emit("handle-clear-node", columnName, rowIndex);
},
},
components: {
EditorItem: () => import("./EditorItem.vue"),
},
};
</script>
<style lang="scss" scoped>
// ------------------------
.editor-container {
flex: 1;
overflow: hidden;
position: relative;
}
.editorIcon {
position: absolute;
right: 10px;
top: 0;
font-size: 20px;
color: #999999;
}
.clearIcon {
display: none;
position: absolute;
top: 0;
right: 35px;
font-size: 20px;
color: #999999;
}
.editor-container:hover .clearIcon {
display: block;
}
/* hover 时显示 close-icon */
.editor-container:hover .close-icon {
display: inline-flex; /* 或 block根据你的布局 */
}
.content-editor {
border: 1px solid #e5e7eb;
border-radius: 4px;
min-height: 40px;
padding: 0 50px 0 10px;
background: #fff;
position: relative;
font-size: 12px;
// line-height: 1.6;
overflow-y: auto;
outline: none;
word-wrap: break-word;
}
.content-editor:focus {
border-color: #409eff;
}
.content-editor:empty:before {
content: attr(data-placeholder);
color: #9ca3af;
font-style: italic;
pointer-events: none;
}
.content-editor:focus:empty:before {
content: "";
}
/* 确保空编辑器也能显示光标 */
.content-editor:empty {
min-height: 40px;
}
.content-editor:focus {
outline: none;
}
// --------------------------------
::v-deep .content-token {
display: unset !important;
padding: 3px 4px !important;
border-radius: 3px;
margin: 0 2px !important;
cursor: pointer;
transition: all 0.2s ease;
vertical-align: middle;
font-size: 12px;
font-weight: 500;
user-select: none;
}
::v-deep .token-function {
background: #ecfdf5;
color: #047857;
border: 1px solid #10b981;
}
::v-deep .repContainer {
width: 100%;
height: 100%;
background: #f5f5f5;
padding: 10px;
position: relative;
}
.treeNodeBox {
height: calc(100% - 50px);
overflow-y: auto;
}
.closeRepContainer {
position: absolute;
top: 20px;
right: 12px;
font-size: 14px;
cursor: pointer;
display: flex;
align-items: center;
i {
margin-right: 5px;
}
}
.closeRepContainer:hover {
color: #409eff;
}
.repItem {
display: flex;
align-items: center;
margin-bottom: 8px;
cursor: pointer;
}
.repItem:hover .repItemValue {
color: #409eff;
}
.repItemValue {
color: #6b7280;
font-size: 13px;
margin-left: 10px;
}
.token-editable-content {
display: inline-block;
min-width: 1em;
padding: 0 2px;
border-bottom: 1px dashed #aaa;
cursor: text;
outline: none;
}
::v-deep .content-token.token-edit {
display: inline-flex !important;
color: #5b21b6;
font-weight: bold;
padding: 0;
}
.Columnsbtn {
margin: 10px 0;
display: flex;
justify-content: flex-end;
}
.fixedChildTable {
height: calc(100vh - 360px);
overflow: auto;
}
.drawParent {
position: relative;
}
.TestResultDisplayArea {
width: 400px;
height: calc(100% - 10px);
position: absolute;
right: 10px;
top: 5px;
background-color: #fff;
box-sizing: border-box;
box-shadow: 0 0 8px #0000001a;
border-radius: 4px;
z-index: 100;
overflow: hidden;
}
.testResultBoxTitle {
display: flex;
padding: 15px 10px;
background: #333333;
font-size: 14px;
font-weight: bold;
color: #fff;
justify-content: space-between;
border-radius: 4px 4px 0 0;
.closeTextBox {
cursor: pointer;
}
}
.jsonTestResultBox {
height: calc(100% - 90px);
overflow: auto;
}
::v-deep .el-alert {
padding: 10px !important;
}
.editor-header {
display: flex;
align-items: center;
margin-bottom: 5px;
font-weight: 500;
}
.toggle-btn {
cursor: pointer;
margin-right: 8px;
color: #606266;
font-size: 14px;
}
.column-title {
font-size: 14px;
color: #333;
display: flex;
font-weight: bold;
}
</style>

View File

@ -12,16 +12,16 @@
title="新增账号"
>
<template #addButton>
<el-button type="primary" v-if="!submitShow" @click="VerifyAccount">验证账号</el-button>
<el-button type="primary" @click="VerifyAccount">验证账号</el-button>
</template>
<div class="rightDialogClass_main" style="background: #fff; padding: 10px">
<base-form
style="padding-top: 0 !important"
spanWidth="80px"
ref="customForm"
:formRow="currentForm"
:formRow="accountFormRow"
:isFunBtn="false"
:rules="currentRules"
:rules="accountRules"
alignAt="block"
:span="24"
>
@ -62,8 +62,6 @@ export default {
data() {
return {
dialogVisible: false,
currentForm: [],
currentRules: {},
accountFormRow: [
{
elCol: [
@ -190,160 +188,25 @@ export default {
},
],
},
accountOtherFormRow: [
{
elCol: [
{
label: "账号名称",
prop: "name",
tag: "elInput",
span: 24,
},
],
},
{
elCol: [
{
label: "ip地址",
prop: "ipAddress",
tag: "elInput",
span: 24,
},
],
},
{
elCol: [
{
label: "端口",
prop: "port",
tag: "elInput",
span: 24,
},
],
},
{
elCol: [
{
label: "应用Key",
prop: "appKey",
tag: "elInput",
span: 24,
},
],
},
{
elCol: [
{
label: "应用密钥",
prop: "appSecret",
tag: "elInput",
span: 24,
},
],
},
{
elCol: [
{
label: "企业ID",
prop: "corpid",
tag: "elInput",
span: 24,
},
],
},
{
elCol: [
{
label: "应用ID",
prop: "agentid",
tag: "elInput",
span: 24,
},
],
},
],
accountOtherRules: {
name: [
{
required: true,
message: "请输入",
trigger: "change, blur",
},
],
ipAddress: [
{
required: true,
message: "请输入",
trigger: "change, blur",
},
],
port: [
{
required: true,
message: "请输入",
trigger: "change, blur",
},
],
appKey: [
{
required: true,
message: "请输入",
trigger: "change, blur",
},
],
appSecret: [
{
required: true,
message: "请输入",
trigger: "change, blur",
},
],
corpid: [
{
required: true,
message: "请输入",
trigger: "change, blur",
},
],
agentid: [
{
required: true,
message: "请输入",
trigger: "change, blur",
},
],
},
appID: "",
sceneID: "",
stepID: "",
accountType: "",
submitShow: false, //
message: "",
appType: "",
};
},
methods: {
openDialog(appID, sceneID, stepID, appType) {
this.appType = appType;
openDialog(appID, sceneID, stepID) {
this.submitShow = false;
this.message = "";
this.queryDictionaryList();
this.appID = appID;
this.sceneID = sceneID;
this.stepID = stepID;
this.submitShow = false;
if (appType == "9") {
this.currentForm = this.accountFormRow;
this.currentRules = this.accountRules;
this.queryDictionaryList();
} else {
this.submitShow = true;
this.currentForm = this.accountOtherFormRow;
this.currentRules = this.accountOtherRules;
}
this.dialogVisible = true;
this.$nextTick(() => {
this.dialogVisible = true;
this.$nextTick(() => {
this.$refs.customForm?.resetFields("ruleForm");
});
this.$refs.customForm?.resetFields("ruleForm");
});
},
async queryDictionaryList() {
@ -367,7 +230,6 @@ export default {
if (valid) {
let params = {
...this.$refs.customForm.ruleForm,
appType: this.appType,
};
this.verifyDataBase(params);
} else {
@ -395,7 +257,6 @@ export default {
}
},
handleConfirmClick() {
this.openLoading("保存")
this.$refs.customForm.$refs["ruleForm"].validate((valid) => {
if (valid) {
let params = {
@ -404,7 +265,6 @@ export default {
status: 1,
flowId: this.sceneID,
stepId: this.stepID,
appType: this.appType,
};
this.SaveAccountData(params);
} else {

File diff suppressed because it is too large Load Diff

View File

@ -170,8 +170,8 @@ export default {
params
);
if (res.status == "200") {
this.$refs.senceForm.choiceAssignment(res.attribute[0]);
this.triggerModeId = res.attribute[0].triggerMode;
this.$refs.senceForm.choiceAssignment(res.data[0]);
this.triggerModeId = res.data[0].triggerMode;
}
},
choseType(row) {

View File

@ -44,17 +44,23 @@
</div>
</div>
</base-dialog>
<!-- <addDialogChunk
ref="addDialogChunk"
@examineHandleClose="examineHandleClose"
></addDialogChunk> -->
</div>
</template>
<script>
import baseDialog from "@/components/base/BaseNewDialog/index.vue";
// import addDialogChunk from "./addDialogChunk";
import { authApi } from "@/api/apis/auth";
import baseForm from "@/components/base/baseNewForm";
export default {
components: {
baseDialog,
baseForm,
// addDialogChunk,
},
data() {
return {
@ -69,7 +75,6 @@ export default {
options: [],
optionValue: "id",
optionLabel: "name",
disabled:true
},
],
},
@ -164,8 +169,8 @@ export default {
params
);
if (res.status == "200") {
this.$refs.senceForm.choiceAssignment(res.attribute[0]);
this.triggerModeId = res.attribute[0].triggerMode;
this.$refs.senceForm.choiceAssignment(res.data[0]);
this.triggerModeId = res.data[0].triggerMode;
}
},
handleConfirmClick() {

File diff suppressed because it is too large Load Diff

View File

@ -358,10 +358,6 @@
ref="addDialogChunk"
@examineHandleClose="resetTable"
></addDialogChunk>
<viewDialogChunk
ref="viewDialogChunk"
@examineHandleClose="resetTable"
></viewDialogChunk>
</div>
</template>
@ -376,7 +372,6 @@ import addSence from "@/views/LinkUp/compoment/addSence.vue";
import projectClassificationRightDialog from "@/views/projectClassification/rightDialog.vue";
import authorizationDialog from "@/views/projectClassification/authorizationDialog.vue";
import addDialogChunk from "./compoment/addDialogChunk.vue";
import viewDialogChunk from "./compoment/viewDialogChunk.vue";
export default {
components: {
baseLayout,
@ -386,7 +381,6 @@ export default {
projectClassificationRightDialog,
authorizationDialog,
addDialogChunk,
viewDialogChunk
},
data() {
return {
@ -530,9 +524,17 @@ export default {
//
getFuncBtn(btnEven) {
if (btnEven.menuName == "新增") {
// this.$refs.addDialogChunk.openDialog(
// "-4252471217359269890",
// "3-33003",
// "add",
// 3
// );
this.$refs.addSence.openDialog("", "add", this.projectClassificationID);
}
},
//hyt 2024/08/14
onFixedBtn(flag) {
this.$refs.layoutNew.pageClear();
this.pageModel.page = 1;

View File

@ -466,7 +466,7 @@ export default {
let res = await queryDataByMapAPI(params)
this.addTableData = []
this.addTableData = res.attribute.list
},
handleNodeClick(node) {
console.log(node, '?')
@ -1025,7 +1025,7 @@ export default {
'nameEn': 'delOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,

View File

@ -1,9 +1,9 @@
<template>
<div>
<base-dialog :dialogVisible.sync="dialogVisible" :closeModal="false" :footerShow="true" :title="'查看分录信息'"
width="90%" top="10vh">
width="800px" top="15vh">
<div class="rightDialogClass_main" style="background-color: #fff;">
<base-table ref="assistTable" :showIndex="false" :slotrow="false" tableHeight="calc(75vh - 80px)"
<base-table ref="assistTable" :showIndex="false" :slotrow="false" tableHeight="calc(60vh - 80px)"
:tableData="tableData" :tableColumn="tableColumn" id="printMe">
</base-table>

View File

@ -1,86 +0,0 @@
<template>
<div>
<base-dialog :dialogVisible.sync="dialogVisible" :closeModal="false" :footerShow="true" :title="'选择生成日期'"
width="300px" top="10vh"
@handleConfirmClick="handleConfirmClick"
>
<div class="rightDialogClass_main" style="background-color: #fff;">
<el-date-picker v-model="date" align="right" type="date" placeholder="选择日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</div>
</base-dialog>
</div>
</template>
<script>
import baseDialog from '@/components/base/BaseNewDialog/index.vue'
import baseTable from '@/components/base/baseTable/index.vue'
import { queryDetailsByBillCodeAPI } from '@/api/apis/businessVoucher'
export default {
components: {
baseDialog,
baseTable
},
data() {
return {
date: '',
dialogVisible: false,
tableData: [],
tableColumn: [{
label: '摘要',
prop: 'abstractStr'
},
{
label: '会计科目',
prop: 'subjdispname'
},
{
label: '辅助核算',
prop: 'assist'
},
{
label: '币种编码',
prop: 'currencyCode'
},
{
label: '币种名称',
prop: 'currencyName'
},
{
label: '借方原币',
prop: 'jybSum'
},
{
label: '借方本币',
prop: 'jbbSum'
},
{
label: '贷方原币',
prop: 'dybSum'
},
{
label: '贷方本币',
prop: 'dbbSum'
}
]
}
},
methods: {
async openDialog() {
this.dialogVisible = true
this.date = ''
},
handleConfirmClick() {
this.$emit('pickDateHandle', this.date)
this.dialogVisible = false
}
}
}
</script>
<style>
</style>

View File

@ -1,31 +1,22 @@
<script src="../../api/apis/operationalModule.js"></script>
<template>
<div class="recordContrast">
<!-- <div class="left">-->
<!-- <div class="leftTitle" style="display: flex;align-items: center;justify-content: space-between">-->
<!-- <div>单据列表</div>-->
<!-- </div>-->
<!-- <div class="showList">-->
<!-- <base-tree ref="baseTree" :isCenter="false" :isSaveBtn="false" :Allshow="false" :showCheckbox="false"-->
<!-- :menuData="billTypeList" @handleNodeClick="billTypeClickHandle" :treeProps="treeProps"-->
<!-- ></base-tree>-->
<!-- </div>-->
<!-- </div>-->
<div class="left">
<div class="leftTitle" style="display: flex;align-items: center;justify-content: space-between">
<div>单据列表</div>
</div>
<div class="showList">
<base-tree ref="baseTree" :isCenter="false" :isSaveBtn="false" :Allshow="false" :showCheckbox="false"
:menuData="billTypeList" @handleNodeClick="billTypeClickHandle" :treeProps="treeProps"
></base-tree>
</div>
</div>
<div class="right" v-loading="tableLoading">
<div class="topBox" style="margin-bottom: 10px">
<div class="searchBox">
<div style="margin-left: 5px;display: flex;align-items: center;">
<div style="width: 100px">单据列表</div>
<el-cascader
v-model="searchObjTable.billTypeClickID"
:options="billTypeList"
:props="treeProps"
@change="billTypeListChangeHandle"
></el-cascader>
</div>
<div style="margin-left: 5px;display: flex;align-items: center;">
<div style="width: 100px">单据号</div>
<el-input v-model="searchObjTable.bill_code" clearable></el-input>
<el-input v-model="searchObjTable.billCode" clearable></el-input>
</div>
<div style="margin-left: 5px;display: flex;align-items: center">
<div>单据日期起</div>
@ -54,10 +45,7 @@
</el-select>
</div>
<div>
<el-button type="primary" size="small" @click="resetTable">查询</el-button>
</div>
<div>
<el-button type="primary" size="small" @click="coreDataOpenDialog">生成凭证</el-button>
<el-button type="primary" size="small" @click="getTableData">查询</el-button>
</div>
</div>
<div style="display: flex;align-items: center;justify-content: flex-end;">
@ -67,49 +55,45 @@
<div>分录信息</div>
</div>
<div class="table">
<base-table ref="customtable" :showIndex="false" :slotrow="true" :showSelect="true"
<base-table ref="customtable" :showIndex="false" :slotrow="true"
tableHeight="calc(50vh - 100px)" :tableData="tableData" :tableColumn="tableColumn"
@radioChange="radioChange" id="printMe" @onSelectionChange="onSelectionChange"
@radioChange="radioChange" id="printMe"
>
<template #billStatus="{row}">
<div>{{ row.billStatus === 'Y' ? '已生成' : '未生成' }}</div>
<div>{{ row.row.billStatus === 'Y' ? '已生成' : '未生成' }}</div>
</template>
<template #operation="{row}">
<div @click="generateHandle(row)" style="cursor: pointer;color: #4876ed">
{{ row.billStatus === 'Y' ? '查看' : '生成' }}
<div @click="generateHandle(row.row)" style="cursor: pointer">
{{row.row.billStatus === 'Y' ? '查看' : '生成'}}
</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 - 150px)" :tableData="assistTableData"
tableHeight="calc(50vh - 100px)" :tableData="assistTableData"
:tableColumn="assistTableColumn"
id="printMe"
>
<template #operate="{row}">
<div @click="expandOperate(row)" style="cursor: pointer;color: #4876ed">
查看凭证明细
</div>
</template>
<template #operate="{row}">
<div @click="expandOperate(row)" style="cursor: pointer">
查看凭证明细
</div>
</template>
</base-table>
</div>
</template>
</div>
<customFormDialog ref="customFormDialog"></customFormDialog>
<assistTableDialog ref="assistTableDialog"></assistTableDialog>
<datePickDialog ref="datePickDialog" @pickDateHandle="coreData"></datePickDialog>
<customFormDialog ref="customFormDialog"></customFormDialog>
<assistTableDialog ref="assistTableDialog"></assistTableDialog>
</div>
</template>
<script>
import datePickDialog from '@/views/businessVoucher/compoments/datePickDialog.vue'
import baseTree from '@/components/base/BaseMenuTree/index.vue'
import basePage from '@/components/base/basePage/index.vue'
import baseChoice from '@/components/base/baseChoice/index.vue'
@ -145,32 +129,14 @@ import {
tempupdateAPI, typeDeleteAPI, typeSaveAPI, typeUpdateAPI
} from '@/api/apis/ItemEntryTemplate'
import { subjectClassificationqueryAllAPI } from '@/api/apis/classifyDefinition'
import {
logqueryBillAPI,
coreGenerateAPI,
queryDetailsByBillCodeAPI,
queryBillFiledsAPI, queryBillPageddsAPI, queryBillPagedAPI, queryDetailsByBillCodeAndMdmIdAPI
} from '@/api/apis/businessVoucher'
import { logqueryBillAPI,coreGenerateAPI,queryDetailsByBillCodeAPI } from '@/api/apis/businessVoucher'
import customFormDialog from './compoments/customFormDialog'
import assistTableDialog from './compoments/assistTableDialog'
export default {
name: 'recordContrast',
components: {
baseDialog,
baseChoice,
basePage,
baseTable,
baseRightDialog,
baseForm,
baseTree,
customFormDialog,
assistTableDialog,
datePickDialog
},
components: { baseDialog, baseChoice, basePage, baseTable, baseRightDialog, baseForm, baseTree,customFormDialog,assistTableDialog },
data() {
return {
checkBoxList: [],
searchObjTable: {},
addTableColumn2: [],
addTableData2: [],
@ -224,7 +190,7 @@ export default {
clickRowKey: '',
activeTabs: '元数据属性',
tabItem: ['元数据属性', '固定值'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)','if(*?:)'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)'],
//text
textarea: '',
textareaEn: '',
@ -239,54 +205,38 @@ export default {
{
label: '单据日期',
prop: 'billDate',
width: 120
width: 120
},
{
label: '凭证类别',
prop: 'voucherTypeName',
width: 120
width: 120
},
{
label: '凭证号',
prop: 'voucherNo',
width: 100
},
{
label: '会计科目',
prop: 'subjdispname',
width: 100
},
{
label: '辅助核算',
prop: 'assist',
width: 100
},
{
label: '摘要',
prop: 'abstractStr',
width: 100
width: 160
},
{
label: '借方本币金额',
prop: 'jbbSum',
width: 100
label: '借方',
prop: 'jYbSum',
width: 120
},
{
label: '借方原币金额',
prop: 'jybSum',
width: 100
label: '贷方',
prop: 'dYbSum',
width: 120
},
{
label: '贷方本币金额',
prop: 'dbbSum',
width: 100
label: '操作',
prop: 'operate',
width: 160
},
{
label: '贷方原币金额',
prop: 'dybSum',
width: 100
},
],
billTypeClickCode: '',
masterTableData: [],
@ -542,14 +492,17 @@ export default {
pageModel: {
page: 1, //
limit: 20, //
total: 0
prop7: '',
propValue7: '',
prop8: '',
propValue8: ''
},
selected: [],
treeSelect: [],
tableColumn: [
{
label: '单据号',
prop: 'bill_code'
prop: 'billCode'
},
{
label: '单据日期',
@ -560,17 +513,17 @@ export default {
label: '生成状态',
prop: 'billStatus',
width: 120
},
{
label: '推送信息',
prop: 'pushInfo',
width: 250
},
{
label: '操作',
prop: 'operation',
width: '100'
}
// {
// label: '',
// prop: 'pushInfo',
// width: 250
// },
// {
// label: '',
// prop: 'operation',
// width: '100'
// }
],
tableData: [],
tableLoading: false,
@ -598,8 +551,7 @@ export default {
billTreeActiveFather: {},
treeProps: {
children: 'mdmModuleEntity',
label: 'name',
value: 'id'
label: 'name'
},
billTreeProps: {
children: 'sublistMdmModuleDbFileds',
@ -609,60 +561,66 @@ export default {
}
},
methods: {
coreDataOpenDialog() {
if (this.checkBoxList.length === 0) {
this.$vmNews('请选择单据')
return
}
let flag = this.checkBoxList.some((item, index) => {
if (item.billStatus == 'Y') {
this.$vmNews('已生成的单据不能生成')
return true
}
})
if (flag) {
return
}
this.$refs.datePickDialog.openDialog()
},
billTypeListChangeHandle() {
if (this.searchObjTable.billTypeClickID) {
console.log(this.searchObjTable.billTypeClickID, '?')
this.billTypeClickID = this.searchObjTable.billTypeClickID[this.searchObjTable.billTypeClickID.length - 1]
}
},
onSelectionChange(val) {
this.checkBoxList = val
},
//
async generateHandle(row) {
if (row.billStatus == 'Y') {
this.$refs.customFormDialog.openDialog(row)
if(row.billStatus == 'Y'){
this.$refs.customFormDialog.openDialog(row)
}else{
this.coreData(row)
}
},
async expandOperate(row){
this.$refs.assistTableDialog.openDialog(row)
// let res= await queryDetailsByBillCodeAPI({id:row.id})
// console.log(res)
},
async coreData(row){
let params = {
mdmId: this.billTypeClickID,
billCode:row.billCode
}
let res = await coreGenerateAPI(params)
if(res.status == '200'){
this.$vmNews('生成成功', 'success')
this.resetTable()
}
},
async ixedValueFormelDialogClick(row) {
if (row.label === '参照') {
this.fixedValuelDialogClick(false)
} else {
this.coreData(row)
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()
}
},
async expandOperate(row) {
this.$refs.assistTableDialog.openDialog(row)
// let res= await queryDetailsByBillCodeAPI({id:row.id})
// console.log(res)
},
async coreData(date) {
let arr = []
this.checkBoxList.forEach(item => {
arr.push(item.bill_code)
})
let params = {
mdmId: this.billTypeClickID,
bill_code: arr.join(','),
targetDate: date
}
this.openLoading()
let res = await coreGenerateAPI(params)
if (res.status == '200') {
this.$vmNews('生成成功', 'success')
this.resetTable()
}
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]) {
@ -678,6 +636,21 @@ 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
@ -1387,43 +1360,23 @@ export default {
},
pageChange(model) {
console.log(model, 'model')
// this.pageModel.page = model.page
// this.pageModel.limit = model.limit
this.pageModel.page = model.page
this.pageModel.limit = model.limit
this.getTableData()
},
async getTableData() {
this.assistTableData = []
if (!this.billTypeClickID) return
const res2 = await queryBillFiledsAPI({
const res = await logqueryBillAPI({
...this.searchObjTable,
mdmId: this.billTypeClickID
})
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.tableData = res.attribute
this.$nextTick(() => {
this.$refs.customtable.clearRadioIndex()
this.$refs.customtable.clearSelect()
// this.$refs.customtable.clearSelection()
this.selected = []
this.checkBoxList = []
})
},
resetTable() {
this.tableData = []
@ -1432,20 +1385,10 @@ export default {
this.getTableData()
},
//
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, '?')
radioChange(val) {
this.selected = []
this.selected.push(val)
console.log(val.logList, '?val.assistEntityList')
let row = {
props: {
children: 'sublistMdmModuleDbFileds',
@ -1666,7 +1609,7 @@ export default {
'nameEn': 'delOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,
@ -1767,7 +1710,7 @@ export default {
'nameEn': 'delOperateAssist',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,
@ -1830,10 +1773,6 @@ export default {
<style scoped lang="scss">
::v-deep .el-table__body-wrapper {
height: 100% !important;
}
.tabs {
width: 200px;
display: flex;
@ -1950,8 +1889,7 @@ export default {
margin-right: 5px;
display: flex;
align-items: center;
> div {
>div{
width: 140px;
text-align: right;
}

View File

@ -806,7 +806,7 @@ export default {
options: []
}
arr.push(obj)
}
}
@ -987,7 +987,7 @@ export default {
'nameEn': 'delOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,

View File

@ -387,7 +387,6 @@ export default {
})
})
this.tableColumn = res.attribute.listList
console.log(this.tableColumn,'this.tableColumn')
this.initTableData(this.mainTableName)
this.mainLoading = false
},

View File

@ -3,80 +3,63 @@
<div class="loginBg">
<main>
<div class="left">
<img src="../assets/images/login1.png" alt="" />
<img src="../assets/images/login-page.png" alt="" />
</div>
<div class="right">
<div
style="
width: 60%;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
"
>
<div class="imgBox">
<img src="../assets/images/left1.png" alt="" />
<img
src="../assets/images/right1.png"
style="border-left: 1px solid #eee; width: 200px;"
alt=""
/>
</div>
<div class="login">
<el-form
:hide-required-asterisk="true"
label-position="top"
ref="loginFormNew"
:model="loginForm"
:rules="loginRulesNew"
class="login-form"
>
<el-form-item prop="login_name" label="手机号/用户名">
<el-input
v-model="loginForm.login_name"
type="text"
auto-complete="off"
placeholder="请输入账号"
>
</el-input>
</el-form-item>
<el-form-item prop="password" label="密码">
<el-input
v-model="loginForm.password"
@keyup.enter.native="handleLogin"
show-password
type="password"
auto-complete="off"
placeholder="请输入密码"
>
</el-input>
</el-form-item>
<el-checkbox
v-model="loginForm.rememberMe"
style="margin: 0px 0px 25px 0px"
<div class="title">您好!欢迎来到 用安数智中台</div>
<div class="login">
<el-form
:hide-required-asterisk="true"
label-position="top"
ref="loginFormNew"
:model="loginForm"
:rules="loginRulesNew"
class="login-form"
>
<el-form-item prop="login_name" label="手机号/用户名">
<el-input
v-model="loginForm.login_name"
type="text"
auto-complete="off"
placeholder="请输入账号"
>
</el-input>
</el-form-item>
<el-form-item prop="password" label="密码">
<el-input
v-model="loginForm.password"
@keyup.enter.native="handleLogin"
show-password
type="password"
auto-complete="off"
placeholder="请输入密码"
>
</el-input>
</el-form-item>
<el-checkbox
v-model="loginForm.rememberMe"
style="margin: 0px 0px 25px 0px"
>记住密码</el-checkbox
>
<el-checkbox
v-model="loginForm.automaticLogin"
style="margin: 0px 0px 25px 20px"
>
<el-checkbox
v-model="loginForm.automaticLogin"
style="margin: 0px 0px 25px 20px"
>自动登录</el-checkbox
>
<!-- <a class="forgetPwd">忘记密码</a> -->
<el-form-item style="width: 100%">
<el-button
:loading="loading"
size="medium"
type="primary"
style="width: 100%"
@click.native.prevent="handleLogin"
>
<!-- <a class="forgetPwd">忘记密码</a> -->
<el-form-item style="width: 100%">
<el-button
:loading="loading"
size="medium"
type="primary"
style="width: 100%"
@click.native.prevent="handleLogin"
>
<span v-if="!loading"> </span>
<span v-else> 中...</span>
</el-button>
</el-form-item>
</el-form>
</div>
<span v-if="!loading"> </span>
<span v-else> 中...</span>
</el-button>
</el-form-item>
</el-form>
</div>
</div>
</main>
@ -276,6 +259,7 @@ export default {
this.$store
.dispatch("Login", this.loginForm)
.then(() => {
console.log(123,'123')
this.loading = false;
this.$router
.push({
@ -334,7 +318,7 @@ export default {
<style lang="scss" scoped>
.loginBg {
background: linear-gradient(to bottom right, #519af6, #84d3e5);
background: url("../assets/images/login.png") no-repeat;
width: 100vw;
height: 100vh;
main {
@ -351,30 +335,28 @@ export default {
border-radius: 3vw;
margin: auto;
> .left {
width: 55%;
background-size: cover;
background-position: center center;
width: 38vw;
height: 56vh;
min-height: 450px;
margin: 7vh 6.8vw 0 4.2vw;
> img {
width: 100%;
height: 100%;
}
}
> .right {
width: 45%;
display: flex;
align-items: center;
justify-content: center;
.imgBox {
display: flex;
margin-bottom: 10px;
img {
width: 160px;
height: 100px;
}
margin-top: 158px;
> .title {
width: 228px;
height: 9vh;
font-size: 36px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #1478f6;
line-height: 50px;
}
> .login {
// width: 60%;
margin-top: 6vh;
}
}
}

View File

@ -1,172 +0,0 @@
/**
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

@ -551,7 +551,7 @@ export default {
'nameEn': 'delOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,

View File

@ -421,7 +421,7 @@ export default {
clickRowKey: '',
activeTabs: '元数据属性',
tabItem: ['元数据属性', '固定值'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)','if(*?:)'],
arithmeticArr: ['+', '-', '*', '/', '->', '==', '(', ')', '<', '>', '<=', '>=', 'substr(,,)'],
fixedValueForm: [
{
elCol: [
@ -579,7 +579,7 @@ export default {
}
let obj = this.$refs.baseChoice2.optionData
this.$set(this.$refs.fixedValueFormRefsName.ruleForm, 'recordData', obj[this.fixedValueClickRow.namefieldname])
this.textarea += `@@$${this.fixedValueClickRow.dbName}:id=${obj.id}`
this.textarea += `@@$${this.fixedValueClickRow.dbName}:${this.fixedValueClickRow.tablepkname}=${obj[this.fixedValueClickRow.tablepkname]}`
// 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'])
@ -985,7 +985,7 @@ export default {
'nameEn': 'delOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,

View File

@ -595,7 +595,7 @@ export default {
'nameEn': 'delOperate',
'menuId': '936df6d1cd7e4f9ba4c972e0f84b5ab4',
'iconName': 'el-icon-delete',
'style': 'danger',
'styles': 'danger',
'btnFunction': 'delOperate',
'remark': null,
'userId': null,

View File

@ -43,7 +43,6 @@ module.exports = {
// target: `http://127.0.0.1:9081/`,
target: `http://192.168.2.189:10086`,//一凡
// target: `http://192.168.2.78:8080`,
// target: `http://b8bc6e8e.natappfree.cc`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''