Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
功
功能演示系统
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
示例
功能演示系统
提交
dd77035d
提交
dd77035d
编写于
11月 16, 2022
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Mosher 发布系统代码 [后台服务,演示应用]
上级
83bcbc9e
变更
22
隐藏空白字符变更
内嵌
并排
正在显示
22 个修改的文件
包含
658 行增加
和
558 行删除
+658
-558
icon-error.svg
app_Web/src/assets/img/icon-error.svg
+16
-0
icon-import.svg
app_Web/src/assets/img/icon-import.svg
+16
-0
icon-link.svg
app_Web/src/assets/img/icon-link.svg
+18
-0
icon-success.svg
app_Web/src/assets/img/icon-success.svg
+17
-0
app-data-upload.less
app_Web/src/components/app-data-upload/app-data-upload.less
+148
-24
app-data-upload.vue
app_Web/src/components/app-data-upload/app-data-upload.vue
+289
-441
BO-CN-base.ts
app_Web/src/locale/lang/BO-CN-base.ts
+5
-0
en-US-base.ts
app_Web/src/locale/lang/en-US-base.ts
+5
-0
zh-CN-base.ts
app_Web/src/locale/lang/zh-CN-base.ts
+5
-0
components_BO_CN_base.ts
...Web/src/locale/lanres/components/components_BO_CN_base.ts
+15
-7
components_en_US_base.ts
...Web/src/locale/lanres/components/components_en_US_base.ts
+14
-7
components_zh_CN_base.ts
...Web/src/locale/lanres/components/components_zh_CN_base.ts
+15
-8
ibizbook-ui-service-base.ts
app_Web/src/uiservice/ibizbook/ibizbook-ui-service-base.ts
+2
-2
guide-borrow-form-form-base.vue
...ok/guide-borrow-form-form/guide-borrow-form-form-base.vue
+5
-5
usr4-dataview-base.vue
...src/widgets/ibizbook/usr4-dataview/usr4-dataview-base.vue
+4
-4
usr4-dataview-model.ts
...src/widgets/ibizbook/usr4-dataview/usr4-dataview-model.ts
+0
-5
main-grid-base.vue
app_Web/src/widgets/ibizorder/main-grid/main-grid-base.vue
+21
-7
main-grid-model.ts
app_Web/src/widgets/ibizorder/main-grid/main-grid-model.ts
+15
-0
Usr.json
...SSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK/PSGANTTS/Usr.json
+16
-16
TreeTable.json
.../PSAPPDATAENTITIES/IBIZBOOK/PSTREEGRIDICES/TreeTable.json
+8
-8
IBIZBOOKGanttView.json
...temodel/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKGanttView.json
+16
-16
IBIZBOOKTreeGridExView.json
...el/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKTreeGridExView.json
+8
-8
未找到文件。
app_Web/src/assets/img/icon-error.svg
0 → 100644
浏览文件 @
dd77035d
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"8px"
height=
"8px"
viewBox=
"0 0 8 8"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
错误
</title>
<g
id=
"页面-1"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"列表-导入数据-文件上传完成"
transform=
"translate(-701.000000, -283.000000)"
fill-rule=
"nonzero"
>
<g
id=
"编组-33"
transform=
"translate(411.000000, 200.000000)"
>
<g
id=
"编组-28"
transform=
"translate(290.000000, 80.000000)"
>
<g
id=
"错误"
transform=
"translate(0.000000, 3.000000)"
>
<rect
id=
"矩形"
fill=
"#000000"
opacity=
"0"
x=
"0"
y=
"0"
width=
"8"
height=
"8"
></rect>
<path
d=
"M5.32710539,3.99998149 L6.84507188,2.48212949 C6.94422436,2.38297944 6.99992781,2.24850193 6.99992781,2.10828119 C6.99992781,1.96806046 6.94422436,1.83358295 6.84507188,1.7344329 L6.26554524,1.15501641 C6.05908708,0.948614421 5.72441082,0.948614421 5.51795266,1.15501641 L4.00009363,2.67276095 L2.48201968,1.15480149 C2.38285492,1.05566372 2.24836879,1 2.1081474,1 C1.96792602,1 1.83345589,1.05574268 1.73431964,1.15490895 L1.15490046,1.73421799 C1.05572164,1.83335405 1,1.9678368 1,2.10806628 C1,2.24829576 1.05572164,2.3827785 1.15490046,2.48191457 L2.67286695,3.99987403 L1.15490046,5.51794095 C1.05572164,5.61707701 1,5.75155976 1,5.89178924 C1,6.03201871 1.05572164,6.16650146 1.15490046,6.26563753 L1.73431964,6.84526894 C1.94086374,7.05156469 2.27547557,7.05156469 2.48201968,6.84526894 L3.99998617,5.32720202 L5.5178452,6.84526894 C5.72442616,7.05157702 6.05907174,7.05157702 6.2656527,6.84526894 L6.84517934,6.26563753 C7.05160689,6.05910658 7.05160689,5.72436443 6.84517934,5.51783349 L5.32710539,3.99998149 Z"
id=
"路径"
fill=
"#E22D2D"
></path>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
app_Web/src/assets/img/icon-import.svg
0 → 100644
浏览文件 @
dd77035d
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"41px"
height=
"46px"
viewBox=
"0 0 41 46"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
导入
</title>
<g
id=
"页面-1"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"列表-导入数据"
transform=
"translate(-662.000000, -314.000000)"
fill=
"#57A3FD"
fill-rule=
"nonzero"
>
<g
id=
"编组-20"
transform=
"translate(411.000000, 200.000000)"
>
<g
id=
"导入"
transform=
"translate(251.000000, 114.000000)"
>
<path
d=
"M28.0376544,3.76410323 L29.7766688,6.44368556 L13.239007,15.644894 L11.4999926,12.9647074 L28.0376544,3.76410323 Z M9.11219211,14.7380049 L12.3001824,14.7380049 L12.3001824,22.3302555 L9.11158406,20.5436659 L9.11219211,14.7380049 Z"
id=
"形状"
></path>
<path
d=
"M0.00060804817,8.56257961 L21.8671937,19.2041768 L21.8671937,46 L0.00060804817,35.2816707 L0.00060804817,8.56257961 Z M2.27835205,12.0982991 L2.27835205,33.9010967 L19.5894497,42.3869442 L19.5894497,20.5841466 L2.277744,12.0982991 L2.27835205,12.0982991 Z"
id=
"形状"
></path>
<path
d=
"M20.163446,0 L41,9.44953043 L21.7066692,19.2041768 L0,8.56257961 L20.163446,0 Z M20.1330436,2.44576083 L5.38912041,8.70758522 L21.69086,16.6992054 L35.8151834,9.55768043 L20.1336517,2.44636502 L20.1330436,2.44576083 Z"
id=
"形状"
></path>
<polygon
id=
"路径"
points=
"20.8207448 18.8332042 41 9.37884022 41 36.1746635 21.8671937 46"
></polygon>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
app_Web/src/assets/img/icon-link.svg
0 → 100644
浏览文件 @
dd77035d
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"12px"
height=
"12px"
viewBox=
"0 0 12 12"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
链接
</title>
<g
id=
"页面-1"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"列表-导入数据-文件上传完成"
transform=
"translate(-443.000000, -470.000000)"
fill-rule=
"nonzero"
>
<g
id=
"编组-33"
transform=
"translate(411.000000, 200.000000)"
>
<g
id=
"编组-21"
transform=
"translate(32.000000, 246.000000)"
>
<g
id=
"编组-18"
transform=
"translate(0.000000, 21.000000)"
>
<g
id=
"链接"
transform=
"translate(0.000000, 3.000000)"
>
<rect
id=
"矩形"
fill=
"#000000"
opacity=
"0"
x=
"0"
y=
"0"
width=
"12"
height=
"12"
></rect>
<path
d=
"M11.1405,1.071 L10.99425,0.924 C10.18275,0.1125 8.86725,0.1125 8.05575,0.924 L4.0155,4.965 C3.20325,5.7765 3.20325,7.09125 4.0155,7.9035 L4.1625,8.04975 C4.18725,8.0745 4.212,8.09775 4.23825,8.121 L5.346,7.0125 C5.316,6.99525 5.28825,6.9735 5.26425,6.948 L5.1165,6.801 C4.91475,6.5985 4.91475,6.26925 5.1165,6.06675 L5.26425,5.919 L6.219,4.965 L7.641,3.543 L9.1575,2.0265 C9.36075,1.824 9.6885,1.824 9.89175,2.0265 L10.03875,2.1735 C10.242,2.376 10.242,2.70525 10.03875,2.90775 L8.856,4.0905 C9.27,4.5855 9.43425,5.211 9.3525,5.7975 L11.1405,4.0095 C11.95275,3.198 11.95275,1.8825 11.1405,1.071 Z M8.2035,4.0095 L8.055,3.8625 C8.031,3.8385 8.0055,3.8145 7.98,3.792 L6.873,4.89825 C6.90075,4.91775 6.92775,4.9395 6.95325,4.965 L7.0995,5.112 C7.30275,5.31375 7.30275,5.64375 7.0995,5.84625 L6.65925,6.28725 L5.99925,6.948 L4.57725,8.37 L3.06,9.8865 C2.8575,10.08975 2.5275,10.08975 2.32575,9.8865 L2.17875,9.74025 C1.97625,9.53775 1.97625,9.20775 2.17875,9.00525 L3.4305,7.75425 C3.009,7.29075 2.8125,6.70275 2.84625,6.13275 L1.07625,7.9035 C0.264,8.71425 0.264,10.0305 1.07625,10.84125 L1.22325,10.9875 C2.03475,11.799 3.35025,11.799 4.16175,10.9875 L8.20275,6.94725 C9.0135,6.1365 9.0135,4.821 8.2035,4.0095 Z"
id=
"形状"
fill=
"#57A3FD"
></path>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
app_Web/src/assets/img/icon-success.svg
0 → 100644
浏览文件 @
dd77035d
<?xml version="1.0" encoding="UTF-8"?>
<svg
width=
"8px"
height=
"8px"
viewBox=
"0 0 8 8"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<title>
对勾
</title>
<g
id=
"页面-1"
stroke=
"none"
stroke-width=
"1"
fill=
"none"
fill-rule=
"evenodd"
>
<g
id=
"列表-导入数据-文件上传完成"
transform=
"translate(-449.000000, -283.000000)"
fill-rule=
"nonzero"
>
<g
id=
"编组-33"
transform=
"translate(411.000000, 200.000000)"
>
<g
id=
"编组-27"
transform=
"translate(38.000000, 80.000000)"
>
<g
id=
"对勾"
transform=
"translate(0.000000, 3.000000)"
>
<rect
id=
"矩形"
fill=
"#000000"
opacity=
"0"
x=
"0"
y=
"0"
width=
"8"
height=
"8"
></rect>
<path
d=
"M3.30402372e-13,5.33257243 C3.30402372e-13,5.33257243 2.03169794,6.1761155 3.04160137,8 C4.25460894,5.74294272 6.58297755,3.63765154 7.27272727,3.48194744 C7.27272727,2.54788794 7.27272727,2.1637215 7.27272727,0.727272727 C4.49362734,2.55115723 3.15913288,5.90953621 3.15913288,5.90953621 L1.69706055,4.36364049 L3.30402372e-13,5.33257243 Z"
id=
"路径"
fill=
"#49C81F"
></path>
<path
d=
"M3.30402372e-13,5.33257243 C3.30402372e-13,5.33257243 2.03169794,6.1761155 3.04160137,8 C4.25460894,5.74294272 6.58297755,3.63765154 7.27272727,3.48194744 C7.27272727,2.54788794 7.27272727,2.1637215 7.27272727,0.727272727 C4.49362734,2.55115723 3.15913288,5.90953621 3.15913288,5.90953621 L1.69706055,4.36364049 L3.30402372e-13,5.33257243 Z"
id=
"路径"
fill=
"#49C81F"
></path>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
app_Web/src/components/app-data-upload/app-data-upload.less
浏览文件 @
dd77035d
.app-data-upload-view{
width: 100%;
height: 100%;
padding: 16px;
.import-temp{
text-align: right;
vertical-align: middle;
color: #409EFF;
}
.data-info-content{
height: 100%;
width: 100%;
overflow: auto;
}
.font-class{
margin: 0px;
padding: 0px;
font-family: '微软雅黑','黑体','宋体';
font-size: 16px;
}
.progress {
margin-top: -15px;
}
}
\ No newline at end of file
// 导入视图样式
.app-data-upload-view{
font-family: "Microsoft YaHei";
.main-content{
height: 174px;
background: #FAFAFB;
border-radius: 4px;
border: 1px dashed #D7D7D7;
// 上传文件区域
.upload-container{
cursor: pointer;
height: 100%;
width: 100%;
text-align: center;
padding-top: 58px;
.icon-import{
display: block;
margin: 0 auto 17px;
}
.select-file-text{
height: 17px;
font-size: 12px;
color: #565656;
line-height: 17px;
}
}
// 信息展示容器
.data-info-container{
padding: 8px 10px 6px;
height: 100%;
width: 100%;
// 进度条
.progress{
margin-bottom: 6px ;
.el-progress-bar__outer{
background-color: #FFFFFF;
}
.el-progress-bar__inner{
background-color: #D7E9FF;
}
}
.message-container{
height: 150px;
display: flex;
justify-content: space-between;
ul li{
list-style-type: none;
padding-left: 20px;
}
.result-list{
height: 100%;
width: 100%;
overflow: auto;
}
//成功信息区
.result-list{
ul .success-item{
background: url("~@/assets/img/icon-success.svg") no-repeat 5px 5px;
background-size: 10px 10px;
}
}
//错误信息区
.result-list{
ul .error-item{
background: url("~@/assets/img/icon-error.svg") no-repeat 5px 5px;
background-size: 10px 10px;
}
}
}
}
}
// 下载模板区
.second-content{
padding: 16px 12px 0;
margin-bottom: 30px;
.import-template-message{
font-size: 12px;
height: 17px;
color: #565656;
line-height: 17px;
}
.import-template{
.icon-link{
width: 12px;
margin-bottom: -1px;
margin-right: 3px;
}
height: 17px;
font-size: 12px;
color: #57A3FD;
line-height: 17px;
}
}
// 底部按钮
.button-container{
text-align: right;
margin: 15px;
.el-button{
margin: 0 0 0 8px;
padding: 3px 15px;
font-size: 12px;
line-height: 20px;
}
.primary-button{
color: #FFFFFF;
background-color: #57A3FD;
border-color: #57A3FD;
&:hover{
background: #66b1ff;
border-color: #66b1ff;
}
&:disabled{
color: var(--button-font-color-light);
border-color: var(--button-font-color-light);
background-color: var(--button-background-color-light);
}
}
}
}
//模态样式
.view-default.app-data-upload-modal{
.app-data-upload-view{
width: 100%;
height: 100%;
padding: 0 20px 24px 20px;
}
.ivu-modal-content .ivu-modal-body{
height: calc(100% - 58px);
}
// 模态标题
.ivu-modal-header{
padding: 16px;
border: 0;
.ivu-modal-header-inner{
color: #333333;
font-weight: 600;
height: 24px;
line-height: 24px;
}
}
// 关闭图标
.ivu-modal-close .ivu-icon-ios-close{
color: #999999;
font-weight: 600;
}
}
\ No newline at end of file
app_Web/src/components/app-data-upload/app-data-upload.vue
浏览文件 @
dd77035d
<
template
>
<div
class=
"app-data-upload-view"
v-loading
.
fullscreen=
"isUploading"
element-loading-background=
"rgba(57, 57, 57, 0.2)"
>
<el-row
style=
"margin-top:24px"
:gutter=
"20"
>
<el-col
:span=
"4"
>
<el-button
type=
"primary"
@
click=
"handleUpLoad"
>
{{
$t
(
'components.appDataUploadView.selectfile'
)
}}
</el-button>
<input
ref=
"inputUpLoad"
type=
"file"
style=
"display: none"
accept=
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
@
change=
"importFile"
/>
</el-col>
<el-col
:span=
"4"
>
<el-button
type=
"primary"
@
click=
"uploadServer"
>
{{
$t
(
'components.appDataUploadView.uploadserver'
)
}}
</el-button>
</el-col>
<el-col
:span=
"16"
>
<div
class=
"import-temp"
><span
style=
"cursor: pointer;"
@
click=
"downloadTemp"
>
{{
$t
(
'components.appDataUploadView.datatemplate'
)
}}
</span></div>
</el-col>
</el-row>
<el-divider></el-divider>
<el-progress
class=
"progress"
v-show=
"isUploading"
:text-inside=
"true"
:stroke-width=
"14"
:percentage=
"uploadProgress"
></el-progress>
<el-row
style=
"height:480px;padding: 0px 12px;"
>
<div
class=
"data-info-content"
>
<template
v-if=
"importDataArray.length >0 && isUploading === false"
>
<ul>
<li
v-for=
"(item,index) in importDataArray"
:key=
"index"
class=
"font-class"
>
{{
item
[
importUniqueItem
]?
$t
(
'components.appDataUploadView.dataid'
)
+
item
[
importUniqueItem
]
+
$t
(
'components.appDataUploadView.read'
)
+
'......'
:
$t
(
'components.appDataUploadView.read'
)
+
'......'
}}
</li>
</ul>
</
template
>
<
template
v-if=
"hasImported === true && importDataArray.length === 0"
>
<span
class=
"font-class"
>
{{
isUploading
===
true
?
$t
(
'components.appDataUploadView.importing'
)
+
"......"
:
promptInfo
}}
</span>
</
template
>
<div
class=
"app-data-upload-view"
element-loading-background=
"rgba(57, 57, 57, 0.2)"
>
<input
ref=
"inputUpLoad"
type=
"file"
style=
"display: none"
accept=
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
@
change=
"fileChange"
/>
<div
class=
"main-content"
>
<div
v-if=
"!selectedFile"
class=
"upload-container"
@
click=
"handleUpLoad"
>
<img
class=
"icon-import"
src=
"@/assets/img/icon-import.svg"
/>
<span
class=
"select-file-text"
>
{{
$t
(
'components.appDataUploadView.selectfile'
)
}}
</span>
</div>
</el-row>
<el-row>
<!-- <el-col :span="4">
<div class="import-temp">
<div style="cursor: pointer;display: inline-block;" @click="downloadSuccessData">{{importSuccessData.length >0?"下载导入成功数据":""}}</div>
<div
v-else
class=
"data-info-container"
>
<div
v-if=
"!isUploaded"
class=
"message-container"
>
<div
class=
"success-list"
v-if=
"!isUploading"
>
{{
$t
(
'components.appDataUploadView.selectfilesucess'
)
}}
</div>
<div
class=
"success-list"
v-if=
"isUploading"
>
导入过程中,请稍候
</div>
</div>
<div
v-else
class=
"message-container"
>
<div
class=
"result-list"
v-if=
"Object.keys(responseResult).length > 0"
>
<ul>
<li
class=
"title"
><span>
{{
$t
(
'components.appDataUploadView.importresult'
)
}}
</span></li>
<li>
<span>
{{
$t
(
'components.appDataUploadView.totaldata'
)
}}
{{
responseResult
.
total
}}
{{
$t
(
'components.appDataUploadView.total'
)
}}
,
{{
$t
(
'app.commonwords.wrong'
)
}}
[
{{
responseResult
.
error
}}
],
{{
$t
(
'app.commonwords.success'
)
}}
[
{{
responseResult
.
success
}}
]
</span>
</li>
<template
v-if=
"responseResult.errorInfos && responseResult.errorInfos.length !== 0"
>
<li
class=
"title"
><span>
{{
$t
(
'components.appDataUploadView.errorinfo'
)
}}
</span></li>
<li
class=
"error-item"
v-for=
"(item, index) in responseResult.errorInfos"
:key=
"index"
>
<span
v-if=
"item.index"
>
{{
$t
(
'components.appDataUploadView.start'
)
}}
{{
item
.
index
}}
{{
$t
(
'components.appDataUploadView.row'
)
}}
:
</span><span
v-html=
"item.errorinfo"
></span>
</li>
</
template
>
</ul>
</div>
</div>
</div>
</el-col>
<el-col :span="4">
<div class="import-temp">
<span style="cursor: pointer;display: inline-block;" @click="downloadErrorData">{{importErrorData.length >0?"下载导入失败数据":""}}</span>
</div>
<el-row
class=
"second-content"
>
<el-col>
<div
class=
"import-template-message"
>
{{ $t('components.appDataUploadView.datatemplatemessage') }}
</div>
<div
class=
"import-template"
>
<img
class=
"icon-link"
src=
"@/assets/img/icon-link.svg"
/>
<span
style=
"cursor: pointer"
@
click=
"downloadTemp"
>
{{ viewParams.appDeLogicName + $t('components.appDataUploadView.datatemplate') }}
</span
>
</div>
</el-col> -->
<el-col
:span=
"2"
:offset=
"22"
>
<el-button
type=
"primary"
@
click=
"handleOK"
>
{{$t('components.appDataUploadView.confirm')}}
</el-button>
</el-col>
<div
class=
"import-template-download-info"
v-if=
"isUploaded && responseResult.errorfile"
@
click=
"downloadFeedbackMsg"
>
{{ $t('components.appDataUploadView.downloadinfo') }}
</div>
</el-row>
<el-row
class=
"button-container"
>
<el-button
type=
"primary"
@
click=
"handleCancel"
>
{{ $t('components.appDataUploadView.cancel') }}
</el-button>
<el-button
:disabled=
"!selectedFile"
:loading=
"isUploading"
type=
"primary"
class=
"primary-button"
@
click=
"uploadServer"
>
{{ $t('components.appDataUploadView.uploadserver') }}
</el-button
>
</el-row>
</div>
</template>
<
script
lang=
"ts"
>
import
XLSX
from
'xlsx'
;
import
CodeListService
from
"@/codelist/codelist-service"
;
import
EntityService
from
'@/service/entity-service'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Environment
}
from
'@/environments/environment'
;
import
moment
from
"moment"
;
import
{
Util
}
from
'@/utils'
;
import
axios
from
'axios'
;
import
{
Vue
,
Component
,
Prop
,
Watch
}
from
'vue-property-decorator'
;
@
Component
({
})
@
Component
({})
export
default
class
AppDataUploadView
extends
Vue
{
/**
* 传入视图上下文
*
* @type {string}
* @memberof AppDataUploadView
*/
@
Prop
()
protected
viewdata
!
:
string
;
/**
* 传入视图参数
*
* @type {string}
* @memberof AppDataUploadView
*/
@
Prop
()
protected
viewparam
!
:
string
;
@
Prop
()
public
viewparam
:
any
;
/**
* 代码表服务对象
*
* @type {CodeListService}
* @memberof AppDataUploadView
*/
public
codeListService
:
CodeListService
=
new
CodeListService
();
/**
* 实体服务对象
*
* @protected
* @type {EntityService}
* @memberof AppDataUploadView
*/
protected
entityService
:
EntityService
=
new
EntityService
();
/**
* 视图参数
* 视图上下文
*
* @type {*}
* @memberof AppDataUploadView
*/
protected
viewparams
:
any
=
{}
;
@
Prop
()
public
viewdata
:
any
;
/**
* 导入数据模型
*
* @type {Array<*>}
* @memberof AppDataUploadView
*/
protected
importDataModel
:
Array
<
any
>
=
[];
public
viewParams
:
any
=
{};
/**
* 导入数据集合
*
* @type {Array<*>}
* @memberof AppDataUploadView
*/
protected
importDataArray
:
Array
<
any
>
=
[];
public
context
:
any
=
{};
/**
*
导入标识
*
选择文件数据
*
* @type {
string
}
* @type {
*
}
* @memberof AppDataUploadView
*/
p
rotected
importId
:
string
=
""
;
p
ublic
selectedFile
:
any
|
null
=
null
;
/**
* 是否
已有导入数据
* 是否
上传完成
*
* @type {boolean}
* @memberof AppDataUploadView
*/
p
rotected
hasImported
:
boolean
=
false
;
p
ublic
isUploaded
:
boolean
=
false
;
/**
*
导入数据识别项属性
*
上传进度
*
* @type {string}
* @memberof AppDataUploadView
*/
protected
importUniqueItem
:
string
=
""
;
/**
* 提示信息
*
* @type {string}
* @type {number}
* @memberof AppDataUploadView
*/
p
rotected
promptInfo
:
string
=
""
;
p
ublic
uploadedProgress
:
number
=
0
;
/**
*
导入状态
*
是否上传过程中
*
* @type {boolean}
* @memberof AppDataUploadView
*/
protected
isUploading
:
boolean
=
false
;
/**
* 导入成功数据
*
* @type {string}
* @memberof AppDataUploadView
*/
protected
importSuccessData
:
Array
<
any
>
=
[];
/**
* 导入失败数据
*
* @type {string}
* @memberof AppDataUploadView
*/
protected
importErrorData
:
Array
<
any
>
=
[];
/**
* 读取完成的数据
*
* @type {*}
* @memberof AppDataUploadView
*/
public
workBookData
:
any
;
/**
* 所有的代码表
*
* @type {*}
* @memberof AppDataUploadView
*/
public
allCodeList
:
any
;
/**
* 属性Map(用作属性转化)
*
* @type {*}
* @memberof AppDataUploadView
*/
public
allFieldMap
:
Map
<
string
,
any
>
=
new
Map
();
/**
* 上传服务器数据切片数
*
* @type {number}
* @memberof AppDataUploadView
*/
public
sliceUploadCnt
:
number
=
Environment
.
sliceUploadCnt
;
public
isUploading
:
boolean
=
false
;
/**
*
上传服务器进度条百分比
*
导入结果集合
*
* @type {
number
}
* @type {
Array<*>
}
* @memberof AppDataUploadView
*/
public
uploadProgress
:
number
=
0
;
public
responseResult
:
any
=
{}
;
/**
* 视图参数变化
...
...
@@ -218,340 +140,266 @@ export default class AppDataUploadView extends Vue {
* @param {*} oldVal
* @memberof AppDataUploadView
*/
@
Watch
(
'viewparam'
,
{
immediate
:
true
,
deep
:
true
})
@
Watch
(
'viewparam'
,
{
immediate
:
true
,
deep
:
true
})
onParamData
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
Object
.
assign
(
this
.
viewparams
,
JSON
.
parse
(
this
.
viewparam
));
this
.
initBasic
();
}
}
/**
* 初始化基础数据
*
* @memberof AppDataUploadView
*/
public
async
initBasic
(){
if
(
this
.
viewparams
.
importId
){
this
.
importId
=
this
.
viewparams
.
importId
;
if
(
newVal
)
{
this
.
viewParams
=
JSON
.
parse
(
newVal
);
console
.
log
(
'视图残花'
,
this
.
viewParams
);
}
if
(
this
.
viewparams
.
importData
){
this
.
importDataModel
=
Object
.
values
(
this
.
viewparams
.
importData
);
this
.
BubbleSort
(
this
.
importDataModel
,
this
.
importDataModel
.
length
);
}
this
.
importDataModel
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
isuniqueitem
){
this
.
importUniqueItem
=
item
.
headername
;
}
this
.
allFieldMap
.
set
(
item
.
headername
,
item
);
});
//获取代码表值
this
.
allCodeList
=
await
this
.
getChartAllCodeList
();
}
/**
* 冒泡排序
*
* @param {*} newVal
* @param {*} oldVal
* @memberof AppDataUploadView
*/
public
BubbleSort
(
array
:
Array
<
any
>
,
length
:
number
){
for
(
let
i
=
0
;
i
<
length
;
i
++
){
for
(
let
j
=
0
;
j
<
length
-
i
-
1
;
j
++
){
if
(
array
[
j
].
order
>
array
[
j
+
1
].
order
){
let
temp
:
any
;
temp
=
array
[
j
+
1
];
array
[
j
+
1
]
=
array
[
j
];
array
[
j
]
=
temp
;
}
}
@
Watch
(
'viewdata'
,
{
immediate
:
true
,
deep
:
true
})
onViewDataChange
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
)
{
this
.
context
=
JSON
.
parse
(
newVal
);
console
.
log
(
'上下文'
,
this
.
context
);
}
}
/**
* 下载导入数据模板
*
* @memberof AppDataUploadView
*/
public
downloadTemp
(){
this
.
importExcel
(
this
.
viewparams
.
appDeLogicName
+
this
.
$t
(
'components.appDataUploadView.datatemp'
),[]);
}
/**
* 选择文件
*
* @memberof AppDataUploadView
*/
public
handleUpLoad
(){
this
.
importSuccessData
=
[];
public
handleUpLoad
()
{
(
this
.
$refs
.
inputUpLoad
as
any
).
click
();
}
/**
*
上传服务器
*
取消
*
* @memberof AppDataUploadView
*/
public
uploadServer
(){
if
(
this
.
importDataArray
.
length
==
0
){
return
;
}
let
tempDataArray
:
Array
<
any
>
=
[];
this
.
transformData
(
this
.
importDataArray
,
tempDataArray
);
this
.
hasImported
=
true
;
this
.
isUploading
=
true
;
this
.
uploadProgress
=
0
;
this
.
importDataArray
=
[];
this
.
sliceUploadService
(
tempDataArray
,
0
);
public
handleCancel
()
{
this
.
$emit
(
'close'
,
[]);
}
/**
*
数据切片上传
*
文件数据变化
*
* @memberof AppDataUploadView
*/
public
sliceUploadService
(
dataArray
:
Array
<
any
>
,
cnt
:
number
)
{
if
(
cnt
>
dataArray
.
length
)
{
this
.
isUploading
=
false
;
this
.
uploadProgress
=
100
;
public
fileChange
(
$event
:
any
)
{
let
obj
=
$event
.
target
||
$event
.
srcElement
;
if
(
!
obj
.
files
)
{
return
;
}
let
sliceArray
:
Array
<
any
>
=
[];
if
(
dataArray
)
{
sliceArray
=
dataArray
.
slice
(
cnt
,
cnt
+
this
.
sliceUploadCnt
);
}
try
{
this
.
entityService
.
getService
(
this
.
viewparams
.
serviceName
).
then
((
service
:
any
)
=>
{
service
.
ImportData
(
this
.
viewdata
,{
name
:
this
.
importId
,
importData
:
sliceArray
}).
then
((
res
:
any
)
=>
{
const
result
:
any
=
res
.
data
;
if
(
result
&&
result
.
rst
!==
0
){
this
.
promptInfo
=
(
this
.
$t
(
'components.appDataUploadView.importfailed'
)
as
string
);
this
.
isUploading
=
false
;
return
;
}
this
.
importSuccessData
=
result
.
data
;
this
.
promptInfo
=
(
this
.
$t
(
'components.appDataUploadView.completed'
)
as
string
);
this
.
uploadProgress
=
Number
((
cnt
/
dataArray
.
length
*
100
).
toFixed
(
2
));
this
.
sliceUploadService
(
dataArray
,
cnt
+
this
.
sliceUploadCnt
);
}).
catch
((
error
:
any
)
=>
{
this
.
isUploading
=
false
;
this
.
promptInfo
=
(
this
.
$t
(
'components.appDataUploadView.importfailed'
)
as
string
);
console
.
error
(
error
);
})
}).
catch
((
error
:
any
)
=>
{
this
.
isUploading
=
false
;
this
.
promptInfo
=
(
this
.
$t
(
'components.appDataUploadView.importfailed'
)
as
string
);
console
.
error
(
error
);
})
}
catch
(
error
){
this
.
isUploading
=
false
;
this
.
promptInfo
=
(
this
.
$t
(
'components.appDataUploadView.importfailed'
)
as
string
);
console
.
error
(
error
);
};
this
.
selectedFile
=
obj
.
files
&&
obj
.
files
.
length
>
0
?
obj
.
files
[
0
]
:
{};
}
/**
* 导出excel
*
* @memberof AppDataUploadView
*/
public
async
importExcel
(
filename
:
string
,
_data
:
any
){
const
tHeader
:
Array
<
any
>
=
[];
this
.
importDataModel
.
forEach
((
item
:
any
)
=>
{
tHeader
.
push
(
item
.
headername
);
});
//const data = await this.formatExcelData(filterVal, _data);
const
data
=
_data
?
_data
:[];
this
.
$export
.
exportExcel
().
then
((
excel
:
any
)
=>
{
excel
.
export_json_to_excel
({
header
:
tHeader
,
//表头 必填
data
:
data
,
//具体数据 必填
filename
:
filename
,
//非必填
autoWidth
:
true
,
//非必填
bookType
:
"xlsx"
//非必填
});
});
};
/**
*
确认
*
设置UI状态
*
* @memberof AppDataUploadView
*/
public
handleOK
(){
this
.
$emit
(
'close'
,
this
.
importSuccessData
);
public
setUIState
(
uploadedProgress
:
number
,
isUploading
:
boolean
,
isUploaded
:
boolean
,
result
:
any
=
{})
{
this
.
uploadedProgress
=
uploadedProgress
;
this
.
isUploading
=
isUploading
;
this
.
isUploaded
=
isUploaded
;
this
.
responseResult
=
result
;
}
/**
* 导入Excel
*
* @memberof AppDataUploadView
*/
public
importFile
(
$event
:
any
)
{
let
obj
=
$event
.
target
||
$event
.
srcElement
;
if
(
!
obj
.
files
)
{
return
;
}
let
f
=
obj
.
files
[
0
];
let
reader
=
new
FileReader
();
reader
.
onload
=
(
e
:
any
)
=>
{
let
data
=
e
.
target
.
result
;
this
.
workBookData
=
XLSX
.
read
(
data
,
{
type
:
'binary'
,
cellDates
:
true
});
let
xlsxData
=
XLSX
.
utils
.
sheet_to_json
(
this
.
workBookData
.
Sheets
[
this
.
workBookData
.
SheetNames
[
0
]]);
let
list1
=
this
.
getFirstRow
(
this
.
workBookData
);
xlsxData
=
this
.
AddXlsxData
(
xlsxData
,
list1
);
this
.
importDataArray
=
this
.
$util
.
deepCopy
(
xlsxData
);
(
this
.
$refs
.
inputUpLoad
as
any
).
value
=
''
;
};
reader
.
readAsBinaryString
(
f
);
}
/**
* 获取excel第一行的内容
*
* @memberof AppDataUploadView
*/
public
getFirstRow
(
wb
:
any
)
{
//// 读取的excel单元格内容
let
wbData
=
wb
.
Sheets
[
wb
.
SheetNames
[
0
]];
// 匹配excel第一行的内容
let
re
=
/^
[
A-Z
]
1$/
;
let
temparr
=
[];
// excel第一行内容赋值给数组
for
(
let
key
in
wbData
)
{
if
(
wbData
.
hasOwnProperty
(
key
))
{
if
(
re
.
test
(
key
))
{
temparr
.
push
(
wbData
[
key
].
h
);
}
}
}
return
temparr
;
}
/**
* 增加对应字段空白内容
* 下载导入数据模板
*
* @memberof AppDataUploadView
*/
public
AddXlsxData
(
xlsxData
:
any
,
list1
:
any
)
{
// 空白字段替换值
let
addData
=
null
;
for
(
let
i
=
0
;
i
<
xlsxData
.
length
;
i
++
)
{
// 要被JSON的数组
for
(
let
j
=
0
;
j
<
list1
.
length
;
j
++
)
{
// excel第一行内容
if
(
!
xlsxData
[
i
][
list1
[
j
]])
{
xlsxData
[
i
][
list1
[
j
]]
=
addData
;
}
}
}
return
xlsxData
;
}
/**
* 获取图表所需代码表
*
* @memberof AppDataUploadView
*/
public
async
getChartAllCodeList
(){
let
codeListMap
:
Map
<
string
,
any
>
=
new
Map
();
if
(
Object
.
values
(
this
.
importDataModel
).
length
>
0
){
await
Object
.
values
(
this
.
importDataModel
).
forEach
(
async
(
singleDataModel
:
any
)
=>
{
if
(
singleDataModel
.
codelist
){
let
tempCodeListMap
:
Map
<
any
,
any
>
=
new
Map
();
let
res
:
any
=
await
this
.
getCodeList
(
singleDataModel
.
codelist
);
if
(
res
&&
res
.
length
>
0
){
res
.
forEach
((
codeListItem
:
any
)
=>
{
tempCodeListMap
.
set
(
codeListItem
.
value
,
codeListItem
.
text
);
})
}
codeListMap
.
set
(
singleDataModel
.
codelist
.
tag
,
tempCodeListMap
);
}
})
public
downloadTemp
()
{
let
requestUrl
:
string
=
''
;
if
(
this
.
viewdata
&&
this
.
context
.
srfparentkey
&&
this
.
context
.
srfparentdename
&&
this
.
context
.
srfparentdename
!==
this
.
viewdata
.
appEntityName
)
{
requestUrl
+=
`/
${
Util
.
srfpluralize
(
this
.
viewdata
.
srfparentdename
)}
/
${
this
.
viewdata
.
srfparentkey
}
`
;
}
requestUrl
+=
`/
${
Util
.
srfpluralize
(
this
.
viewParams
.
serviceName
)}
/importtemplate`
;
if
(
this
.
viewParams
.
importId
)
{
requestUrl
+=
`?srfimporttag=
${
this
.
viewParams
.
importId
}
`
;
}
return
codeListMap
;
axios
({
url
:
requestUrl
,
method
:
'get'
,
responseType
:
'blob'
,
}).
then
((
response
:
any
)
=>
{
if
(
response
.
status
==
200
)
{
let
fileName
=
response
.
headers
[
'content-disposition'
]
.
split
(
';'
)
.
find
((
str
:
string
)
=>
str
.
indexOf
(
'filename='
)
!=
-
1
)
.
slice
(
9
);
fileName
=
decodeURIComponent
(
fileName
);
let
blob
=
new
Blob
([
response
.
data
],
{
type
:
'application/vnd.ms-excel'
});
let
elink
=
document
.
createElement
(
'a'
);
elink
.
download
=
fileName
;
elink
.
style
.
display
=
'none'
;
elink
.
href
=
URL
.
createObjectURL
(
blob
);
document
.
body
.
appendChild
(
elink
);
elink
.
click
();
URL
.
revokeObjectURL
(
elink
.
href
);
// 释放URL 对象
document
.
body
.
removeChild
(
elink
);
}
});
}
/**
* 获取代码表
*
* @returns {Promise<any>}
* 下载导入反馈信息
*
* @memberof AppDataUploadView
*/
public
getCodeList
(
codeListObject
:
any
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
if
(
codeListObject
.
tag
&&
Object
.
is
(
codeListObject
.
type
,
"STATIC"
)){
const
codelist
=
this
.
$store
.
getters
.
getCodeList
(
codeListObject
.
tag
);
if
(
codelist
)
{
resolve
([...
JSON
.
parse
(
JSON
.
stringify
(
codelist
.
items
))]);
}
else
{
console
.
log
(
`----
${
codeListObject
.
tag
}
----
${(
this
.
$t
(
'app.commonWords.codeNotExist'
)
as
string
)}
`
);
}
}
else
if
(
codeListObject
.
tag
&&
Object
.
is
(
codeListObject
.
type
,
"DYNAMIC"
)){
this
.
codeListService
.
getItems
(
codeListObject
.
tag
).
then
((
res
:
any
)
=>
{
resolve
(
res
);
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
codeListObject
.
tag
}
----
${(
this
.
$t
(
'app.commonWords.codeNotExist'
)
as
string
)}
`
);
});
public
downloadFeedbackMsg
()
{
if
(
!
this
.
responseResult
||
!
this
.
responseResult
.
errorfile
||
!
this
.
responseResult
.
errorfile
.
fileid
){
this
.
$Notice
.
error
({
desc
:
this
.
$t
(
'components.appDataUploadView.downloaderror'
)
as
string
});
return
;
}
let
downloadUrl
:
string
=
`
${
Environment
.
ExportFile
}
/
${
this
.
responseResult
.
errorfile
.
folder
}
/
${
this
.
responseResult
.
errorfile
.
fileid
}
`
;
const
headers
=
{};
axios
({
method
:
'get'
,
url
:
downloadUrl
,
headers
:
headers
,
responseType
:
'blob'
}).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!=
200
)
{
this
.
$Notice
.
error
({
desc
:
this
.
$t
(
'components.appDataUploadView.downloaderror'
)
as
string
});
return
;
}
// 请求成功,后台返回的是一个文件流
if
(
response
.
data
)
{
// 获取文件名
const
filename
=
`导入错误
${
this
.
responseResult
.
errorfile
.
fileid
}
.xlsx`
;
let
filetype
=
this
.
calcFilemime
(
'xlsx'
);
// 用blob对象获取文件流
let
blob
=
new
Blob
([
response
.
data
],
{
type
:
filetype
});
// 通过文件流创建下载链接
var
href
=
URL
.
createObjectURL
(
blob
);
// 创建一个a元素并设置相关属性
let
a
=
document
.
createElement
(
'a'
);
a
.
href
=
href
;
a
.
download
=
filename
;
// 添加a元素到当前网页
document
.
body
.
appendChild
(
a
);
// 触发a元素的点击事件,实现下载
a
.
click
();
// 从当前网页移除a元素
document
.
body
.
removeChild
(
a
);
// 释放blob对象
URL
.
revokeObjectURL
(
href
);
}
else
{
this
.
$Notice
.
error
({
desc
:
this
.
$t
(
'components.appDataUploadView.downloaderror'
)
as
string
});
}
})
}).
catch
((
error
:
any
)
=>
{
console
.
error
(
error
);
});
}
/**
* 转化数据
*
* @memberof AppDataUploadView
*/
public
transformData
(
data
:
Array
<
any
>
,
result
:
Array
<
any
>
){
data
.
forEach
((
item
:
any
)
=>
{
let
curObject
:
any
=
{};
Object
.
keys
(
item
).
forEach
((
ele
:
any
)
=>
{
// todo XLSX读取时间为国际时间(东8区)+8H转为标准时间
if
(
item
[
ele
]
instanceof
Date
){
const
tempDate
:
Date
=
item
[
ele
];
item
[
ele
]
=
moment
(
tempDate
).
add
(
8
,
'h'
).
format
(
"YYYY-MM-DD HH:mm:ss"
);
}
if
(
this
.
allFieldMap
.
get
(
ele
).
codelist
){
let
codelistTag
:
string
=
this
.
allFieldMap
.
get
(
ele
).
codelist
.
tag
;
let
codelistIsNumber
:
boolean
=
this
.
allFieldMap
.
get
(
ele
).
codelist
.
isnumber
;
let
curCodeList
:
any
=
this
.
transCodeList
(
codelistTag
,
codelistIsNumber
,
true
);
Object
.
defineProperty
(
curObject
,
this
.
allFieldMap
.
get
(
ele
).
name
,
{
value
:
curCodeList
.
get
(
item
[
ele
]),
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
Object
.
defineProperty
(
curObject
,
this
.
allFieldMap
.
get
(
ele
).
name
,
{
value
:
item
[
ele
],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
});
result
.
push
(
curObject
);
})
* 计算文件mime类型
*
* @param filetype 文件后缀
* @memberof AppDataUploadView
*/
public
calcFilemime
(
filetype
:
string
):
string
{
let
mime
=
"application/vnd.ms-excel"
;
switch
(
filetype
)
{
case
".xlsx"
:
mime
=
"application/vnd.ms-excel"
;
break
;
case
".wps"
:
mime
=
"application/kswps"
;
break
;
case
".doc"
:
mime
=
"application/msword"
;
break
;
case
".docx"
:
mime
=
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
;
break
;
case
".txt"
:
mime
=
"text/plain"
;
break
;
case
".zip"
:
mime
=
"application/zip"
;
break
;
case
".png"
:
mime
=
"image/png"
;
break
;
case
".gif"
:
mime
=
"image/gif"
;
break
;
case
".jpeg"
:
mime
=
"image/jpeg"
;
break
;
case
".jpg"
:
mime
=
"image/jpeg"
;
break
;
case
".rtf"
:
mime
=
"application/rtf"
;
break
;
case
".avi"
:
mime
=
"video/x-msvideo"
;
break
;
case
".gz"
:
mime
=
"application/x-gzip"
;
break
;
case
".tar"
:
mime
=
"application/x-tar"
;
break
;
}
return
mime
;
}
/**
*
翻译代码表
*
*
上传服务器
*
* @memberof AppDataUploadView
*/
public
transCodeList
(
codeListTag
:
string
,
codelistIsNumber
:
boolean
,
isTransform
:
boolean
){
let
curCodeList
:
any
=
this
.
allCodeList
.
get
(
codeListTag
);
if
(
isTransform
){
let
tempCodelist
:
Map
<
string
,
string
>
=
new
Map
();
curCodeList
.
forEach
((
item
:
string
,
key
:
string
)
=>
{
let
value
:
any
=
codelistIsNumber
?
Number
(
key
):
key
;
tempCodelist
.
set
(
item
,
value
);
})
curCodeList
=
tempCodelist
;
public
uploadServer
()
{
if
(
!
this
.
selectedFile
)
{
return
;
}
try
{
let
requestUrl
:
string
=
''
;
this
.
setUIState
(
0
,
true
,
false
);
if
(
this
.
viewdata
&&
this
.
viewdata
.
srfparentkey
&&
this
.
viewdata
.
srfparentdename
)
{
requestUrl
+=
`/
${
Util
.
srfpluralize
(
this
.
viewdata
.
srfparentdename
)}
/
${
this
.
viewdata
.
srfparentkey
}
`
;
}
requestUrl
+=
`/
${
Util
.
srfpluralize
(
this
.
viewParams
.
serviceName
)}
/importdata2`
;
if
(
this
.
viewParams
.
importId
)
{
requestUrl
+=
`?srfimporttag=
${
this
.
viewParams
.
importId
}
`
;
}
const
data
=
new
FormData
();
data
.
append
(
'file'
,
this
.
selectedFile
);
axios
.
post
(
requestUrl
,
data
,
{
headers
:
{
'Content-Type'
:
'multipart/form-data'
},
onUploadProgress
:
(
progressEvent
:
any
)
=>
{
this
.
uploadedProgress
=
Math
.
floor
((
progressEvent
.
loaded
/
progressEvent
.
total
)
*
100
);
},
})
.
then
((
res
:
any
)
=>
{
const
result
:
any
=
{};
if
(
res
&&
res
.
status
&&
res
.
status
==
200
)
{
const
{
data
:
data
}
=
res
;
const
{
errorinfo
,
success
,
total
,
errorfile
}
=
data
;
result
.
total
=
total
?
Number
(
total
)
:
0
;
result
.
success
=
success
?
Number
(
success
)
:
0
;
result
.
errorfile
=
errorfile
;
if
(
errorinfo
&&
Object
.
keys
(
errorinfo
).
length
>
0
){
result
.
error
=
Object
.
keys
(
errorinfo
).
length
;
result
.
errorInfos
=
[];
Object
.
keys
(
errorinfo
).
forEach
((
item
:
any
)
=>
{
result
.
errorInfos
.
push
({
index
:
Number
(
item
)
+
1
,
errorinfo
:
errorinfo
[
item
].
errorInfo
});
})
}
}
this
.
setUIState
(
0
,
false
,
true
,
result
);
}).
catch
((
error
:
any
)
=>
{
const
errorResult
:
any
=
{};
if
(
error
&&
error
.
status
&&
error
.
status
!==
200
)
{
errorResult
.
errorInfos
=
[];
errorResult
.
errorInfos
.
push
({
errorInfo
:
error
.
data
&&
error
.
data
.
message
?
error
.
data
.
message
:
''
});
}
this
.
setUIState
(
0
,
false
,
true
,
errorResult
);
});
}
catch
(
error
:
any
)
{
this
.
setUIState
(
0
,
false
,
true
,
{
errorInfos
:[{
errorInfo
:
error
.
data
}]
});
}
return
curCodeList
;
}
}
</
script
>
...
...
app_Web/src/locale/lang/BO-CN-base.ts
浏览文件 @
dd77035d
...
...
@@ -79,6 +79,11 @@ function getAppLocale(){
new
:
"གསར་འཛུགས།"
,
add
:
"སྣོན་པ་"
,
},
grid
:
{
exportexcel
:
{
error
:
'ཕྱིར་འདྲེན་ཕམ་པ།'
}
},
gridpage
:
{
choicecolumns
:
"གདམ་གསེས་གཞུང་སྟར།"
,
refresh
:
"གསར་འདོན་"
,
...
...
app_Web/src/locale/lang/en-US-base.ts
浏览文件 @
dd77035d
...
...
@@ -79,6 +79,11 @@ function getAppLocale(){
new
:
"New"
,
add
:
"Add"
,
},
grid
:
{
exportexcel
:
{
error
:
'Export Failed'
}
},
gridpage
:
{
choicecolumns
:
"Choice columns"
,
refresh
:
"refresh"
,
...
...
app_Web/src/locale/lang/zh-CN-base.ts
浏览文件 @
dd77035d
...
...
@@ -79,6 +79,11 @@ function getAppLocale(){
new
:
"新建"
,
add
:
"增加"
,
},
grid
:
{
exportexcel
:
{
error
:
'导出失败'
}
},
gridpage
:
{
choicecolumns
:
"选择列"
,
refresh
:
"刷新"
,
...
...
app_Web/src/locale/lanres/components/components_BO_CN_base.ts
浏览文件 @
dd77035d
...
...
@@ -40,17 +40,25 @@ function getLocaleResourceBase(){
global
:
'ཁྱོན་ཡོངས།'
,
},
appDataUploadView
:
{
"viewtitle"
:
"ཉེར་སྤྱོད་གཞི་གྲངས་ནང་འདྲེན་མཐོང་རིས་"
,
"selectfile"
:
"ཡིག་ཆ་འདེམས་པ་"
,
"uploadserver"
:
"ཡར་བསྐུར་ཞབས་ཞུ་ཆས་།"
,
"datatemplate"
:
"ཕབ་ལེན་ནང་འདྲེན་གཞི་གྲངས་དཔེ་པང་།"
,
"dataid"
:
"གཞི་གྲངས་ཀྱི་མཚོན་རྟགས་"
,
"selectfile"
:
"ས་ཁོངས་དེ་མནན་ན་ཡར་བསྐུར་།"
,
"uploadserver"
:
"ཡར་སྤྲོད་གཞི་གྲངས་"
,
"datatemplate"
:
"ནང་འདྲེན་གཞི་གྲངས་དཔེ་པང་"
,
"read"
:
"ཀློག་ལེན་གྲུབ་འབྲས་ཐོབ་པའི་ངང་"
,
"importing"
:
"ནང་འདྲེན་བྱེད་བཞིན་ཡོད།"
,
"completed"
:
"ནང་འདྲེན་ལེགས་སྒྲུབ་"
,
"confirm"
:
"ངོས་འཛིན་"
,
"datatemp"
:
"ནང་འདྲེན་གཞི་གྲངས་དཔེ་པང་"
,
"importfailed"
:
"ནང་འདྲེན་ཕམ་པ།"
"importfailed"
:
"ནང་འདྲེན་ཕམ་པ།"
,
"datatemplatemessage"
:
"དཔེ་གཟུགས་ཕབ་ལེན་དང་ནང་འཇུག་བྱེད་པ་མ་ཟད།རེ་བ་ལྟར་འབྲི་དགོས།"
,
"cancel"
:
"མེད་པར་བཟོ་བ་"
,
"selectfilesucess"
:
"ཡིག་ཆ་བདམས་ནས་གྲུབ་འབྲས་ཐོབ་པའི་ངང་།"
,
"importresult"
:
"ནང་འདྲེན་འབྲས་བུ་"
,
"totaldata"
:
"སྡོམ་པས་ནང་འདྲེན་གཞི་གྲངས།"
,
"total"
:
"ལྕུག་མ།"
,
"errorinfo"
:
"ནོར་འཁྲུལ་ཆ་འཕྲིན།"
,
"start"
:
"དོན་ཚན་དང་པོ།"
,
"row"
:
"ཕྲེང་"
,
"downloadinfo"
:
"ལྡོག་སྐྱེལ་ཆ་འཕྲིན་ཕབ་ལེན་"
,
"downloaderror"
:
"ཡིག་ཆ་ཕབ་ལེན་ཕམ་།"
},
appDebugActions
:{
button
:
'ཁ་འབྱེད་སྡེབ་སྒྲིག་རྣམ་པ་'
,
...
...
app_Web/src/locale/lanres/components/components_en_US_base.ts
浏览文件 @
dd77035d
...
...
@@ -40,17 +40,24 @@ function getLocaleResourceBase(){
global
:
'Global'
,
},
appDataUploadView
:
{
"viewtitle"
:
"AppDataUploadView"
,
"selectfile"
:
"Select File"
,
"selectfile"
:
"Click this area to upload"
,
"uploadserver"
:
"Upload Server"
,
"datatemplate"
:
"
Download
Import Data Template"
,
"data
id"
:
"Data ID is
"
,
"datatemplate"
:
"Import Data Template"
,
"data
templatemessage"
:
"Download the Import Data Template, According to the specification required to fill in
"
,
"read"
:
" read Successful"
,
"importing"
:
"Importing"
,
"completed"
:
"Import Completed"
,
"confirm"
:
"OK"
,
"datatemp"
:
"Data Template"
,
"importfailed"
:
"Import Failed"
"cancel"
:
"Cancel"
,
"importfailed"
:
"Import Failed"
,
"selectfilesucess"
:
"File selected successfully"
,
"importresult"
:
"Import Result"
,
"totaldata"
:
"Total Imported Data"
,
"total"
:
"Count"
,
"errorinfo"
:
"Error Message"
,
"start"
:
"Line"
,
"row"
:
""
,
"downloadinfo"
:
"Download The Feedback"
,
"downloaderror"
:
"Failed To Download File"
},
appDebugActions
:
{
button
:
'Open Configuration Mode'
,
...
...
app_Web/src/locale/lanres/components/components_zh_CN_base.ts
浏览文件 @
dd77035d
...
...
@@ -40,17 +40,24 @@ function getLocaleResourceBase(){
global
:
'全局'
,
},
appDataUploadView
:
{
"viewtitle"
:
"应用数据导入视图"
,
"selectfile"
:
"选取文件"
,
"uploadserver"
:
"上传服务器"
,
"datatemplate"
:
"下载导入数据模板"
,
"dataid"
:
"数据标识为"
,
"selectfile"
:
"单击此区域进行上传"
,
"uploadserver"
:
"上传数据"
,
"datatemplate"
:
"导入数据模板"
,
"datatemplatemessage"
:
"下载导入模版,并按要求填写:"
,
"read"
:
"读取成功"
,
"importing"
:
"导入中"
,
"completed"
:
"导入完成"
,
"confirm"
:
"确认"
,
"datatemp"
:
"导入数据模板"
,
"importfailed"
:
"导入失败"
"cancel"
:
"取消"
,
"importfailed"
:
"导入失败"
,
"selectfilesucess"
:
"选取文件成功"
,
"importresult"
:
"导入结果"
,
"totaldata"
:
"共计导入数据"
,
"total"
:
"条"
,
"errorinfo"
:
"错误信息"
,
"start"
:
"第"
,
"row"
:
"行"
,
"downloadinfo"
:
"下载反馈信息"
,
"downloaderror"
:
"下载文件失败"
},
appDebugActions
:{
button
:
'开启配置模式'
,
...
...
app_Web/src/uiservice/ibizbook/ibizbook-ui-service-base.ts
浏览文件 @
dd77035d
...
...
@@ -336,12 +336,12 @@ export default class IBIZBOOKUIServiceBase extends UIService {
delete
context
.
srfparentkey
;
}
}
const
container
:
Subject
<
any
>
=
actionContext
.
$appmodal
.
openModal
(
view
,
context
,
{
const
container
:
Subject
<
any
>
=
actionContext
.
$appmodal
.
openModal
(
view
,
context
,
Object
.
assign
(
{
importId
:
'DataImport'
,
serviceName
:
'IBIZBOOK'
,
appDeLogicName
:
'图书'
,
ignoreError
:
false
});
}
,
tempViewParam
)
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
Object
.
is
(
result
.
ret
,
'OK'
))
{
actionContext
.
refresh
(
result
.
datas
);
...
...
app_Web/src/widgets/ibizbook/guide-borrow-form-form/guide-borrow-form-form-base.vue
浏览文件 @
dd77035d
...
...
@@ -1378,7 +1378,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
*/
public
async
load
(
opt
:
any
=
{}):
Promise
<
any
>
{
if
(
!
this
.
loadAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.loadaction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView'
+
(
this
.
$t
(
'app.formpage.notconfig.loadaction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
};
...
...
@@ -1425,7 +1425,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
*/
public
async
loadDraft
(
opt
:
any
=
{}):
Promise
<
any
>
{
if
(
!
this
.
loaddraftAction
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.loaddraftaction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView'
+
(
this
.
$t
(
'app.formpage.notconfig.loaddraftaction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
}
;
...
...
@@ -1495,7 +1495,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
return
;
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
...
...
@@ -1603,7 +1603,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
return
;
}
Object
.
assign
(
arg
,
{
viewparams
:
this
.
viewparams
});
...
...
@@ -1695,7 +1695,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
public
remove
(
opt
:
Array
<
any
>
=
[],
showResultInfo
?:
boolean
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.removeaction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView'
+
(
this
.
$t
(
'app.formpage.notconfig.removeaction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
opt
[
0
];
...
...
app_Web/src/widgets/ibizbook/usr4-dataview/usr4-dataview-base.vue
浏览文件 @
dd77035d
...
...
@@ -698,7 +698,7 @@ export default class Usr4Base extends Vue implements ControlInterface {
*/
public
async
load
(
opt
:
any
=
{},
isReset
:
boolean
=
false
):
Promise
<
any
>
{
if
(
!
this
.
fetchAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
Usr4
DataView'
+
(
this
.
$t
(
'app.list.notConfig.fetchAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
TestCL
DataView'
+
(
this
.
$t
(
'app.list.notConfig.fetchAction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{...
opt
};
...
...
@@ -792,7 +792,7 @@ export default class Usr4Base extends Vue implements ControlInterface {
*/
public
async
remove
(
datas
:
any
[]):
Promise
<
any
>
{
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
Usr4
DataView'
+
(
this
.
$t
(
'app.gridpage.notConfig.removeAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
TestCL
DataView'
+
(
this
.
$t
(
'app.gridpage.notConfig.removeAction'
)
as
string
)
});
return
;
}
let
_datas
:
any
[]
=
[];
...
...
@@ -908,7 +908,7 @@ export default class Usr4Base extends Vue implements ControlInterface {
try
{
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
)){
if
(
!
this
.
createAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
Usr4
DataView'
+
(
this
.
$t
(
'app.list.notConfig.createAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
TestCL
DataView'
+
(
this
.
$t
(
'app.list.notConfig.createAction'
)
as
string
)
});
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
let
response
=
await
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
);
...
...
@@ -916,7 +916,7 @@ export default class Usr4Base extends Vue implements ControlInterface {
}
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
if
(
!
this
.
updateAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
Usr4
DataView'
+
(
this
.
$t
(
'app.list.notConfig.updateAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
TestCL
DataView'
+
(
this
.
$t
(
'app.list.notConfig.updateAction'
)
as
string
)
});
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
if
(
item
.
ibizbook
){
...
...
app_Web/src/widgets/ibizbook/usr4-dataview/usr4-dataview-model.ts
浏览文件 @
dd77035d
...
...
@@ -70,11 +70,6 @@ export default class Usr4Model {
prop
:
'n_ibizbookname_like'
,
dataType
:
'QUERYPARAM'
},
{
name
:
'n_price_gtandeq'
,
prop
:
'n_price_gtandeq'
,
dataType
:
'QUERYPARAM'
},
{
...
...
app_Web/src/widgets/ibizorder/main-grid/main-grid-base.vue
浏览文件 @
dd77035d
...
...
@@ -319,7 +319,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof IBIZOrder
Pickup
GridViewBase
* @memberof IBIZOrder
SF1
GridViewBase
*/
public
Edit
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
if
(
args
.
length
===
0
)
{
...
...
@@ -462,6 +462,20 @@ export default class MainBase extends Vue implements ControlInterface {
return
this
.
selections
[
0
];
}
/**
* 打开新建数据视图
*
* @type {any}
* @memberof MainBase
*/
@
Prop
()
public
newdata
:
any
;
/**
* 打开编辑数据视图
*
* @type {any}
* @memberof MainBase
*/
@
Prop
()
public
opendata
:
any
;
/**
* 是否嵌入关系界面
...
...
@@ -996,7 +1010,7 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
this
.
fetchAction
)
{
this
.
$Notice
.
error
({
title
:
this
.
$t
(
"app.commonWords.wrong"
)
as
string
,
desc
:
"IBIZOrder
Pickup
GridView"
+
(
this
.
$t
(
"app.gridpage.notConfig.fetchAction"
)
as
string
),
desc
:
"IBIZOrder
SF1
GridView"
+
(
this
.
$t
(
"app.gridpage.notConfig.fetchAction"
)
as
string
),
});
return
;
}
...
...
@@ -1125,7 +1139,7 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
this
.
removeAction
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrder
Pickup
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.removeAction'
)
as
string
)
desc
:
'IBIZOrder
SF1
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.removeAction'
)
as
string
)
});
return
;
}
...
...
@@ -1239,7 +1253,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public
addBatch
(
arg
:
any
=
{}):
void
{
if
(
!
this
.
fetchAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrder
Pickup
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.fetchAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrder
SF1
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.fetchAction'
)
as
string
)
});
return
;
}
if
(
!
arg
){
...
...
@@ -2170,7 +2184,7 @@ export default class MainBase extends Vue implements ControlInterface {
try
{
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
))
{
if
(
!
this
.
createAction
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrder
Pickup
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.createAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrder
SF1
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.createAction'
)
as
string
)
});
}
else
{
Object
.
assign
(
item
,
{
viewparams
:
this
.
viewparams
});
const
tempContext
=
Util
.
deepCopy
(
this
.
context
);
...
...
@@ -2179,7 +2193,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
if
(
!
this
.
updateAction
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrder
Pickup
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.updateAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrder
SF1
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.updateAction'
)
as
string
)
});
}
else
{
Object
.
assign
(
item
,
{
viewparams
:
this
.
viewparams
});
const
tempContext
=
Util
.
deepCopy
(
this
.
context
);
...
...
@@ -2255,7 +2269,7 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZOrder
Pickup
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.loaddraftAction'
)
as
string
)
desc
:
'IBIZOrder
SF1
GridView'
+
(
this
.
$t
(
'app.gridpage.notConfig.loaddraftAction'
)
as
string
)
});
return
;
}
...
...
app_Web/src/widgets/ibizorder/main-grid/main-grid-model.ts
浏览文件 @
dd77035d
...
...
@@ -105,6 +105,21 @@ export default class MainModel {
prop
:
'n_ibizordername_like'
,
dataType
:
'QUERYPARAM'
},
{
name
:
'n_orderstate_eq'
,
prop
:
'n_orderstate_eq'
,
dataType
:
'QUERYPARAM'
},
{
name
:
'n_ordertime_gt'
,
prop
:
'n_ordertime_gt'
,
dataType
:
'QUERYPARAM'
},
{
name
:
'n_ordertime_lt'
,
prop
:
'n_ordertime_lt'
,
dataType
:
'QUERYPARAM'
},
{
name
:
'size'
,
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK/PSGANTTS/Usr.json
浏览文件 @
dd77035d
...
...
@@ -11,21 +11,21 @@
"path"
:
"PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSDETreeColumns"
:
[
{
"caption"
:
"
借出日期
"
,
"codeName"
:
"
lendouttime
"
,
"caption"
:
"
作者
"
,
"codeName"
:
"
author
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
lendouttime
"
,
"name"
:
"
lendouttime
"
,
"dataItemName"
:
"
author
"
,
"name"
:
"
author
"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"
作者
"
,
"codeName"
:
"
author
"
,
"caption"
:
"
图书名称
"
,
"codeName"
:
"
ibizbookname
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
author
"
,
"name"
:
"
author
"
,
"dataItemName"
:
"
ibizbookname
"
,
"name"
:
"
ibizbookname
"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
...
...
@@ -41,21 +41,21 @@
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"
图书名称
"
,
"codeName"
:
"
ibizbookname
"
,
"caption"
:
"
出版社
"
,
"codeName"
:
"
press
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
ibizbookname
"
,
"name"
:
"
ibizbookname
"
,
"dataItemName"
:
"
press
"
,
"name"
:
"
press
"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"
出版社
"
,
"codeName"
:
"
press
"
,
"caption"
:
"
借出日期
"
,
"codeName"
:
"
lendouttime
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
press
"
,
"name"
:
"
press
"
,
"dataItemName"
:
"
lendouttime
"
,
"name"
:
"
lendouttime
"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK/PSTREEGRIDICES/TreeTable.json
浏览文件 @
dd77035d
...
...
@@ -19,11 +19,11 @@
}
}
],
"getPSDETreeColumns"
:
[
{
"caption"
:
"
作者
"
,
"codeName"
:
"
author
"
,
"caption"
:
"
图书描述
"
,
"codeName"
:
"
subtext
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
author
"
,
"name"
:
"
author
"
,
"dataItemName"
:
"
subtext
"
,
"name"
:
"
subtext
"
,
"width"
:
50
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
...
...
@@ -39,11 +39,11 @@
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"
图书描述
"
,
"codeName"
:
"
subtext
"
,
"caption"
:
"
作者
"
,
"codeName"
:
"
author
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
subtext
"
,
"name"
:
"
subtext
"
,
"dataItemName"
:
"
author
"
,
"name"
:
"
author
"
,
"width"
:
50
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKGanttView.json
浏览文件 @
dd77035d
...
...
@@ -34,21 +34,21 @@
"id"
:
"GANTT"
},
"getPSDETreeColumns"
:
[
{
"caption"
:
"
借出日期
"
,
"codeName"
:
"
lendouttime
"
,
"caption"
:
"
作者
"
,
"codeName"
:
"
author
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
lendouttime
"
,
"name"
:
"
lendouttime
"
,
"dataItemName"
:
"
author
"
,
"name"
:
"
author
"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"
作者
"
,
"codeName"
:
"
author
"
,
"caption"
:
"
图书名称
"
,
"codeName"
:
"
ibizbookname
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
author
"
,
"name"
:
"
author
"
,
"dataItemName"
:
"
ibizbookname
"
,
"name"
:
"
ibizbookname
"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
...
...
@@ -64,21 +64,21 @@
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"
图书名称
"
,
"codeName"
:
"
ibizbookname
"
,
"caption"
:
"
出版社
"
,
"codeName"
:
"
press
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
ibizbookname
"
,
"name"
:
"
ibizbookname
"
,
"dataItemName"
:
"
press
"
,
"name"
:
"
press
"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"
出版社
"
,
"codeName"
:
"
press
"
,
"caption"
:
"
借出日期
"
,
"codeName"
:
"
lendouttime
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
press
"
,
"name"
:
"
press
"
,
"dataItemName"
:
"
lendouttime
"
,
"name"
:
"
lendouttime
"
,
"width"
:
200
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZBOOKTreeGridExView.json
浏览文件 @
dd77035d
...
...
@@ -75,11 +75,11 @@
"id"
:
"TREEGRIDEX"
},
"getPSDETreeColumns"
:
[
{
"caption"
:
"
作者
"
,
"codeName"
:
"
author
"
,
"caption"
:
"
图书描述
"
,
"codeName"
:
"
subtext
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
author
"
,
"name"
:
"
author
"
,
"dataItemName"
:
"
subtext
"
,
"name"
:
"
subtext
"
,
"width"
:
50
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
...
...
@@ -95,11 +95,11 @@
"enableExpand"
:
false
,
"enableSort"
:
false
},
{
"caption"
:
"
图书描述
"
,
"codeName"
:
"
subtext
"
,
"caption"
:
"
作者
"
,
"codeName"
:
"
author
"
,
"columnType"
:
"DEFGRIDCOLUMN"
,
"dataItemName"
:
"
subtext
"
,
"name"
:
"
subtext
"
,
"dataItemName"
:
"
author
"
,
"name"
:
"
author
"
,
"width"
:
50
,
"widthUnit"
:
"px"
,
"enableExpand"
:
false
,
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录