Commit ae8f1f8b authored by 吴春's avatar 吴春
parents 16098968 e9281665
This diff is collapsed.
<template>
<div style="margin-bottom: 20px; ">
<div class="echartsBox">
<div class="titleBox text-center row" style="margin-bottom: 5px;">
<h3>公司统计</h3>
<div style="margin-left: 20px;">
<el-tag size="small" effect="dark"
style="margin-right: 5px;cursor: pointer;"
:type="Current==item.ID?'danger':'info'" v-for="(item,index) in types" :key="item.ID"
@click="Current=item.ID,BranchChart()">{{item.Name}}</el-tag>
</div>
</div>
<div style="background: #fff;">
<div id="BranchAnalysisChart"
:style="{width: '', height: '520px'}"></div>
</div>
</div>
</div>
</template>
<script>
export default {
props:['StatisticalData'],
data() {
return {
MonthList: [],//月份列表
BranchAnalysisData: [],
colorList:['#089bab','#FFA171','#72b8ff','#ff9cc6','#7b78ff','#28cc90','#ee8fff','#5cf2ff','#ff9a00','#4fc4f7','#738eff','#b0edff',
'#E43939','#F79A2C','#FFF60B','#3DD948','#39CAE4','#2C31F1','#7A39E4','#E65FC1','#D0B478','#000000','#BABABA',],
types:[
{Name: '收入',ID:1},
{Name: '收入占比 %',ID:2},
{Name: '毛利',ID:3},
{Name: '毛利率 %',ID:4},
{Name: '实际利润',ID:5},
{Name: '实际利率 %',ID:6},
],
Current: 1,
}
},
mounted() {
},
methods: {
BranchChart(){
let that = this
let titles = this.BranchAnalysisData.map(x=>{return x.Name})
let datas = []
let chartDom = document.getElementById('BranchAnalysisChart');
let myChart = this.$echarts.init(chartDom);
let option;
option = {
color:that.colorList,
tooltip: {
backgroundColor:'transparent',
trigger: 'axis',
axisPointer: {
type: 'none',
label: {
// backgroundColor: '#6a7985'
}
},
position: function (point, params, dom, rect, size) {
return [point[0]-50, point[1]-dom.offsetHeight];
},
formatter: function(params) {
var res = `<div style="background:${params.color};position:relative;padding:6px 10px;border-radius:8px;">
${params.seriesName}:${params.data}
<div style="position: absolute;bottom: -8px;left: 35%;width:0;
height:0;
border-left:8px solid transparent;
border-right:8px solid transparent;
border-top:8px solid ${params.color};">
</div>
<div>`
return res;
}
},
legend: {
x:'left',
y:'bottom',
type:'scroll',
icon: "circle",
padding: [5, 30, 20, 30] ,
type:'scroll',
data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
},
grid: {
left: 15, // 默认10%,给24就挺合适的。
top: 30, // 默认60
right: 15, // 默认10%
bottom: 70, // 默认60
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis : [
{
type : 'category',
boundaryGap: false,
data :this.MonthList,
axisLine: {
lineStyle: {
// 设置x轴颜色
color: "transparent"
}
},
axisLabel: {
textStyle: {
color: "#333333"
}
},
}
],
yAxis : [
{
type : 'value',
axisLine: {
lineStyle: {
// 设置x轴颜色
color: "transparent",
width: 1,
}
},
axisLabel: {
textStyle: {
color: "#969696"
}
},
splitLine:{
show:true,
lineStyle:{
// type:'dashed'
color:'#EEEEEE',
}
}
}
],
series: [
{
name: 'Email',
type: 'line',
stack: 'Total',
data: [120, 132, 101, 134, 90, 230, 210]
},
{
name: 'Union Ads',
type: 'line',
stack: 'Total',
data: [220, 182, 191, 234, 290, 330, 310]
},
{
name: 'Video Ads',
type: 'line',
stack: 'Total',
data: [150, 232, 201, 154, 190, 330, 410]
},
{
name: 'Direct',
type: 'line',
stack: 'Total',
data: [320, 332, 301, 334, 390, 330, 320]
},
{
name: 'Search Engine',
type: 'line',
stack: 'Total',
data: [820, 932, 901, 934, 1290, 1330, 1320]
}
]
};
myChart.setOption(option,true)
}
},
watch: {
StatisticalData:{
handler(n,o){
this.MonthList = n.MonthList//月份列表
this.BranchAnalysisData = n.BranchAnalysisData
this.BranchChart()
},
deep: true,
immediate: false,
}
},
}
</script>
<style scoped>
/deep/.LineAnalysisDataBJ tr td:nth-child(1n){
background: #F5F7FA;
}
/deep/.LineAnalysisDataBJ tr td:nth-child(2n){
background: #fff;
}
/deep/.LineAnalysisDataBJ tr th{
background: #F5F7FA;
}
/deep/.el-table.LineAnalysisDataBJ tr:first-child th:first-child{
background: #F5F7FA;
}
/deep/.el-table.LineAnalysisDataBJ tr:nth-child(2) th:nth-child(1n){
/* background: #fff; */
}
/deep/.el-table.LineAnalysisDataBJ tr:nth-child(2) th:nth-child(2n){
background: #F5F7FA;
}
/deep/.el-table.LineAnalysisDataBJ tr:first-child th{
background: #fff;
}
/deep/.el-table.LineAnalysisDataBJ2 tr:first-child th:nth-child(1n){
background: #F5F7FA;
}
/deep/.el-table.LineAnalysisDataBJ2 tr:first-child th:nth-child(2n){
background: #fff;
}
/deep/.el-table.LineAnalysisDataBJ tr th{
height: 20px;
line-height: 20px;
padding: 5px 0;
}
/deep/.el-table.LineAnalysisDataBJ2 tr th{
height: 20px;
line-height: 20px;
padding: 5px 0;
}
/deep/.el-table.LineAnalysisDataBJ tr td{
height: 20px;
line-height: 20px;
padding: 5px 0;
}
/deep/.el-table.LineAnalysisDataBJ2 tr td{
height: 20px;
line-height: 20px;
padding: 5px 0;
}
.titleBox{
padding: 0 5px 5px 5px;
}
.row{
display: flex;
}
.echartsBox{
width: 100%;
}
</style>
<template>
<div style="margin-bottom: 20px;">
<h3 class="text-center" style="margin-bottom: 5px;">出境日本线(已出团)</h3>
<h3 class="text-center" style="margin-top: 15px;margin-bottom: 5px;">日本小包团(已出团)</h3>
<h3 class="text-center" style="margin-top: 15px;margin-bottom: 5px;">日本常规团(已出团)</h3>
<h3 class="text-center" style="margin-top: 15px;margin-bottom: 5px;">常规团毛利率分析(已出团)</h3>
<h3 class="text-center" style="margin-top: 15px;margin-bottom: 5px;">常规团实际利率分析(已出团)</h3>
<h3 class="text-center" style="margin-top: 15px;margin-bottom: 5px;">常规团房费分析(已出团)</h3>
</div>
</template>
<script>
export default {
props:['StatisticalData'],
data() {
return {
MonthList: [],//月份列表
JapanAllData: [],
JapanXBData: [],
JapanSPData: [],
MaoLiAnalysisData: [],
SJLLAnalysisData: [],
RoomAnalysisData: [],
}
},
mounted() {
},
methods: {
},
watch: {
StatisticalData:{
handler(n,o){
this.MonthList = n.MonthList//月份列表
this.JapanAllData = n.JapanAllData
this.JapanXBData = n.JapanXBData
this.JapanSPData = n.JapanSPData
this.MaoLiAnalysisData = n.MaoLiAnalysisData
this.SJLLAnalysisData = n.SJLLAnalysisData
this.RoomAnalysisData = n.RoomAnalysisData
},
deep: true,
immediate: false,
}
},
}
</script>
<style scoped>
/deep/.LineAnalysisDataBJ3 tr th{
background: #F5F7FA;
}
/deep/.el-table.LineAnalysisDataBJ tr:first-child th{
background: #fff !important;
}
/deep/.el-table.LineAnalysisDataBJ tr:first-child th:first-child{
background: #F5F7FA !important;
}
/deep/.el-table.LineAnalysisDataBJ tr:nth-child(2) th:first-child{
background: #F5F7FA;
}
/deep/.el-table.LineAnalysisDataBJ tr td:first-child{
background: #F5F7FA !important;
}
/deep/.el-table.LineAnalysisDataBJ tr th{
height: 20px;
line-height: 20px;
padding: 5px 0;
}
/deep/.el-table.LineAnalysisDataBJ2 tr th{
height: 20px;
line-height: 20px;
padding: 5px 0;
}
/deep/.el-table.LineAnalysisDataBJ3 tr th{
height: 20px;
line-height: 20px;
padding: 5px 0;
}
/deep/.el-table.LineAnalysisDataBJ tr td{
height: 20px;
line-height: 20px;
padding: 5px 0;
}
/deep/.el-table.LineAnalysisDataBJ2 tr td{
height: 20px;
line-height: 20px;
padding: 5px 0;
}
/deep/.el-table.LineAnalysisDataBJ3 tr td{
height: 20px;
line-height: 20px;
padding: 5px 0;
}
</style>
......@@ -130,6 +130,7 @@ export default {
components: {Lines,Corporations,Packets},
data() {
return {
coinGetShow: false,
loading: false,
activeName: 1,
msg:{
......@@ -212,7 +213,7 @@ export default {
this.coinGetShow = true
this.msg.StandardCurrencyId = -1
}
this.getPageList();
this.getStatement();
}
})
},
......
This diff is collapsed.
......@@ -146,9 +146,9 @@
<p class="Ldata">{{item.HDate}}</p>
</td>
<td>
<el-tooltip class="item" effect="dark" v-if="item.MealDesc" :content="item.MealDesc" placement="top-start"
<el-tooltip class="item" effect="dark" v-if="item.Remark" :content="item.Remark" placement="top-start"
popper-class="max-w250">
<span class="descripTion">{{item.MealDesc}}</span>
<span class="descripTion">{{item.Remark}}</span>
</el-tooltip>
</td>
<td>
......
......@@ -431,7 +431,8 @@
</span>
</div>
<div class="resDiv">
<el-form-item :label="$t('hotel.hotel_CostPrice')" prop="CostPrice">
<!--prop="CostPrice"-->
<el-form-item :label="$t('hotel.hotel_CostPrice')" >
<el-input type="text" class="w210" v-model="addMsg.CostPrice"
@keyup.native="checkPrice(addMsg,'CostPrice')"></el-input>
</el-form-item>
......
......@@ -696,6 +696,13 @@
<template slot="append">/人</template>
</el-input>
</el-form-item>
<el-form-item label="适用类型">
<el-select placeholder="适用类型" v-model="addMsg.UseTypeList" multiple class='multiple_input w300'>
<el-option v-for="childItem in DiningUseTypeList" :key="childItem.ID" :label="childItem.Name"
:value="childItem.ID">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_website')">
<div>
<span class="resource-net">
......@@ -1033,7 +1040,10 @@
//支付方式
PayStyle: 0,
UnitPrice: 0, //餐标/人
UseType: 0, //适用类型字符串
UseTypeList: [], //适用类型
},
DiningUseTypeList: [],
rules: {
//表单必填验证
Name: [{
......@@ -1456,6 +1466,18 @@
err => {}
);
},
//获取餐厅适用类型列表
GetDiningUseTypeList() {
this.apipost(
"dining_get_GetDiningUseType", {},
res => {
if (res.data.resultCode == 1) {
this.DiningUseTypeList = res.data.data;
}
},
err => {}
);
},
//图片左移右移
ExchangeImg(index, IsMove) {
var imgItem = this.DiningImageArray[index];
......@@ -1482,6 +1504,7 @@
userInfo.RB_Branch_id == 49) {
this.IsHaveAuth = 1;
}
this.GetDiningUseTypeList();
this.GetPayList();
this.GetDiningTypeList();
this.GetDiningPriceTypeList();
......
......@@ -79,6 +79,18 @@
margin-top: 5px;
}
.restaurantList .F1 {
color: #e95252;
}
.restaurantList .F2 {
color: #47bf8c;
}
.restaurantList .F3 {
color: #00c6ff;
}
.restaurantList .starSu {
position: absolute;
bottom: 8px;
......@@ -309,6 +321,7 @@
<li>
<button class="hollowFixedBtn" type="button"
@click="resetPageIndex(),selectResource()">{{$t('pub.searchBtn')}}</button>
<!--v-if="IsEditDmcSource==1"-->
<button class="normalBtn" type="button"
@click="$router.push('restaurantInfoManage')">{{$t('pub.addBtn')}}</button>
</li>
......@@ -329,7 +342,8 @@
</div>
<div class="starSu">
<div class="star">
<span class="foodList" v-for="(items,index) in item.FoodTagArr" :key="index">{{items}}</span>
<span class="foodList">{{item.DiningTypeName}}</span>
<!-- <span class="foodList" v-for="(items,index) in item.FoodTagArr" :key="index">{{items}}</span> -->
</div>
<span v-if="item.Star==8" class="sushe">{{$t('restaurant.res_homeFacility')}}</span>
<span v-if="item.Star==9" class="sushe">{{$t('restaurant.res_SpringHotel')}}</span>
......@@ -339,13 +353,23 @@
<div class="hotelTitle fz12">{{item.Name}}</div>
</el-tooltip>
<el-tooltip class="item" effect="dark" :content="item.RealName" placement="top-start" popper-class="max-w250">
<div class="hotelTitle fz12">{{$t('ground.zhenshimingcheng')}}: {{item.RealName}}</div>
<div class="hotelTitle fz12">{{$t('ground.zhenshimingcheng')}}:<font class="F1">{{item.RealName}}</font>
</div>
</el-tooltip>
<div class="brandList clearfix">
<el-tooltip class="item" effect="dark" :content="item.UseTypeListStr" placement="top-start"
popper-class="max-w250">
<div class="hotelTitle">适用类型:<font class="F2" v-for="(subItem,subIndex) in item.UseTypeList"
:key="`ut_`+index+subIndex">
{{subItem}}
</font>
</div>
</el-tooltip>
<div class="hotelTitle fz12">最低餐标: <font class="F3">{{item.MinDinnerPrice>0?item.MinDinnerPrice:"/"}}</font>
</div>
<!-- <div class="brandList clearfix">
<div class="brand">
<span class="SupportCount">{{item.SupportCount}}</span>
{{$t('hotel.hotel_people')}}
<div>{{$t('restaurant.res_bookCapacity')}}</div>
<span class="SupportCount">{{item.UseTypeList}}</span>
<div></div>
</div>
<div class="line"></div>
<div class="dayNum">
......@@ -353,14 +377,14 @@
{{$t('hotel.hotel_people')}}
<div>最低餐标</div>
</div>
</div>
<div style="padding:0 0 15px 15px;margin-top: -5px;">
</div> -->
<div style="padding:0 0 15px 15px;margin-top: 5px;">
<i class="iconfont icon-renyuanguanli"></i>
<span v-if="item.UpdateName && item.UpdateName!=''">{{item.UpdateName}}</span>
{{item.UpdateTimeStr}}
</div>
<div class="btnList">
<!--v-if="IsEditDmcSource==1"-->
<button @click="goSubInfo('restaurantInfoManage',item.ID)" class="hotelBtn">{{$t('pub.updateMsg')}}</button>
<button v-if="IsHotelPriceStock==1" @click="goUrl('RestaurantPackage',item.ID)"
class="hotelBtn">{{$t('restaurant.res_package')}}</button>
......@@ -376,16 +400,13 @@
export default {
data() {
return {
IsHotelPriceStock: 0, //1-有获取餐厅与报价添加修改权限
total: 0,
currentPage: 1,
countryList: "",
provinceList: "",
cityList: "",
district: "",
Ids: [],
tableData: "",
deleteID: "",
EmployeeList: [], //员工列表
DiningTypeList: [],
DiningPriceTypeList: [],
......@@ -399,7 +420,6 @@
label: this.$t('system.table_delete')
}
],
isDeleteNote: true,
loading: true,
defaultImg: 'this.src="' + require("../../assets/img/bg_z1@2x.png") + '"',
msg: {
......@@ -418,7 +438,9 @@
currentPage: 1,
ID: 0,
UpdateBy: 0, //操作人
}
},
IsHotelPriceStock: 0, //1-有获取餐厅与报价添加修改权限
IsEditDmcSource: 0, //是否有新增修改权限
};
},
methods: {
......@@ -571,15 +593,21 @@
},
//获取酒店修改与报价添加修改权限
GetHotelPirceStockAuth() {
this.apipost(
"hotel_post_GetHotelPriceStockAuthService", {},
res => {
let isStock = "IsHotelPriceStock";
let editDmcSource = "F_EditDmcSource";
this.apipost('userauth_get_CheckUserAuthNewService', '', res => {
if (res.data.resultCode == 1) {
this.IsHotelPriceStock = res.data.data;
var tempData = res.data.data;
if (tempData && tempData.length > 0) {
if (tempData.includes(isStock)) {
this.IsHotelPriceStock = 1;
}
},
err => {}
);
if (tempData.includes(editDmcSource)) {
this.IsEditDmcSource = 1;
}
}
}
});
},
//根据当前员工所在部门获取该部门及子部门员工信息
getEmployeeList() {
......
......@@ -2,6 +2,7 @@
.versionList {
padding: 20px;
}
.versionList li {
float: left;
margin: 0 30px 30px 0;
......@@ -13,7 +14,8 @@
border-radius: 4px;
position: relative;
}
.versionListLayer{
.versionListLayer {
position: absolute;
z-index: 50;
width: 260px;
......@@ -21,8 +23,9 @@
left: 0;
top: 0;
border-radius: 4px;
background: rgba(0,0,0,.6);
background: rgba(0, 0, 0, .6);
}
.versionList li p.title {
text-align: center;
font-size: 14px;
......@@ -73,9 +76,11 @@
.addVersion {
width: 800px;
}
.insideDialog{
.insideDialog {
width: 300px;
}
.remarkVersion {
width: 350px;
height: 60px;
......@@ -84,29 +89,36 @@
line-height: 18px;
padding: 10px 22px;
}
.ql-editor{height: 200px!important;}
.ql-editor {
height: 200px !important;
}
</style>
<template>
<div class="flexOne">
<div class="versionList">
<ul>
<li v-for="(item,index) in dataList">
<template v-for="(item,index) in dataList">
<li :key="`vl_`+index">
<div v-if='item.Status==1' class="versionListLayer">
<div @click="outerVisible = true;dialogTitle='修改系统版本',updateDate(item.Id)" style="width: 90px; height: 30px;margin: 260px 0 0 85px; cursor: pointer; text-align: center; line-height: 30px;font-size: 14px; border-radius: 15px; border: 1px solid #fff;">
<div @click="outerVisible = true;dialogTitle='修改系统版本',updateDate(item.Id)"
style="width: 90px; height: 30px;margin: 260px 0 0 85px; cursor: pointer; text-align: center; line-height: 30px;font-size: 14px; border-radius: 15px; border: 1px solid #fff;">
<i class="iconfont icon-img_bianji_small" style="font-size: 14px;"></i>
编辑
</div>
</div>
<p class="title">{{item.VersionsName}}({{item.EmployeeNum=='0'?'不限':item.EmployeeNum}})</p>
<pre v-html="item.Description"></pre>
<!--<pre >{{item.Description}}
</pre>-->
<p class="btm">
<input class="versionBtn" @click="outerVisible = true;dialogTitle='修改系统版本',updateDate(item.Id)" type="button" value="修改" />
<input class="versionBtn" @click="outerVisible = true;dialogTitle='修改系统版本',updateDate(item.Id)"
type="button" value="修改" />
<input class="versionBtn" @click="goUrl('versionspermissionList',item.Id)" type="button" value="ERP菜单" />
<input class="versionBtn" @click="goUrlApp('appversionsPermissionList',item.Id)" type="button" value="APP菜单" />
<input class="versionBtn" @click="goUrlApp('appversionsPermissionList',item.Id)" type="button"
value="APP菜单" />
</p>
</li>
</template>
<li class="addli" @click="outerVisible = true;dialogTitle='添加系统版本',clearMessage()">
<i class="iconfont icon-plus" style="font-size: 80px;color:#E1E1E1"></i>
</li>
......@@ -118,7 +130,7 @@
<table class="layerTable">
<tr>
<td><span>版本名称:</span></td>
<td><input maxlength="14" class="layerText" v-model="addMsg.VersionsName" type="text"></td>
<td><el-input maxlength="14" class="w150" v-model="addMsg.VersionsName" type="text" /></td>
</tr>
<tr>
<td><span class="fl">版本描述:</span></td>
......@@ -129,7 +141,8 @@
</tr>
<tr>
<td><span>账户数量:</span></td>
<td><input @keyup.native="checkInteger(addMsg,'EmployeeNum')" class="layerText" v-model="addMsg.EmployeeNum" type="text"></td>
<td><el-input @keyup.native="checkInteger(addMsg,'EmployeeNum')" class="w150" v-model="addMsg.EmployeeNum"
type="text" /></td>
</tr>
<tr>
<td><span>是否开启:</span></td>
......@@ -144,7 +157,6 @@
<button class="normalBtn" type="primary" @click="innerVisible=true,addData()">保存</button>
</div>
</el-dialog>
</div>
</template>
......@@ -156,19 +168,19 @@
insideDialogTxt: '保存成功!',
outerVisible: false,
innerVisible: false,
isRight:true,
isRight: true,
dataList: {},
form: {},
msg: {
pageIndex:1,
pageSize:99,
pageIndex: 1,
pageSize: 99,
"Status": -1,
"VersionsName": '',
},
addMsg: {
EmployeeNum:'',
id:'',
Status:'0',
EmployeeNum: '',
id: '',
Status: '0',
VersionsName: '',
Description: ''
}
......@@ -180,45 +192,45 @@
methods: {
getList() {
this.apipost("admin_get_SysVersionsGetPageList", this.msg, res => {
if(res.data.resultCode==1){
if (res.data.resultCode == 1) {
this.dataList = res.data.data.pageData;
}else{
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
addData() {
if(this.addMsg.EmployeeNum==''){
if (this.addMsg.EmployeeNum == '') {
this.$message.warning('请输入账户数量')
return
}
if(this.addMsg.VersionsName==''){
if (this.addMsg.VersionsName == '') {
this.$message.warning('请输入版本名称')
return
}
this.apipost("admin_post_SysVersionsSet", this.addMsg, res => {
if(res.data.resultCode==1)
{
if (res.data.resultCode == 1) {
this.$message.success(res.data.message)
this.outerVisible=false;
this.outerVisible = false;
this.getList()
}else{
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
updateDate(id){
this.addMsg.id=id;
this.apipost('admin_get_SysVersionsGet',{VersionsId:id},res=>{
if(res.data.resultCode==1)
{
this.addMsg.Status=res.data.data.Status.toString()
this.addMsg.VersionsName=res.data.data.VersionsName;
this.addMsg.Description=res.data.data.Description;
this.addMsg.EmployeeNum=res.data.data.EmployeeNum
}else{}
},err=>{})
updateDate(id) {
this.addMsg.id = id;
this.apipost('admin_get_SysVersionsGet', {
VersionsId: id
}, res => {
if (res.data.resultCode == 1) {
this.addMsg.Status = res.data.data.Status.toString()
this.addMsg.VersionsName = res.data.data.VersionsName;
this.addMsg.Description = res.data.data.Description;
this.addMsg.EmployeeNum = res.data.data.EmployeeNum
} else {}
}, err => {})
},
clearMessage() {
......@@ -228,15 +240,30 @@
Description: ''
}
},
goUrl (path,id) {
this.$router.push({ name: path,query:{"id":id,blank:'y',tab:'ERP菜单'} })
goUrl(path, id) {
this.$router.push({
name: path,
query: {
"id": id,
blank: 'y',
tab: 'ERP菜单'
}
})
},
goUrlApp(path,id) {
this.$router.push({ name: path,query:{"id":id,blank:'y',tab:'APP菜单'} })
goUrlApp(path, id) {
this.$router.push({
name: path,
query: {
"id": id,
blank: 'y',
tab: 'APP菜单'
}
})
}
},
}
</script>
......@@ -4545,6 +4545,14 @@ export default {
title: '团队营收数据分析'
},
},
{ //财务 团队营收数据分析图表
path: '/DataAnalysisChart',
name: 'DataAnalysisChart',
component: resolve => require(['@/components/FinancialModule/DataAnalysis/indexChart'], resolve),
meta: {
title: '团队营收数据分析图表'
},
},
{ //金蝶对接 金蝶币种
path: '/KingdeeCurrency',
name: 'KingdeeCurrency',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment