Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
K
klck
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
位宇华
klck
Commits
1aac41fc
Commit
1aac41fc
authored
Aug 15, 2023
by
lvzhuangzhuang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
6589c838
24fa7fd9
Changes
6
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
351 additions
and
108431 deletions
+351
-108431
ruoyi-ui/package.json
ruoyi-ui/package.json
+37
-39
ruoyi-ui/src/views/index.vue
ruoyi-ui/src/views/index.vue
+113
-26
ruoyi-ui/src/views/system/supplies/index.vue
ruoyi-ui/src/views/system/supplies/index.vue
+86
-48
ruoyi-ui/src/views/system/supplies/indexupload.vue
ruoyi-ui/src/views/system/supplies/indexupload.vue
+109
-139
ruoyi-ui/src/views/system/supplies/upload.vue
ruoyi-ui/src/views/system/supplies/upload.vue
+6
-3
sql/hbghgz_sc_20230720.sql
sql/hbghgz_sc_20230720.sql
+0
-108176
No files found.
ruoyi-ui/package.json
View file @
1aac41fc
...
...
@@ -36,16 +36,21 @@
"url"
:
"https://gitee.com/y_project/RuoYi-Vue.git"
},
"dependencies"
:
{
"@riophae/vue-treeselect"
:
"0.4.0"
,
"@vue/cli-plugin-babel"
:
"4.4.6"
,
"@vue/cli-plugin-eslint"
:
"4.4.6"
,
"@vue/cli-service"
:
"4.4.6"
,
"@riophae/vue-treeselect"
:
"0.4.0"
,
"af-table-column"
:
"^1.0.3"
,
"axios"
:
"0.21.0"
,
"babel-eslint"
:
"10.1.0"
,
"chalk"
:
"4.1.0"
,
"clipboard"
:
"2.0.6"
,
"connect"
:
"3.6.6"
,
"core-js"
:
"3.8.1"
,
"echarts"
:
"4.9.0"
,
"element-ui"
:
"2.15.0"
,
"eslint"
:
"7.15.0"
,
"eslint-plugin-vue"
:
"7.2.0"
,
"exceljs"
:
"^4.3.0"
,
"file-saver"
:
"^2.0.5"
,
"fuse.js"
:
"6.4.3"
,
...
...
@@ -54,45 +59,44 @@
"js-beautify"
:
"1.13.0"
,
"js-cookie"
:
"2.2.1"
,
"jsencrypt"
:
"3.0.0-rc.1"
,
"lint-staged"
:
"10.5.3"
,
"luckyexcel"
:
"^1.0.1"
,
"nprogress"
:
"0.2.0"
,
"quill"
:
"1.3.7"
,
"runjs"
:
"4.4.2"
,
"sass"
:
"1.32.0"
,
"sass-loader"
:
"10.1.0"
,
"screenfull"
:
"5.0.2"
,
"script-ext-html-webpack-plugin"
:
"2.1.5"
,
"scriptjs"
:
"^2.5.9"
,
"sortablejs"
:
"1.10.2"
,
"svg-sprite-loader"
:
"5.1.1"
,
"uuid"
:
"^9.0.0"
,
"vue"
:
"2.6.12"
,
"vue-append"
:
"^2.2.0"
,
"vue-count-to"
:
"1.0.13"
,
"vue-cropper"
:
"0.5.5"
,
"vue-router"
:
"3.4.9"
,
"vue-template-compiler"
:
"2.6.12"
,
"vuedraggable"
:
"2.24.3"
,
"vuex"
:
"3.6.0"
,
"xlsx"
:
"^0.17.5"
,
"babel-eslint"
:
"10.1.0"
,
"chalk"
:
"4.1.0"
,
"connect"
:
"3.6.6"
,
"eslint"
:
"7.15.0"
,
"eslint-plugin-vue"
:
"7.2.0"
,
"lint-staged"
:
"10.5.3"
,
"runjs"
:
"4.4.2"
,
"sass"
:
"1.32.0"
,
"sass-loader"
:
"10.1.0"
,
"script-ext-html-webpack-plugin"
:
"2.1.5"
,
"svg-sprite-loader"
:
"5.1.1"
,
"vue-template-compiler"
:
"2.6.12"
"xlsx"
:
"^0.17.5"
},
"devDependencies"
:
{
"@riophae/vue-treeselect"
:
"0.4.0"
,
"@vue/cli-plugin-babel"
:
"4.4.6"
,
"@vue/cli-plugin-eslint"
:
"4.4.6"
,
"@vue/cli-service"
:
"4.4.6"
,
"@riophae/vue-treeselect"
:
"0.4.0"
,
"af-table-column"
:
"^1.0.3"
,
"axios"
:
"0.21.0"
,
"babel-eslint"
:
"10.1.0"
,
"chalk"
:
"4.1.0"
,
"clipboard"
:
"2.0.6"
,
"connect"
:
"3.6.6"
,
"core-js"
:
"3.8.1"
,
"echarts"
:
"4.9.0"
,
"element-ui"
:
"2.15.0"
,
"eslint"
:
"7.15.0"
,
"eslint-plugin-vue"
:
"7.2.0"
,
"exceljs"
:
"^4.3.0"
,
"file-saver"
:
"^2.0.5"
,
"fuse.js"
:
"6.4.3"
,
...
...
@@ -101,33 +105,27 @@
"js-beautify"
:
"1.13.0"
,
"js-cookie"
:
"2.2.1"
,
"jsencrypt"
:
"3.0.0-rc.1"
,
"lint-staged"
:
"10.5.3"
,
"luckyexcel"
:
"^1.0.1"
,
"nprogress"
:
"0.2.0"
,
"quill"
:
"1.3.7"
,
"runjs"
:
"4.4.2"
,
"sass"
:
"1.32.0"
,
"sass-loader"
:
"10.1.0"
,
"screenfull"
:
"5.0.2"
,
"script-ext-html-webpack-plugin"
:
"2.1.5"
,
"scriptjs"
:
"^2.5.9"
,
"sortablejs"
:
"1.10.2"
,
"sortablejs"
:
"^1.10.2"
,
"svg-sprite-loader"
:
"5.1.1"
,
"vue"
:
"2.6.12"
,
"vue-append"
:
"^2.2.0"
,
"vue-count-to"
:
"1.0.13"
,
"vue-cropper"
:
"0.5.5"
,
"vue-router"
:
"3.4.9"
,
"vue-template-compiler"
:
"2.6.12"
,
"vuedraggable"
:
"2.24.3"
,
"vuex"
:
"3.6.0"
,
"xlsx"
:
"^0.17.5"
,
"babel-eslint"
:
"10.1.0"
,
"chalk"
:
"4.1.0"
,
"connect"
:
"3.6.6"
,
"eslint"
:
"7.15.0"
,
"eslint-plugin-vue"
:
"7.2.0"
,
"lint-staged"
:
"10.5.3"
,
"runjs"
:
"4.4.2"
,
"sass"
:
"1.32.0"
,
"sass-loader"
:
"10.1.0"
,
"script-ext-html-webpack-plugin"
:
"2.1.5"
,
"svg-sprite-loader"
:
"5.1.1"
,
"vue-template-compiler"
:
"2.6.12"
"xlsx"
:
"^0.17.5"
},
"engines"
:
{
"node"
:
">=8.9"
,
...
...
ruoyi-ui/src/views/index.vue
View file @
1aac41fc
<
template
>
<div
class=
"index"
>
<!--
<div
class=
"el-login-header"
>
<img
src=
"../assets/logo/logo.png"
width=
"80"
height=
"80"
style=
"vertical-align: middle;margin-bottom: 20px;"
>
<span
class=
"text"
>
开滦(集团)有限责任公司
</span>
</div>
-->
<div
class=
"container"
>
<div
class=
"main-content"
>
</div>
<div
class=
"main-footer"
>
<span>
开滦集团财务共享中心
</span>
<span
class=
"split"
>
|
</span>
<span>
河北天翼科贸发展有限公司
</span>
</div>
</div>
<!-- 开滦(集团)财务共享中心&河北天翼科贸发展有限公司-->
</
template
>
<
script
>
...
...
@@ -28,21 +34,102 @@ export default {
}
}
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
>
.index
{
<
style
scoped
>
.container
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
height
:
855px
;
flex-direction
:
column
;
height
:
calc
(
100vh
-
84px
);
background-image
:
url("../assets/images/login-background2.jpg")
;
background-position
:
center
;
background-size
:
cover
;
}
.title
{
margin
:
0px
auto
30px
auto
;
text-align
:
center
;
color
:
#707070
;
}
}
.main-footer
{
position
:
absolute
;
left
:
0
;
bottom
:
0
;
right
:
0
;
z-index
:
10
;
color
:
#fff
;
font-size
:
18px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
padding
:
15px
;
}
.main-footer
.split
{
padding
:
0
10px
;
font-size
:
12px
;
}
</
style
>
<!--<template>-->
<!-- <div class="container">-->
<!-- <div class="index">-->
<!-- </div>-->
<!-- <div class="input" style="position: absolute; bottom: 0;">-->
<!-- 开发中心-->
<!-- </div>-->
<!-- </div>-->
<!--<!– 开滦(集团)财务共享中心&河北天翼科贸发展有限公司–>-->
<!--</template>-->
<!--<script>-->
<!--export default {-->
<!-- name: 'Index',-->
<!-- components: {-->
<!-- },-->
<!-- data() {-->
<!-- return {-->
<!-- }-->
<!-- },-->
<!-- methods: {-->
<!-- }-->
<!--}-->
<!--</script>-->
<!--<style rel="stylesheet/scss" lang="scss">-->
<!-- .index {-->
<!-- display: flex;-->
<!-- justify-content: center;-->
<!-- align-items: center;-->
<!-- flex: 9;-->
<!-- height: 90vh;-->
<!-- background-image: url("../assets/images/login-background2.jpg");-->
<!-- background-position: center;-->
<!-- background-size: cover;-->
<!-- }-->
<!-- .title {-->
<!-- margin: 0px auto 30px auto;-->
<!-- text-align: center;-->
<!-- color: #707070;-->
<!-- }-->
<!-- .input{-->
<!-- flex: 1;-->
<!-- font-size: 30px;-->
<!-- color: #1b1b19;-->
<!-- }-->
<!-- .container {-->
<!-- display: flex;-->
<!-- flex-direction: column;-->
<!-- height: 100vh;-->
<!-- }-->
<!--</style>-->
ruoyi-ui/src/views/system/supplies/index.vue
View file @
1aac41fc
...
...
@@ -20,7 +20,6 @@
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
...
...
@@ -42,17 +41,22 @@
:limit=
"1"
:file-list=
"fileList"
:disabled=
"disableNextButton"
:show-file-list=
false
>
<el-button
plain
size=
"mini"
icon=
"el-icon-download"
type=
"primary"
:disabled=
"disableNextButton"
>
导入
</el-button>
</el-upload>
</el-col>
</el-row>
<!-- luckysheet容器 -->
<div
id=
"luckysheet"
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%;
left: 0px; top: 110px; height: 1000px
; z-index: 0"
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%;
height:78vh
; z-index: 0"
>
</div>
<div
v-if=
"showMask"
class=
"mask"
>
<div
class=
"loading-spinner"
></div>
</div>
</div>
</
template
>
...
...
@@ -77,6 +81,7 @@ export default {
name
:
"
Mymodule
"
,
data
()
{
return
{
showMask
:
false
,
uuid
:
''
,
//弹出页面的表名
from_name
:
""
,
...
...
@@ -245,7 +250,7 @@ export default {
/** 导入事件*/
async
handleFileChange
(
evt
)
{
let
exx
;
this
.
showMask
=
true
;
const
cons
=
new
Promise
((
resolve
,
reject
)
=>
{
LuckyExcel
.
transformExcelToLucky
(
evt
,
exportJson
=>
{
exx
=
exportJson
;
...
...
@@ -257,7 +262,10 @@ export default {
const
exportJson
=
await
cons
;
await
this
.
summary
(
exportJson
);
console
.
log
(
'
summary 执行完毕
'
);
// 导入完成后关闭遮罩层
this
.
showMask
=
false
;
this
.
submit
(
exportJson
);
}
catch
(
Error
)
{
this
.
$message
({
message
:
Error
.
message
,
...
...
@@ -1056,4 +1064,34 @@ function generateUUID() {
return
array
.
join
(
"
-
"
);
}
</
script
>
<
style
>
.mask
{
position
:
fixed
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
background-color
:
rgba
(
0
,
0
,
0
,
0.5
);
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
.loading-spinner
{
/* 添加你的加载动画样式 */
width
:
40px
;
height
:
40px
;
border-radius
:
50%
;
border
:
4px
solid
#f3f3f3
;
border-top
:
4px
solid
#3498db
;
animation
:
spin
1s
linear
infinite
;
}
@keyframes
spin
{
0
%
{
transform
:
rotate
(
0deg
);
}
100
%
{
transform
:
rotate
(
360deg
);
}
}
</
style
>
ruoyi-ui/src/views/system/supplies/indexupload.vue
View file @
1aac41fc
...
...
@@ -11,7 +11,7 @@
maxlength=
"8"
/>
</el-form-item>
<!--
<el-form-item>
<!--
<el-form-item>
<el-checkbox
v-model=
"zero"
>
是否比较0或空
</el-checkbox>
</el-form-item>
-->
<el-form-item>
...
...
@@ -60,18 +60,15 @@
>
导出
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
icon=
"el-icon-s-opportunity
"
size=
"mini"
@
click=
"addToMap"
>
生成
</el-button>
<el-button
icon=
"el-icon-s-opportunity"
size=
"mini"
@
click=
"addToMap"
>
生成
</el-button>
</el-col>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
class=
"right-float"
>
重置
</el-button>
</el-row>
<!-- luckysheet容器 -->
<div
id=
"luckysheet"
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%;left: 0px; top: 105px; height: 1000px; z-index: 0"
>
</div>
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%;left: 0px; top: 105px; height: 75vh; z-index: 0"
></div>
</div>
</
template
>
...
...
@@ -247,10 +244,12 @@ export default {
for
(
let
i
=
0
;
i
<
value
.
length
;
i
++
){
let
row
=
value
[
i
][
0
]
-
1
,
cell
=
this
.
stringTonum
(
value
[
i
][
1
])
-
1
;
//let row=value[i][0]-1,cell=value[i][1]-1;
let
sd
=
luckysheet
.
getCellValue
(
row
,
cell
,{
type
:
"
ps
"
});
if
(
sd
===
null
){
luckysheet
.
setCellValue
(
row
,
cell
,
{
bg
:
"
#e85f5f
"
})
luckysheet
.
setCellValue
(
row
,
cell
,
{
let
sd
=
luckysheet
.
getCellValue
(
row
,
cell
,{
type
:
"
bg
"
});
//用批注进行比较的时候把下面的!==判断去掉
//let sd=luckysheet.getCellValue(row,cell,{type:"ps"});
if
(
sd
===
null
||
sd
!==
"
#e85f61
"
){
luckysheet
.
setCellValue
(
row
,
cell
,
{
bg
:
"
#e85f61
"
})
/* luckysheet.setCellValue(row, cell, {
ps: { //批注
"left": 92, //批注框左边距
"top": 10, //批注框上边距
...
...
@@ -259,11 +258,11 @@ export default {
"value": key+"表有误", //批准内容
"isshow": false //批注框为显示状态
}
})
})*/
maper
.
set
(
"
(
"
+
(
row
+
1
)
+
"
,
"
+
value
[
i
][
1
]
+
"
)
"
,
1
);
}
else
{
let
sd
=
luckysheet
.
getCellValue
(
row
,
cell
,{
type
:
"
ps
"
}).
value
;
luckysheet
.
setCellValue
(
row
,
cell
,
{
//
let sd=luckysheet.getCellValue(row,cell,{type:"ps"}).value;
/*
luckysheet.setCellValue(row, cell, {
ps: { //批注
"left": 92, //批注框左边距
"top": 10, //批注框上边距
...
...
@@ -272,29 +271,12 @@ export default {
"value": sd+'\n;'+key+"表有误", //批准内容
"isshow": false //批注框为显示状态
}
})
})
*/
maper
.
set
(
"
(
"
+
(
row
+
1
)
+
"
,
"
+
value
[
i
][
1
]
+
"
)
"
,
maper
.
get
(
"
(
"
+
(
row
+
1
)
+
"
,
"
+
value
[
i
][
1
]
+
"
)
"
)
+
1
);
}
}
})
/*let num=luckysheet.getSheet().data[0].length;
let data=luckysheet.getSheet().data;
for(let j=0;j<map.size;j++){
let cell;
for(let i=0;i<num;i++){
if(data[0][i]==null){
cell=i;
break;
}
}
let dfs=map.get(2);
let a=value.join("==");
luckysheet.setCellValue(j,cell,map);
luckysheet.setCellValue(j,cell+1 ,);
}*/
let
row
;
let
num
=
luckysheet
.
getSheet
().
data
.
length
;
let
data
=
luckysheet
.
getSheet
().
data
;
...
...
@@ -305,7 +287,11 @@ export default {
}
}
//生成多少条数据添加多少行
for
(
let
i
=
0
;
i
<
maper
.
size
;
i
++
){
let
asd
=
maper
.
size
+
map
.
size
;
if
(
row
+
asd
>=
num
){
for
(
let
i
=
0
;
i
<=
row
+
asd
-
num
;
i
++
){
luckysheet
.
insertRow
(
row
+
1
);
}
luckysheet
.
insertRow
(
row
+
1
);
}
row
=
row
+
1
;
...
...
@@ -326,24 +312,6 @@ export default {
luckysheet
.
setCellValue
(
row
+
k
,
1
,
froms
[
i
][
1
]);
k
++
;
}
/*let k=0;
map.forEach((value,key)=>{
let num=luckysheet.getSheet().data[0].length;
let data=luckysheet.getSheet().data;
let cell;
for(let i=0;i<num;i++){
if(data[0][i]==null){
cell=i;
break;
}
}
let a=value.join("==");
luckysheet.setCellValue(k,cell,key);
luckysheet.setCellValue(k,cell+1 ,a);
k++
})
*/
},
handleFileChange1
(
evt
)
{
if
(
this
.
row
===
""
)
{
...
...
@@ -376,11 +344,13 @@ export default {
let
as
=
0
;
let
d1
=
window
.
luckysheet
.
transToData
(
ddd
.
celldata
);
let
d2
=
window
.
luckysheet
.
transToData
(
exportJson
.
sheets
[
0
].
celldata
);
let
r1
=
d1
.
length
,
r2
=
d2
.
length
,
c1
=
d1
[
0
].
length
,
c2
=
d2
[
0
].
length
;
let
row
=
(
r1
<=
r2
)?
r1
:
r2
;
let
cell
=
(
c1
<=
c2
)?
c1
:
c2
;
let
array
=
[];
let
r
=
this
.
row
-
1
;
try
{
for
(
let
i
=
r
;
i
<
d1
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<=
d1
[
0
].
length
;
j
++
)
{
for
(
let
i
=
r
;
i
<
row
;
i
++
)
{
for
(
let
j
=
0
;
j
<
cell
;
j
++
)
{
//第一个表的单元格为null直接跳出
if
(
d1
[
i
][
j
]
==
null
){
continue
...
...
@@ -401,12 +371,20 @@ export default {
/*if((typeof(d1[i][j].v)=="string" && d2[i][j].v==undefined)){
continue
}*/
if
((
isNaN
(
d1
[
i
][
j
].
v
)
&&
d2
[
i
][
j
].
v
==
undefined
)){
//第一个表为合并单元格 且第二个内没有值
if
(
d1
[
i
][
j
].
mc
!=
undefined
&&
d2
[
i
][
j
].
v
==
undefined
){
continue
}
//第二个表为合并单元格 且第一个内没有值
if
(
d2
[
i
][
j
].
mc
!=
undefined
&&
d1
[
i
][
j
].
v
==
undefined
){
continue
}
if
((
isNaN
(
d1
[
i
][
j
].
v
)
&&
d2
[
i
][
j
].
v
==
undefined
)){
}
// 第二个表内数据为string型 且 第一个表只有样式内部为空
if
(
isNaN
(
d2
[
i
][
j
].
v
)
&&
d1
[
i
][
j
].
v
==
undefined
){
continue
}
// 没有选只比较数值 且 第一个表内数据为string型 且 第二个表内数据位string型
if
(
this
.
numm
!=
false
&&
(
isNaN
(
d1
[
i
][
j
].
v
)
&&
isNaN
(
d2
[
i
][
j
].
v
))){
...
...
@@ -459,15 +437,8 @@ export default {
type
:
"
success
"
});
}
}
catch
(
err
){
this
.
$message
({
message
:
"
导入失败,导入文件与对比文件有所不匹
"
,
type
:
"
error
"
});
}
}
)
})
},
/** 导出设置 */
handleExport
:
debounce
(
function
()
{
...
...
@@ -521,4 +492,3 @@ function debounce(func, delay) {
};
}
</
script
>
ruoyi-ui/src/views/system/supplies/upload.vue
View file @
1aac41fc
...
...
@@ -53,7 +53,7 @@
<!-- luckysheet容器 -->
<div
id=
"luckysheet"
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%;
left: 0px; top: 60px; height: 1000px
; z-index: 0"
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%;
height: 78vh
; z-index: 0"
>
</div>
...
...
@@ -244,9 +244,12 @@ export default {
let
as
=
0
;
let
d1
=
window
.
luckysheet
.
transToData
(
ddd
.
celldata
);
let
d2
=
window
.
luckysheet
.
transToData
(
exportJson
.
sheets
[
0
].
celldata
);
let
r1
=
d1
.
length
,
r2
=
d2
.
length
,
c1
=
d1
[
0
].
length
,
c2
=
d2
[
0
].
length
;
let
row
=
(
r1
<=
r2
)?
r1
:
r2
;
let
cell
=
(
c1
<=
c2
)?
c1
:
c2
;
try
{
for
(
let
i
=
0
;
i
<
d1
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
=
d1
[
0
].
length
;
j
++
)
{
for
(
let
i
=
0
;
i
<
row
;
i
++
)
{
for
(
let
j
=
0
;
j
<
cell
;
j
++
)
{
//第一个表的单元格为null直接跳出
if
(
d1
[
i
][
j
]
==
null
){
continue
...
...
sql/hbghgz_sc_20230720.sql
deleted
100644 → 0
View file @
6589c838
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment