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
acae3d48
Commit
acae3d48
authored
Jan 31, 2024
by
位宇华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ui 代码提交
parent
3b91e088
Changes
30
Show whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
4471 additions
and
3852 deletions
+4471
-3852
ruoyi-ui/package.json
ruoyi-ui/package.json
+8
-7
ruoyi-ui/public/exportExcel.js
ruoyi-ui/public/exportExcel.js
+310
-310
ruoyi-ui/public/index.html
ruoyi-ui/public/index.html
+0
-7
ruoyi-ui/public/luckysheet.esm.js
ruoyi-ui/public/luckysheet.esm.js
+2
-2
ruoyi-ui/src/api/Actsupplies/cleaning_rule.js
ruoyi-ui/src/api/Actsupplies/cleaning_rule.js
+7
-6
ruoyi-ui/src/api/ruoyi-myLuckyexcel/myluckyexcel.js
ruoyi-ui/src/api/ruoyi-myLuckyexcel/myluckyexcel.js
+104
-104
ruoyi-ui/src/api/system/historydata.js
ruoyi-ui/src/api/system/historydata.js
+44
-47
ruoyi-ui/src/components/PanThumb/index.vue
ruoyi-ui/src/components/PanThumb/index.vue
+1
-1
ruoyi-ui/src/store/index.js
ruoyi-ui/src/store/index.js
+3
-1
ruoyi-ui/src/store/modules/userInfo.js
ruoyi-ui/src/store/modules/userInfo.js
+23
-0
ruoyi-ui/src/utils/request.js
ruoyi-ui/src/utils/request.js
+1
-1
ruoyi-ui/src/views/ActSuppliesConvert/convert/index.vue
ruoyi-ui/src/views/ActSuppliesConvert/convert/index.vue
+1
-27
ruoyi-ui/src/views/ActSuppliesConvert/convert/indexConvert.vue
...-ui/src/views/ActSuppliesConvert/convert/indexConvert.vue
+0
-1
ruoyi-ui/src/views/activiti/definition/index.vue
ruoyi-ui/src/views/activiti/definition/index.vue
+0
-17
ruoyi-ui/src/views/example/demo/demoForm.vue
ruoyi-ui/src/views/example/demo/demoForm.vue
+0
-1
ruoyi-ui/src/views/index.vue
ruoyi-ui/src/views/index.vue
+9
-72
ruoyi-ui/src/views/login.vue
ruoyi-ui/src/views/login.vue
+2
-2
ruoyi-ui/src/views/system/ActClassification/index.vue
ruoyi-ui/src/views/system/ActClassification/index.vue
+244
-255
ruoyi-ui/src/views/system/ActSuppliesDetails/ActSuppliesDetails/index.vue
...ws/system/ActSuppliesDetails/ActSuppliesDetails/index.vue
+1
-1
ruoyi-ui/src/views/system/Actsupplies/Actsupplies/index.vue
ruoyi-ui/src/views/system/Actsupplies/Actsupplies/index.vue
+1
-1
ruoyi-ui/src/views/system/historydata/index.vue
ruoyi-ui/src/views/system/historydata/index.vue
+18
-26
ruoyi-ui/src/views/system/supplies/index.vue
ruoyi-ui/src/views/system/supplies/index.vue
+989
-1141
ruoyi-ui/src/views/system/supplies/index_template.vue
ruoyi-ui/src/views/system/supplies/index_template.vue
+4
-2
ruoyi-ui/src/views/system/supplies/index_vue.vue
ruoyi-ui/src/views/system/supplies/index_vue.vue
+1632
-860
ruoyi-ui/src/views/system/supplies/indexupload.vue
ruoyi-ui/src/views/system/supplies/indexupload.vue
+1
-0
ruoyi-ui/src/views/system/supplies/viewuploads2.vue
ruoyi-ui/src/views/system/supplies/viewuploads2.vue
+365
-0
ruoyi-ui/src/views/system/suppliesrole/index.vue
ruoyi-ui/src/views/system/suppliesrole/index.vue
+243
-58
ruoyi-ui/src/views/system/suppliesroledetail/index(1).vue
ruoyi-ui/src/views/system/suppliesroledetail/index(1).vue
+0
-551
ruoyi-ui/src/views/system/suppliesroledetail/index.vue
ruoyi-ui/src/views/system/suppliesroledetail/index.vue
+456
-348
ruoyi-ui/vue.config.js
ruoyi-ui/vue.config.js
+2
-3
No files found.
ruoyi-ui/package.json
View file @
acae3d48
...
@@ -61,6 +61,7 @@
...
@@ -61,6 +61,7 @@
"jsencrypt"
:
"3.0.0-rc.1"
,
"jsencrypt"
:
"3.0.0-rc.1"
,
"lint-staged"
:
"10.5.3"
,
"lint-staged"
:
"10.5.3"
,
"luckyexcel"
:
"^1.0.1"
,
"luckyexcel"
:
"^1.0.1"
,
"moment"
:
"^2.30.1"
,
"nprogress"
:
"0.2.0"
,
"nprogress"
:
"0.2.0"
,
"quill"
:
"1.3.7"
,
"quill"
:
"1.3.7"
,
"runjs"
:
"4.4.2"
,
"runjs"
:
"4.4.2"
,
...
...
ruoyi-ui/public/exportExcel.js
View file @
acae3d48
ruoyi-ui/public/index.html
View file @
acae3d48
...
@@ -17,13 +17,6 @@
...
@@ -17,13 +17,6 @@
<script
src=
"/expendPlugins/chart/chartmix.umd.min.js"
></script>
<script
src=
"/expendPlugins/chart/chartmix.umd.min.js"
></script>
<!--<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/plugins/css/pluginsCss.css' />
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/plugins/plugins.css' />
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/css/luckysheet.css' />
<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/assets/iconfont/iconfont.css' />
<script src="./luckysheet/plugins/js/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/plugins/js/plugin.js"></script>
<script src="https://cdn.jsdelivr.net/npm/luckysheet@latest/dist/luckysheet.umd.js"></script>-->
<title><
%=
webpackConfig
.
name
%
></title>
<title><
%=
webpackConfig
.
name
%
></title>
<style>
<style>
...
...
ruoyi-ui/public/luckysheet.esm.js
View file @
acae3d48
This source diff could not be displayed because it is too large. You can
view the blob
instead.
ruoyi-ui/src/api/Actsupplies/cleaning_rule.js
View file @
acae3d48
...
@@ -8,8 +8,7 @@ export function selectActSuppliesHistorydata(tylkStatus) {
...
@@ -8,8 +8,7 @@ export function selectActSuppliesHistorydata(tylkStatus) {
})
})
}
}
//查询通用凭证单表数据
// 查询通用凭证单表数据
export
function
selectActSuppliesHistorydataAcc
(
tylkStatus
)
{
export
function
selectActSuppliesHistorydataAcc
(
tylkStatus
)
{
return
request
({
return
request
({
url
:
'
/system/cleaningrule/queryAllAcc/
'
+
tylkStatus
,
url
:
'
/system/cleaningrule/queryAllAcc/
'
+
tylkStatus
,
...
@@ -50,6 +49,8 @@ export function selectActSuppliesHistorydataAcc(tylkStatus) {
...
@@ -50,6 +49,8 @@ export function selectActSuppliesHistorydataAcc(tylkStatus) {
...
...
ruoyi-ui/src/api/ruoyi-myLuckyexcel/myluckyexcel.js
View file @
acae3d48
ruoyi-ui/src/api/system/historydata.js
View file @
acae3d48
...
@@ -56,7 +56,7 @@ export function exportHistorydata(query) {
...
@@ -56,7 +56,7 @@ export function exportHistorydata(query) {
// 新增 历史数据
// 新增 历史数据
export
function
addInsert
(
data
)
{
export
function
addInsert
(
data
)
{
return
request
({
return
request
({
url
:
'
/system/historydata/addInser
t
'
,
url
:
'
/system/historydata/addInsertAccoun
t
'
,
method
:
'
post
'
,
method
:
'
post
'
,
data
:
data
data
:
data
})
})
...
@@ -71,50 +71,47 @@ export function addInsert1(data) {
...
@@ -71,50 +71,47 @@ export function addInsert1(data) {
})
})
}
}
//
数据清洗 历史数据
//
清洗通用凭证单
export
function
addInsert
2
(
data
)
{
export
function
addInsert
Account1
(
data
)
{
return
request
({
return
request
({
url
:
'
/system/historydata/addInsert2
'
,
url
:
'
/system/historydata/addInsertAccount1
'
,
method
:
'
post
'
,
method
:
'
post
'
,
data
:
data
data
:
data
})
})
}
}
//清洗通用凭证单
// 数据清洗 历史数据
export
function
addInsertAccount2
(
data
)
{
export
function
addInsertConvert1
(
data
)
{
console
.
log
(
data
,
'
我发送的数据
'
)
return
request
({
return
request
({
url
:
'
/system/historydata/addInsertConvert1
'
,
url
:
'
/system/historydata/addInsertAccount2
'
,
method
:
'
post
'
,
method
:
'
post
'
,
data
:
data
data
:
data
})
})
}
}
// 数据清洗 历史数据
// 数据清洗 历史数据
export
function
addInsert
Convert
2
(
data
)
{
export
function
addInsert2
(
data
)
{
return
request
({
return
request
({
url
:
'
/system/historydata/addInsertConv
ert2
'
,
url
:
'
/system/historydata/addIns
ert2
'
,
method
:
'
post
'
,
method
:
'
post
'
,
data
:
data
data
:
data
})
})
}
}
// 数据清洗 历史数据
export
function
addInsertConvert1
(
data
)
{
//清洗通用凭证单
export
function
addInsertAccount1
(
data
)
{
return
request
({
return
request
({
url
:
'
/system/historydata/addInsertAccoun
t1
'
,
url
:
'
/system/historydata/addInsertConver
t1
'
,
method
:
'
post
'
,
method
:
'
post
'
,
data
:
data
data
:
data
})
})
}
}
//清洗通用凭证单
export
function
addInsertAccount2
(
data
)
{
// 数据清洗 历史数据
export
function
addInsertConvert2
(
data
)
{
return
request
({
return
request
({
url
:
'
/system/historydata/addInsertAccoun
t2
'
,
url
:
'
/system/historydata/addInsertConver
t2
'
,
method
:
'
post
'
,
method
:
'
post
'
,
data
:
data
data
:
data
})
})
}
}
ruoyi-ui/src/components/PanThumb/index.vue
View file @
acae3d48
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<slot
/>
<slot
/>
</div>
</div>
</div>
</div>
<!--
eslint-disable-next-line -->
eslint-disable-next-line -->
<div
:style=
"
{backgroundImage: `url(${image})`}" class="pan-thumb">
</div>
<div
:style=
"
{backgroundImage: `url(${image})`}" class="pan-thumb">
</div>
</div>
</div>
</
template
>
</
template
>
...
...
ruoyi-ui/src/store/index.js
View file @
acae3d48
...
@@ -6,6 +6,7 @@ import tagsView from './modules/tagsView'
...
@@ -6,6 +6,7 @@ import tagsView from './modules/tagsView'
import
permission
from
'
./modules/permission
'
import
permission
from
'
./modules/permission
'
import
settings
from
'
./modules/settings
'
import
settings
from
'
./modules/settings
'
import
getters
from
'
./getters
'
import
getters
from
'
./getters
'
import
userInfo
from
'
./modules/userInfo
'
Vue
.
use
(
Vuex
)
Vue
.
use
(
Vuex
)
...
@@ -15,7 +16,8 @@ const store = new Vuex.Store({
...
@@ -15,7 +16,8 @@ const store = new Vuex.Store({
user
,
user
,
tagsView
,
tagsView
,
permission
,
permission
,
settings
settings
,
userInfo
},
},
getters
getters
})
})
...
...
ruoyi-ui/src/store/modules/userInfo.js
0 → 100644
View file @
acae3d48
const
state
=
{
nickName
:
null
}
const
mutations
=
{
SET_NICKNAME
(
state
,
nickname
)
{
state
.
nickName
=
nickname
}
}
const
actions
=
{
setNickName
({
commit
},
nickname
)
{
commit
(
'
SET_NICKNAME
'
,
nickname
)
}
}
export
default
{
namespaced
:
true
,
state
,
mutations
,
actions
}
\ No newline at end of file
ruoyi-ui/src/utils/request.js
View file @
acae3d48
...
@@ -10,7 +10,7 @@ const service = axios.create({
...
@@ -10,7 +10,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项,表示请求URL公共部分
// axios中请求配置有baseURL选项,表示请求URL公共部分
baseURL
:
process
.
env
.
VUE_APP_BASE_API
,
baseURL
:
process
.
env
.
VUE_APP_BASE_API
,
// 超时
// 超时
timeout
:
1000000000
timeout
:
1000000000
0000
})
})
// request拦截器
// request拦截器
service
.
interceptors
.
request
.
use
(
config
=>
{
service
.
interceptors
.
request
.
use
(
config
=>
{
...
...
ruoyi-ui/src/views/ActSuppliesConvert/convert/index.vue
View file @
acae3d48
...
@@ -111,30 +111,6 @@
...
@@ -111,30 +111,6 @@
@
pagination=
"getList"
@
pagination=
"getList"
/>
/>
<!-- <!– 添加或修改通用规则对话框 –>-->
<!-- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>-->
<!-- <el-form ref="form" :model="form" :rules="rules" label-width="80px">-->
<!-- <el-form-item label="模板id" prop="tempId">-->
<!-- <el-input v-model="form.tempId" placeholder="请输入模板id" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="规则名称" prop="name">-->
<!-- <el-input v-model="form.name" placeholder="请输入规则名称" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="规则内容">-->
<!-- <editor v-model="form.content" :min-height="192"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="状态">-->
<!-- <el-radio-group v-model="form.status">-->
<!-- <el-radio label="1">请选择字典生成</el-radio>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="submitForm">确 定</el-button>-->
<!-- <el-button @click="cancel">取 消</el-button>-->
<!-- </div>-->
<!-- </el-dialog>-->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"1300px"
append-to-body
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"1300px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"所属模板"
prop=
"roleId"
>
<el-form-item
label=
"所属模板"
prop=
"roleId"
>
...
@@ -159,10 +135,9 @@
...
@@ -159,10 +135,9 @@
</el-col>
</el-col>
</el-row>
</el-row>
<!-- 生成输入框 -->
<!-- 生成输入框 -->
<div
v-for=
"index in instea"
:key=
"index"
v-if=
""
>
<div
v-for=
"index in instea"
:key=
"index"
>
<el-form-item
label=
"导入表行/列/单元格选择"
prop=
"detailMH"
class=
"form-item-inline"
>
<el-form-item
label=
"导入表行/列/单元格选择"
prop=
"detailMH"
class=
"form-item-inline"
>
<!-- <el-input-number size="medium" v-model="ZE[index-1]" :min="1" :step="1">1</el-input-number>-->
<el-select
v-model=
"ZE[index-1]"
filterable
placeholder=
"请选择运算方法"
>
<el-select
v-model=
"ZE[index-1]"
filterable
placeholder=
"请选择运算方法"
>
<el-option
<el-option
v-for=
"option in optionsOne"
v-for=
"option in optionsOne"
...
@@ -183,7 +158,6 @@
...
@@ -183,7 +158,6 @@
</el-form-item>
</el-form-item>
<el-form-item
label=
"模板表行/列/单元格选择"
prop=
"detailMH"
class=
"form-item-inline"
>
<el-form-item
label=
"模板表行/列/单元格选择"
prop=
"detailMH"
class=
"form-item-inline"
>
<!-- <el-input-number size="medium" v-model="ZT[index-1]" :min="1" :step="1">1</el-input-number>-->
<el-select
v-model=
"ZT[index-1]"
filterable
placeholder=
"请选择运算方法"
>
<el-select
v-model=
"ZT[index-1]"
filterable
placeholder=
"请选择运算方法"
>
<el-option
<el-option
v-for=
"option in optionsOne"
v-for=
"option in optionsOne"
...
...
ruoyi-ui/src/views/ActSuppliesConvert/convert/indexConvert.vue
View file @
acae3d48
...
@@ -4,7 +4,6 @@
...
@@ -4,7 +4,6 @@
<el-form-item
label=
"模板"
prop=
"name"
>
<el-form-item
label=
"模板"
prop=
"name"
>
<el-select
v-model=
"selectedOption"
ref=
"mySelect"
size=
"mini"
@
change=
"handleOptionChange"
filterable
<el-select
v-model=
"selectedOption"
ref=
"mySelect"
size=
"mini"
@
change=
"handleOptionChange"
filterable
placeholder=
"请选择您要查看的模板"
>
placeholder=
"请选择您要查看的模板"
>
<!--
<el-option
label=
"自设的模板名"
value=
"使用空白模板"
></el-option>
-->
<el-option
<el-option
v-for=
"item in depss"
:key=
"item.id"
:label=
"item.templateName"
:value=
"item.id"
>
v-for=
"item in depss"
:key=
"item.id"
:label=
"item.templateName"
:value=
"item.id"
>
</el-option>
</el-option>
...
...
ruoyi-ui/src/views/activiti/definition/index.vue
View file @
acae3d48
...
@@ -59,23 +59,6 @@
...
@@ -59,23 +59,6 @@
<el-table-column
label=
"流程描述"
align=
"center"
prop=
"description"
width=
"150"
/>
<el-table-column
label=
"流程描述"
align=
"center"
prop=
"description"
width=
"150"
/>
<el-table-column
label=
"所属分类"
align=
"center"
prop=
"category"
width=
"120"
/>
<el-table-column
label=
"所属分类"
align=
"center"
prop=
"category"
width=
"120"
/>
<el-table-column
label=
"部署时间"
align=
"center"
prop=
"deploymentTime"
width=
"100"
/>
<el-table-column
label=
"部署时间"
align=
"center"
prop=
"deploymentTime"
width=
"100"
/>
<!--
<el-table-column
label=
"流程定义"
align=
"center"
prop=
"resourceName"
width=
"120"
>
<template
slot-scope=
"scope"
>
<a
:href=
"baseURL + '/activiti/definition/readResource?pdid=' + scope.row.id + '&resourceName=' + scope.row.resourceName "
target=
"_blank"
style=
"color: #409EFF;"
>
{{
scope
.
row
.
resourceName
.
substring
(
scope
.
row
.
resourceName
.
lastIndexOf
(
'
/
'
)
+
1
)
}}
</a>
</
template
>
</el-table-column>
<el-table-column
label=
"流程图"
align=
"center"
prop=
"diagramResourceName"
width=
"120"
>
<
template
slot-scope=
"scope"
>
<img
style=
"width: 100px;"
:src=
"baseURL + '/activiti/definition/readResource?pdid=' + scope.row.id + '&resourceName=' + scope.row.diagramResourceName"
/>
</
template
>
</el-table-column>
-->
<el-table-column
label=
"状态"
align=
"center"
prop=
"suspendStateName"
width=
"90"
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"suspendStateName"
width=
"90"
/>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
...
...
ruoyi-ui/src/views/example/demo/demoForm.vue
View file @
acae3d48
...
@@ -24,7 +24,6 @@
...
@@ -24,7 +24,6 @@
:readonly=
"taskName!=='调整申请'"
>
:readonly=
"taskName!=='调整申请'"
>
</el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
<!--
<el-form-item
label=
"流程实例ID"
prop=
"instanceId"
>
<el-input
v-model=
"form.instanceId"
readonly
/>
<el-input
v-model=
"form.instanceId"
readonly
/>
</el-form-item>
-->
</el-form-item>
-->
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-form-item
label=
"备注"
prop=
"remark"
>
...
...
ruoyi-ui/src/views/index.vue
View file @
acae3d48
...
@@ -16,6 +16,7 @@
...
@@ -16,6 +16,7 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getInfo
}
from
"
@/api/login
"
;
...
@@ -28,14 +29,18 @@ export default {
...
@@ -28,14 +29,18 @@ export default {
return
{
return
{
}
}
},
mounted
()
{
},
},
methods
:
{
methods
:
{
}
}
}
}
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.container
{
.container
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
height
:
calc
(
100vh
-
84px
);
height
:
calc
(
100vh
-
84px
);
...
@@ -44,7 +49,7 @@ export default {
...
@@ -44,7 +49,7 @@ export default {
background-size
:
cover
;
background-size
:
cover
;
}
}
.main-footer
{
.main-footer
{
position
:
absolute
;
position
:
absolute
;
left
:
0
;
left
:
0
;
bottom
:
0
;
bottom
:
0
;
...
@@ -58,78 +63,10 @@ export default {
...
@@ -58,78 +63,10 @@ export default {
padding
:
15px
;
padding
:
15px
;
}
}
.main-footer
.split
{
.main-footer
.split
{
padding
:
0
10px
;
padding
:
0
10px
;
font-size
:
12px
;
font-size
:
12px
;
}
}
</
style
>
</
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/login.vue
View file @
acae3d48
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"loginRules"
class=
"login-form"
>
<el-form
ref=
"loginForm"
:model=
"loginForm"
:rules=
"loginRules"
class=
"login-form"
>
<h3
class=
"title"
>
开滦采集转换系统
</h3>
<h3
class=
"title"
>
开滦采集转换系统
</h3>
<el-form-item
prop=
"username"
>
<el-form-item
prop=
"username"
>
<el-input
v-model=
"loginForm.username"
type=
"text"
auto-complete=
"off"
placeholder=
"账号"
>
<el-input
v-model=
"loginForm.username"
type=
"
b
text"
auto-complete=
"off"
placeholder=
"账号"
>
<svg-icon
slot=
"prefix"
icon-class=
"user"
class=
"el-input__icon input-icon"
/>
<svg-icon
slot=
"prefix"
icon-class=
"user"
class=
"el-input__icon input-icon"
/>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
...
...
ruoyi-ui/src/views/system/ActClassification/index.vue
View file @
acae3d48
...
@@ -88,7 +88,8 @@
...
@@ -88,7 +88,8 @@
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"所属矿"
prop=
"belongs"
>
<el-form-item
label=
"所属矿"
prop=
"belongs"
>
<el-select
v-model=
"form.sskId"
filterable
placeholder=
"请输入所属矿"
style=
"width:380px"
@
change=
"fetchOptions"
>
<el-select
v-model=
"form.sskId"
filterable
placeholder=
"请输入所属矿"
style=
"width:380px"
@
change=
"fetchOptions"
>
<el-option
v-for=
"option in miningValue"
:key=
"option.name"
:label=
"option.name"
<el-option
v-for=
"option in miningValue"
:key=
"option.name"
:label=
"option.name"
:value=
"option.id"
></el-option>
:value=
"option.id"
></el-option>
</el-select>
</el-select>
...
@@ -100,7 +101,7 @@
...
@@ -100,7 +101,7 @@
<el-option
v-for=
"items in types"
:key=
"items.id"
:label=
"items.name"
:value=
"items.id"
></el-option>
<el-option
v-for=
"items in types"
:key=
"items.id"
:label=
"items.name"
:value=
"items.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"名称"
prop=
"pid"
>
<el-form-item
label=
"名称"
prop=
"pid"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入名称"
maxlength=
"36"
/>
<el-input
v-model=
"form.name"
placeholder=
"请输入名称"
maxlength=
"36"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"所属费用来源"
prop=
"source"
v-if=
"typeid === 1"
>
<el-form-item
label=
"所属费用来源"
prop=
"source"
v-if=
"typeid === 1"
>
...
@@ -127,9 +128,9 @@
...
@@ -127,9 +128,9 @@
</template>
</template>
<
script
>
<
script
>
import
{
listActClassification
,
savePid
,
toggleEnable
,
toggleDisable
,
getActClassification
,
delActClassification
,
addActClassification
,
updateActClassification
,
exportActClassification
}
from
"
@/api/ActClassification/ActClassification
"
;
import
{
listActClassification
,
savePid
,
toggleEnable
,
toggleDisable
,
getActClassification
,
delActClassification
,
addActClassification
,
updateActClassification
,
exportActClassification
}
from
"
@/api/ActClassification/ActClassification
"
;
export
default
{
export
default
{
name
:
"
ActClassification
"
,
name
:
"
ActClassification
"
,
components
:
{
components
:
{
},
},
...
@@ -138,7 +139,7 @@
...
@@ -138,7 +139,7 @@
miningValue
:
[
miningValue
:
[
{
{
name
:
'
东欢坨矿
'
,
name
:
'
东欢坨矿
'
,
id
:
1
id
:
'
010102
'
},
},
{
{
name
:
'
范矿
'
,
name
:
'
范矿
'
,
...
@@ -146,31 +147,19 @@
...
@@ -146,31 +147,19 @@
},
},
{
{
name
:
'
林西矿
'
,
name
:
'
林西矿
'
,
id
:
3
id
:
'
011704
'
},
},
{
{
name
:
'
吕矿
'
,
name
:
'
吕矿
'
,
id
:
4
id
:
4
},
},
{
name
:
'
钱家营矿
'
,
id
:
5
},
{
{
name
:
'
唐山矿
'
,
name
:
'
唐山矿
'
,
id
:
6
id
:
'
010101
'
},
{
name
:
'
宏丰公司矿业
'
,
id
:
7
},
{
name
:
'
云飞公司矿业
'
,
id
:
8
},
},
{
{
name
:
'
单侯煤矿
'
,
name
:
'
单侯煤矿
'
,
id
:
9
id
:
'
011204
'
},
},
],
],
types
:
[
types
:
[
...
@@ -266,7 +255,7 @@
...
@@ -266,7 +255,7 @@
},
},
/** 查询上级关联关系*/
/** 查询上级关联关系*/
fetchOptions
(
)
{
fetchOptions
(
value
)
{
savePid
(
this
.
form
.
sskId
).
then
(
response
=>
{
savePid
(
this
.
form
.
sskId
).
then
(
response
=>
{
this
.
options
=
response
.
rows
;
this
.
options
=
response
.
rows
;
});
});
...
@@ -381,5 +370,5 @@
...
@@ -381,5 +370,5 @@
})
})
}
}
}
}
};
};
</
script
>
</
script
>
ruoyi-ui/src/views/system/ActSuppliesDetails/ActSuppliesDetails/index.vue
View file @
acae3d48
...
@@ -493,7 +493,7 @@ export default {
...
@@ -493,7 +493,7 @@ export default {
this
.
fetchOptions
();
this
.
fetchOptions
();
this
.
reset
();
this
.
reset
();
this
.
open
=
true
;
this
.
open
=
true
;
this
.
title
=
"
新增物料
分类
"
;
this
.
title
=
"
新增物料
"
;
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
...
...
ruoyi-ui/src/views/system/Actsupplies/Actsupplies/index.vue
View file @
acae3d48
...
@@ -492,7 +492,7 @@ export default {
...
@@ -492,7 +492,7 @@ export default {
handleAdd
()
{
handleAdd
()
{
this
.
reset
();
this
.
reset
();
this
.
open
=
true
;
this
.
open
=
true
;
this
.
title
=
"
新增
物料
分类
"
;
this
.
title
=
"
新增
二级
分类
"
;
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
async
handleUpdate
(
row
)
{
async
handleUpdate
(
row
)
{
...
...
ruoyi-ui/src/views/system/historydata/index.vue
View file @
acae3d48
...
@@ -80,13 +80,13 @@
...
@@ -80,13 +80,13 @@
@
click=
"handleDetails(scope.row)"
@
click=
"handleDetails(scope.row)"
v-hasPermi=
"['system:historydata']"
v-hasPermi=
"['system:historydata']"
>
详情
</el-button>
>
详情
</el-button>
<!--
<el-button
<el-button
size=
"mini"
size=
"mini"
type=
"text"
type=
"text"
icon=
"el-icon-delete"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['system:historydata:remove']"
v-hasPermi=
"['system:historydata:remove']"
>
删除
</el-button>
-->
>
删除
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -166,13 +166,11 @@ export default {
...
@@ -166,13 +166,11 @@ export default {
roleId
:
null
,
roleId
:
null
,
historyName
:
null
,
historyName
:
null
,
historyContent
:
null
,
historyContent
:
null
,
historyRole
:
null
,
identifyingCode
:
null
,
identifyingCode
:
null
,
status
:
null
,
status
:
null
,
},
},
// 表单参数
// 表单参数
form
:
{},
form
:
{},
formContent
:{},
};
};
},
},
...
@@ -210,7 +208,6 @@ export default {
...
@@ -210,7 +208,6 @@ export default {
exportUuid
:
null
,
exportUuid
:
null
,
roleId
:
null
,
roleId
:
null
,
historyName
:
null
,
historyName
:
null
,
historyRole
:
null
,
historyContent
:
null
,
historyContent
:
null
,
identifyingCode
:
null
,
identifyingCode
:
null
,
status
:
0
,
status
:
0
,
...
@@ -273,14 +270,12 @@ export default {
...
@@ -273,14 +270,12 @@ export default {
},
},
handleDetails
(
row
)
{
handleDetails
(
row
)
{
getHistorydata
(
row
.
id
).
then
(
response
=>
{
this
.
formContent
=
response
.
data
;
this
.
positionValue
=
'
absolute
'
;
this
.
positionValue
=
'
absolute
'
;
luckysheet
.
destroy
();
luckysheet
.
destroy
();
luckysheet
.
create
({
luckysheet
.
create
({
container
:
"
luckysheet
"
,
// Luckysheet 的容器元素 ID
container
:
"
luckysheet
"
,
// Luckysheet 的容器元素 ID
title
:
this
.
formContent
.
historyName
,
// Excel 文件名
title
:
row
.
historyName
,
// Excel 文件名
data
:
JSON
.
parse
(
this
.
formContent
.
historyContent
),
// Excel 数据
data
:
JSON
.
parse
(
row
.
historyContent
),
// Excel 数据
showtoolbar
:
false
,
//是否第二列显示工具栏
showtoolbar
:
false
,
//是否第二列显示工具栏
showinfobar
:
true
,
//是否显示顶部名称栏
showinfobar
:
true
,
//是否显示顶部名称栏
showsheetbar
:
false
,
//是否显示底部表格名称区域
showsheetbar
:
false
,
//是否显示底部表格名称区域
...
@@ -290,9 +285,6 @@ export default {
...
@@ -290,9 +285,6 @@ export default {
functionButton
:
'
<button id="exportButton" class="btn btn-primary" style=" padding:3px 6px; font-size: 16px;width: 100px;height: 27px; margin-right: 85px;" onclick="handleReturnButtonClick()">返回</button>
'
,
functionButton
:
'
<button id="exportButton" class="btn btn-primary" style=" padding:3px 6px; font-size: 16px;width: 100px;height: 27px; margin-right: 85px;" onclick="handleReturnButtonClick()">返回</button>
'
,
});
});
});
},
},
/**详情返回按钮 */
/**详情返回按钮 */
...
@@ -301,7 +293,7 @@ export default {
...
@@ -301,7 +293,7 @@ export default {
luckysheet
.
destroy
();
luckysheet
.
destroy
();
},
},
/** 删除按钮操作 */
/** 删除按钮操作 */
/*
handleDelete(row) {
handleDelete
(
row
)
{
const
ids
=
row
.
id
||
this
.
ids
;
const
ids
=
row
.
id
||
this
.
ids
;
this
.
$confirm
(
'
是否确认删除 历史数据编号为"
'
+
ids
+
'
"的数据项?
'
,
"
警告
"
,
{
this
.
$confirm
(
'
是否确认删除 历史数据编号为"
'
+
ids
+
'
"的数据项?
'
,
"
警告
"
,
{
confirmButtonText
:
"
确定
"
,
confirmButtonText
:
"
确定
"
,
...
@@ -313,7 +305,7 @@ export default {
...
@@ -313,7 +305,7 @@ export default {
this
.
getList
();
this
.
getList
();
this
.
msgSuccess
(
"
删除成功
"
);
this
.
msgSuccess
(
"
删除成功
"
);
})
})
},
*/
},
/** 导出按钮操作 */
/** 导出按钮操作 */
handleExport
()
{
handleExport
()
{
const
queryParams
=
this
.
queryParams
;
const
queryParams
=
this
.
queryParams
;
...
...
ruoyi-ui/src/views/system/supplies/index.vue
View file @
acae3d48
...
@@ -54,25 +54,25 @@
...
@@ -54,25 +54,25 @@
<
script
>
<
script
>
import
{
selectActSuppliesHistorydata
}
from
"
@/api/Actsupplies/cleaning_rule
"
;
import
{
selectActSuppliesHistorydata
}
from
"
@/api/Actsupplies/cleaning_rule
"
;
import
{
getSuppliesTemplate
,
listSuppliesTemplate
,
roleList
,
materialConvert
,
roleListid
,
materialList
}
from
"
@/api/ruoyi-myLuckyexcel/myluckyexcel
"
;
import
{
getSuppliesTemplate
,
listSuppliesTemplate
,
roleList
,
materialConvert
,
materialListPZ
,
roleListid
,
materialList
}
from
"
@/api/ruoyi-myLuckyexcel/myluckyexcel
"
;
import
{
addInsert
,
addInsert1
,
addInsert2
}
from
"
@/api/system/historydata
"
import
{
addInsert
,
addInsert1
,
addInsert2
}
from
"
@/api/system/historydata
"
/*import luckysheet from 'luckysheet'*/
/*import luckysheet from 'luckysheet'*/
import
LuckyExcel
from
'
luckyexcel
'
import
LuckyExcel
from
'
luckyexcel
'
//导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
//导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
/*import {materialList} from "@/api/ruoyi-myLuckyexcel/myluckyexcel";*/
/*import {materialList} from "@/api/ruoyi-myLuckyexcel/myluckyexcel";*/
import
{
exportExcel
}
from
'
../../../../public/exportExcel
'
;
import
{
exportExcel
}
from
'
../../../../public/exportExcel
'
;
import
{
v4
as
uuidv4
}
from
'
uuid
'
;
import
{
v4
as
uuidv4
}
from
'
uuid
'
;
import
{
listSuppliesexpense
}
from
"
../../../api/ActClassification/ActClassification
"
;
import
{
listSuppliesexpense
}
from
"
../../../api/ActClassification/ActClassification
"
;
var
fileName
=
"
新建XLSX工作表
"
;
//定义表名
var
fileName
=
"
新建XLSX工作表
"
;
//定义表名
var
rule
=
[];
var
rule
=
[];
var
tempId
;
var
tempId
;
var
roleId
;
var
roleId
;
var
uuid1
;
var
uuid1
;
var
trueORfalse
=
false
;
var
trueORfalse
=
false
;
var
modify
=
false
;
var
modify
=
false
;
export
default
{
export
default
{
name
:
"
Mymodule
"
,
name
:
"
Mymodule
"
,
data
()
{
data
()
{
return
{
return
{
...
@@ -114,7 +114,9 @@
...
@@ -114,7 +114,9 @@
id
:
9
id
:
9
},
},
],
],
showMask
:
false
,
showMask
:
false
,
//选中的表的数据
selected
:
''
,
uuid
:
''
,
uuid
:
''
,
//弹出页面的表名
//弹出页面的表名
from_name
:
""
,
from_name
:
""
,
...
@@ -143,7 +145,7 @@
...
@@ -143,7 +145,7 @@
hDate
:
null
,
hDate
:
null
,
mining
:
""
mining
:
""
},
},
historyRole
:
[],
historyRole
:
[],
dfrom
:
{},
dfrom
:
{},
imp
:
{},
imp
:
{},
ssd
:
{},
ssd
:
{},
...
@@ -163,14 +165,18 @@
...
@@ -163,14 +165,18 @@
this
.
init
();
this
.
init
();
fileName
=
"
新建XLSX工作表
"
;
fileName
=
"
新建XLSX工作表
"
;
this
.
list
()
},
},
methods
:
{
methods
:
{
list
()
{
materialListPZ
().
then
(
response
=>
{
})},
/** 判断是否选择时间*/
/** 判断是否选择时间*/
rulesdate
()
{
rulesdate
()
{
const
minvalue
=
this
.
miningValue
.
find
(
obj
=>
obj
.
id
===
this
.
mining
)
const
minvalue
=
this
.
miningValue
.
find
(
obj
=>
obj
.
id
===
this
.
mining
)
const
Luckysheetlabel
=
this
.
luckyrule
.
find
(
obj
=>
obj
.
id
===
this
.
selectedRule
);
const
Luckysheetlabel
=
this
.
luckyrule
.
find
(
obj
=>
obj
.
id
===
this
.
selectedRule
);
if
(
this
.
date
==
''
||
this
.
date
==
null
)
{
if
(
this
.
date
==
''
||
this
.
date
==
null
)
{
this
.
disableNextButton
=
true
;
this
.
disableNextButton
=
true
;
this
.
$message
.
error
(
'
请选择时间日期!
'
);
this
.
$message
.
error
(
'
请选择时间日期!
'
);
...
@@ -211,24 +217,24 @@
...
@@ -211,24 +217,24 @@
},
},
/** 下拉选和页面luckysheet绑定 */
/** 下拉选和页面luckysheet绑定 */
handleOptionChange
()
{
handleOptionChange
()
{
this
.
selectedRule
=
''
;
this
.
selectedRule
=
''
;
this
.
disableNextButton
=
this
.
selectedRule
===
''
;
this
.
disableNextButton
=
this
.
selectedRule
===
''
;
//根据选中的下拉选项值获取相应的信息
//根据选中的下拉选项值获取相应的信息
getSuppliesTemplate
(
this
.
selectedOption
).
then
(
response
=>
{
getSuppliesTemplate
(
this
.
selectedOption
).
then
(
response
=>
{
//如果为六矿汇总表,导出时隐藏前两列
//如果为六矿汇总表,导出时隐藏前两列
if
(
this
.
selectedOption
===
7
||
this
.
selectedOption
===
10
)
{
if
(
this
.
selectedOption
===
7
||
this
.
selectedOption
===
10
)
{
trueORfalse
=
true
;
trueORfalse
=
true
;
}
else
{
}
else
{
trueORfalse
=
false
;
trueORfalse
=
false
;
}
}
modify
=
false
;
modify
=
false
;
tempId
=
this
.
selectedOption
;
tempId
=
this
.
selectedOption
;
uuid1
=
this
.
uuid
=
uuidv4
().
substring
(
0
,
8
);
uuid1
=
this
.
uuid
=
uuidv4
().
substring
(
0
,
8
);
const
sysSupplies
=
response
.
rows
;
const
sysSupplies
=
response
.
rows
;
this
.
luckysheetData
=
sysSupplies
[
0
].
templateContent
;
this
.
luckysheetData
=
sysSupplies
[
0
].
templateContent
;
//将接收到的json存到json_data中
console
.
log
(
sysSupplies
)
//const json_data = response.data;
var
json_data
=
JSON
.
parse
(
sysSupplies
[
0
].
templateContent
);
var
json_data
=
JSON
.
parse
(
sysSupplies
[
0
].
templateContent
);
roleList
(
this
.
selectedOption
).
then
(
response
=>
{
roleList
(
this
.
selectedOption
).
then
(
response
=>
{
this
.
luckyrule
=
response
.
rows
;
this
.
luckyrule
=
response
.
rows
;
...
@@ -241,7 +247,7 @@
...
@@ -241,7 +247,7 @@
title
:
fileName
,
// Excel 文件名
title
:
fileName
,
// Excel 文件名
data
:
json_data
,
// Excel 数据
data
:
json_data
,
// Excel 数据
showinfobar
:
false
,
//是否显示顶部名称栏
showinfobar
:
false
,
//是否显示顶部名称栏
lang
:
'
zh
'
,
lang
:
'
zh
'
,
});
});
}).
catch
(()
=>
{
}).
catch
(()
=>
{
// 处理错误逻辑,这里是一个空的错误处理函数
// 处理错误逻辑,这里是一个空的错误处理函数
...
@@ -249,20 +255,20 @@
...
@@ -249,20 +255,20 @@
});
});
},
},
/** 规则下拉选 调佣后端的方法*/
/** 规则下拉选 调佣后端的方法*/
handleRuleChange
()
{
handleRuleChange
()
{
if
(
this
.
selectedOption
===
''
)
{
if
(
this
.
selectedOption
===
''
)
{
this
.
selectedRule
=
''
;
this
.
selectedRule
=
''
;
this
.
$message
.
warning
(
"
选择规则前请先选择模板!
"
);
this
.
$message
.
warning
(
"
选择规则前请先选择模板!
"
);
return
;
// 如果按钮被禁用,提前返回,避免执行下一步操作
return
;
// 如果按钮被禁用,提前返回,避免执行下一步操作
}
}
this
.
disableNextButton
=
this
.
selectedRule
===
''
;
this
.
disableNextButton
=
this
.
selectedRule
===
''
;
roleListid
(
this
.
selectedRule
).
then
(
response
=>
{
roleListid
(
this
.
selectedRule
).
then
(
response
=>
{
roleId
=
this
.
selectedRule
;
roleId
=
this
.
selectedRule
;
rule
=
response
.
rows
;
rule
=
response
.
rows
;
});
});
if
(
tempId
===
7
||
tempId
===
10
)
{
if
(
tempId
===
7
||
tempId
===
10
)
{
getSuppliesTemplate
(
tempId
).
then
(
response
=>
{
getSuppliesTemplate
(
tempId
).
then
(
response
=>
{
uuid1
=
this
.
uuid
=
uuidv4
().
substring
(
0
,
8
);
uuid1
=
this
.
uuid
=
uuidv4
().
substring
(
0
,
8
);
// 通过遍历this.luckyrule找到对应的iem.roleName
// 通过遍历this.luckyrule找到对应的iem.roleName
for
(
let
i
=
0
;
i
<
this
.
luckyrule
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
luckyrule
.
length
;
i
++
)
{
if
(
this
.
luckyrule
[
i
].
id
===
this
.
selectedRule
)
{
if
(
this
.
luckyrule
[
i
].
id
===
this
.
selectedRule
)
{
...
@@ -306,6 +312,9 @@
...
@@ -306,6 +312,9 @@
//刷新luckysheet表格
//刷新luckysheet表格
this
.
init
();
this
.
init
();
},
},
/** Luckyexcel文档 */
/** Luckyexcel文档 */
init
()
{
init
()
{
let
options
=
{
let
options
=
{
...
@@ -342,24 +351,7 @@
...
@@ -342,24 +351,7 @@
"
authority
"
:
{},
//工作表保护
"
authority
"
:
{},
//工作表保护
},
},
},
},
/*{
"name": "Sheet2",
"color": "",
"index": 1,
"status": 0,
"order": 1,
"celldata": [],
"config": {}
},
{
"name": "Sheet3",
"color": "",
"index": 2,
"status": 0,
"order": 2,
"celldata": [],
"config": {},
}*/
]
]
}
}
...
@@ -373,6 +365,9 @@
...
@@ -373,6 +365,9 @@
cancelButtonText
:
'
取消
'
,
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
type
:
'
warning
'
}).
then
(
async
()
=>
{
}).
then
(
async
()
=>
{
// 确认继续后刷新页面返回模板
// 确认继续后刷新页面返回模板
getSuppliesTemplate
(
7
).
then
(
response
=>
{
getSuppliesTemplate
(
7
).
then
(
response
=>
{
const
sysSupplies
=
response
.
rows
;
const
sysSupplies
=
response
.
rows
;
...
@@ -388,6 +383,9 @@
...
@@ -388,6 +383,9 @@
});
});
modify
=
false
;
modify
=
false
;
}).
then
(
async
()
=>
{
}).
then
(
async
()
=>
{
this
.
showMask
=
true
;
this
.
showMask
=
true
;
//将导入数据替换保存
//将导入数据替换保存
LuckyExcel
.
transformExcelToLucky
(
evt
,
exportJson
=>
{
LuckyExcel
.
transformExcelToLucky
(
evt
,
exportJson
=>
{
...
@@ -417,9 +415,9 @@
...
@@ -417,9 +415,9 @@
this
.
$message
({
type
:
'
info
'
,
message
:
'
操作已取消
'
});
this
.
$message
({
type
:
'
info
'
,
message
:
'
操作已取消
'
});
});
});
}
else
{
}
else
{
this
.
showMask
=
true
;
this
.
showMask
=
true
;
LuckyExcel
.
transformExcelToLucky
(
evt
,
exportJson
=>
{
LuckyExcel
.
transformExcelToLucky
(
evt
,
exportJson
=>
{
//获取导入表格所有数据exportJson
this
.
summary
(
exportJson
)
this
.
summary
(
exportJson
)
.
then
(
async
()
=>
{
.
then
(
async
()
=>
{
this
.
submit
(
exportJson
);
this
.
submit
(
exportJson
);
...
@@ -441,46 +439,46 @@
...
@@ -441,46 +439,46 @@
},
},
/** 物料转换汇总到页面*/
/** 物料转换汇总到页面*/
summary
(
exportJson
)
{
summary
(
exportJson
)
{
// 记录开始时间
// 记录开始时间
const
startTime
=
new
Date
().
getTime
();
const
startTime
=
new
Date
().
getTime
();
let
sysRulez
;
let
sysRulez
;
let
sysRules
;
let
sysRules
;
let
sysConver
;
let
sysConver
;
let
value
=
[];
let
value
=
[];
let
data
;
let
data
;
//获取规则 sysRulez是物料转换 sysRules是数据汇总规则
//获取规则 sysRulez是物料转换 sysRules是数据汇总规则
for
(
let
i
=
0
;
i
<
rule
.
length
;
i
++
){
for
(
let
i
=
0
;
i
<
rule
.
length
;
i
++
)
{
if
(
rule
[
i
].
convertStatus
==
1
){
if
(
rule
[
i
].
convertStatus
==
1
)
{
sysRulez
=
JSON
.
parse
(
rule
[
i
].
detailContent
);
sysRulez
=
JSON
.
parse
(
rule
[
i
].
detailContent
);
}
}
if
(
rule
[
i
].
convertStatus
==
2
)
{
if
(
rule
[
i
].
convertStatus
==
2
)
{
if
(
parseInt
(
rule
[
i
].
detailYS
)
===
1
)
{
if
(
parseInt
(
rule
[
i
].
detailYS
)
===
1
)
{
sysConver
=
JSON
.
parse
(
rule
[
i
].
detailContent
)
sysConver
=
JSON
.
parse
(
rule
[
i
].
detailContent
)
}
else
{
}
else
{
sysRules
=
JSON
.
parse
(
rule
[
i
].
detailContent
);
sysRules
=
JSON
.
parse
(
rule
[
i
].
detailContent
);
}
}
}
}
if
(
rule
[
i
].
convertStatus
==
6
)
{
if
(
rule
[
i
].
convertStatus
==
6
)
{
this
.
historyRole
=
rule
[
i
].
detailContent
;
this
.
historyRole
=
rule
[
i
].
detailContent
;
}
}
}
}
try
{
try
{
data
=
window
.
luckysheet
.
transToData
(
exportJson
.
sheets
[
sysRulez
[
0
].
se
].
celldata
);
//获取物料转换的sheet表
data
=
window
.
luckysheet
.
transToData
(
exportJson
.
sheets
[
sysRulez
[
0
].
se
].
celldata
);
}
}
catch
(
err
){
catch
(
err
)
{
throw
new
Error
(
"
导入失败,所选文件或规则有误
"
);
//throw new Error("导入失败,导入文件与模板规则不匹");
this
.
showMask
=
false
;
this
.
$message
.
error
(
"
导入失败,导入文件与模板规则不匹
"
);
return
;
}
}
//获取物料转换中导入表的列,用来获取物料名
//获取物料转换中导入表的列,用来获取物料名
let
key_i
=
parseInt
(
sysRulez
[
0
].
ce
);
let
key_i
=
parseInt
(
sysRulez
[
0
].
ce
);
//获取物料转换的数据
//获取物料转换的数据
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
){
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
)
{
//value.push(data[sysRules[i].re][sysRules[i].ce].m);
value
.
push
(
sysRules
[
i
].
ce
);
value
.
push
(
sysRules
[
i
].
ce
);
}
}
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
asyncTasks
=
[];
const
asyncTasks
=
[];
switch
(
tempId
)
{
switch
(
tempId
)
{
...
@@ -492,7 +490,7 @@
...
@@ -492,7 +490,7 @@
departmentMap
.
set
(
'
风选煤
'
,
'
洗煤厂
'
);
departmentMap
.
set
(
'
风选煤
'
,
'
洗煤厂
'
);
departmentMap
.
set
(
'
制造费用
'
,
[
'
机电检修中心
'
,
'
地测科
'
,
'
设备管理科
'
,
'
旧品利用中心
'
,
'
机修加工中心
'
,
'
网络安全与信息通讯中心
'
,
'
保卫科
'
,
'
煤质管理科
'
,
'
迁建科
'
,
'
综合服务中心
'
]);
departmentMap
.
set
(
'
制造费用
'
,
[
'
机电检修中心
'
,
'
地测科
'
,
'
设备管理科
'
,
'
旧品利用中心
'
,
'
机修加工中心
'
,
'
网络安全与信息通讯中心
'
,
'
保卫科
'
,
'
煤质管理科
'
,
'
迁建科
'
,
'
综合服务中心
'
]);
departmentMap
.
set
(
'
管理费用
'
,
[
'
财务部
'
,
'
综合办公室
'
,
'
纪委监察科
'
,
'
工会
'
,
'
团委
'
,
'
安全管理部
'
,
'
经营管理部
'
,
'
党委组织部(人力资源部)
'
,
'
党委宣传部
'
,
'
生产技术部
'
,
'
机电运输部
'
,
'
科协
'
,
'
节能环保法律办公室
'
,
'
党委组织部
'
,
'
人力资源部
'
]);
departmentMap
.
set
(
'
管理费用
'
,
[
'
财务部
'
,
'
综合办公室
'
,
'
纪委监察科
'
,
'
工会
'
,
'
团委
'
,
'
安全管理部
'
,
'
经营管理部
'
,
'
党委组织部(人力资源部)
'
,
'
党委宣传部
'
,
'
生产技术部
'
,
'
机电运输部
'
,
'
科协
'
,
'
节能环保法律办公室
'
,
'
党委组织部
'
,
'
人力资源部
'
]);
try
{
try
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
let
n
=
parseInt
(
sysRules
[
0
].
ce
)
+
2
;
let
n
=
parseInt
(
sysRules
[
0
].
ce
)
+
2
;
if
(
data
[
i
][
key_i
]
!=
null
&&
data
[
i
][
n
]
!=
null
)
{
if
(
data
[
i
][
key_i
]
!=
null
&&
data
[
i
][
n
]
!=
null
)
{
...
@@ -504,18 +502,14 @@
...
@@ -504,18 +502,14 @@
departments
.
push
(
null
);
departments
.
push
(
null
);
}
}
}
}
}
catch
(
err
)
{
}
catch
(
err
){
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
}
}
for
(
let
key
of
departmentMap
.
keys
())
{
for
(
let
key
of
departmentMap
.
keys
())
{
let
map
=
new
Map
();
let
map
=
new
Map
();
let
smallMat
=
[];
let
smallMat
=
[];
try
{
try
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
if
(
data
[
i
][
key_i
]
!=
null
&&
departments
[
i
-
1
]
===
key
)
{
if
(
data
[
i
][
key_i
]
!=
null
&&
departments
[
i
-
1
]
===
key
)
{
let
num
=
data
[
i
][
key_i
].
m
;
let
num
=
data
[
i
][
key_i
].
m
;
smallMat
.
push
(
num
);
smallMat
.
push
(
num
);
...
@@ -523,32 +517,28 @@
...
@@ -523,32 +517,28 @@
smallMat
.
push
(
null
);
smallMat
.
push
(
null
);
}
}
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
}
}
asyncTasks
.
push
(
asyncTasks
.
push
(
new
Promise
((
innerResolve
,
innerReject
)
=>
{
new
Promise
((
innerResolve
,
innerReject
)
=>
{
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
if
(
allNull
)
{
if
(
allNull
)
{
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
}
}
materialConvert
(
smallMat
)
materialConvert
(
smallMat
)
.
then
(
response
=>
{
.
then
(
response
=>
{
let
array
=
response
.
rows
;
let
array
=
response
.
rows
;
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
let
values
=
[];
let
values
=
[];
if
(
data
[
i
][
13
]
!=
null
&&
departments
[
i
-
1
]
===
key
&&
data
[
i
][
key_i
]
!=
null
)
{
if
(
data
[
i
][
13
]
!=
null
&&
departments
[
i
-
1
]
===
key
&&
data
[
i
][
key_i
]
!=
null
)
{
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
try
{
try
{
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
values
.
push
(
a
);
values
.
push
(
a
);
}
catch
(
err
)
{
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件不匹
"
);
throw
new
Error
(
"
导入失败,导入文件不匹
"
);
}
}
}
}
//插入多个value的值
//插入多个value的值
let
index
=
smallMat
.
indexOf
(
data
[
i
][
key_i
].
m
);
let
index
=
smallMat
.
indexOf
(
data
[
i
][
key_i
].
m
);
...
@@ -565,7 +555,6 @@
...
@@ -565,7 +555,6 @@
}
}
}
}
//循环得到汇总结果
//循环得到汇总结果
if
(
map
.
size
===
0
)
{
if
(
map
.
size
===
0
)
{
throw
new
Error
(
"
导入失败,导入文件错误
"
);
throw
new
Error
(
"
导入失败,导入文件错误
"
);
}
}
...
@@ -585,7 +574,7 @@
...
@@ -585,7 +574,7 @@
"
t
"
:
"
n
"
"
t
"
:
"
n
"
}
}
});
});
}
else
{
}
else
{
warn
++
;
warn
++
;
}
}
});
});
...
@@ -595,8 +584,9 @@
...
@@ -595,8 +584,9 @@
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
}
else
if
(
warn
>
0
)
{
}
else
if
(
warn
>
0
)
{
this
.
$message
({
this
.
$message
({
message
:
"
还有
"
+
warn
/
sysRules
.
length
+
"
条大类未能匹配到
"
,
message
:
"
还有
"
+
warn
/
sysRules
.
length
+
"
条大类未能匹配到
"
,
type
:
"
warning
"
});
type
:
"
warning
"
});
}
}
resolve
(
response
.
rows
);
resolve
(
response
.
rows
);
innerResolve
();
// 标记当前异步任务完成
innerResolve
();
// 标记当前异步任务完成
...
@@ -615,7 +605,7 @@
...
@@ -615,7 +605,7 @@
let
exps
=
[];
let
exps
=
[];
let
map
=
new
Map
();
let
map
=
new
Map
();
let
smallMat
=
[];
let
smallMat
=
[];
try
{
try
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
let
num
=
data
[
i
][
key_i
].
m
;
let
num
=
data
[
i
][
key_i
].
m
;
...
@@ -630,36 +620,32 @@
...
@@ -630,36 +620,32 @@
exps
.
push
(
null
);
exps
.
push
(
null
);
}
}
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
}
}
asyncTasks
.
push
(
asyncTasks
.
push
(
new
Promise
((
innerResolve
,
innerReject
)
=>
{
new
Promise
((
innerResolve
,
innerReject
)
=>
{
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
const
allNull1
=
deps
.
every
(
item
=>
item
===
null
);
const
allNull1
=
deps
.
every
(
item
=>
item
===
null
);
const
allNull2
=
exps
.
every
(
item
=>
item
===
null
);
const
allNull2
=
exps
.
every
(
item
=>
item
===
null
);
if
(
allNull
||
allNull1
||
allNull2
)
{
if
(
allNull
||
allNull1
||
allNull2
)
{
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
}
}
materialConvert
(
smallMat
)
materialConvert
(
smallMat
)
.
then
(
response
=>
{
.
then
(
response
=>
{
let
array
=
response
.
rows
;
let
array
=
response
.
rows
;
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
,
k
=
0
;
i
<
data
.
length
;
i
++
,
k
++
)
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
,
k
=
0
;
i
<
data
.
length
;
i
++
,
k
++
)
{
let
values
=
[];
let
values
=
[];
if
(
data
[
i
][
key_i
]
!=
null
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
try
{
try
{
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
values
.
push
(
a
);
values
.
push
(
a
);
}
catch
(
err
)
{
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件不匹
"
);
throw
new
Error
(
"
导入失败,导入文件不匹
"
);
}
}
}
}
//插入多个value的值
//插入多个value的值
let
key
=
exps
[
k
]
+
'
/
'
+
deps
[
k
]
+
'
/
'
+
array
[
k
];
let
key
=
exps
[
k
]
+
'
/
'
+
deps
[
k
]
+
'
/
'
+
array
[
k
];
...
@@ -673,7 +659,6 @@
...
@@ -673,7 +659,6 @@
map
.
set
(
key
,
values
);
map
.
set
(
key
,
values
);
}
}
}
}
}
}
//循环得到汇总结果
//循环得到汇总结果
...
@@ -683,38 +668,38 @@
...
@@ -683,38 +668,38 @@
//循环得到汇总结果
//循环得到汇总结果
let
cells
;
let
cells
;
let
rowws
;
let
rowws
;
let
con
=
0
;
let
con
=
0
;
let
warn
=
0
;
let
warn
=
0
;
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
)
{
map
.
forEach
((
value
,
key
)
=>
{
map
.
forEach
((
value
,
key
)
=>
{
const
suffixArr
=
key
.
split
(
'
/
'
),
mat
=
suffixArr
[
2
],
depp
=
suffixArr
[
1
],
const
suffixArr
=
key
.
split
(
'
/
'
),
mat
=
suffixArr
[
2
],
depp
=
suffixArr
[
1
],
expp
=
suffixArr
[
0
];
expp
=
suffixArr
[
0
];
let
searchResult
=
luckysheet
.
find
(
expp
);
let
searchResult
=
luckysheet
.
find
(
expp
);
if
(
searchResult
.
length
!==
0
)
{
if
(
searchResult
.
length
!==
0
)
{
rowws
=
searchResult
[
0
].
row
;
rowws
=
searchResult
[
0
].
row
;
for
(
let
i
=
1
;
i
<
10000000000000000000000000
;
i
++
)
{
for
(
let
i
=
1
;
i
<
10000000000000000000000000
;
i
++
)
{
let
n
=
rowws
+
i
;
let
n
=
rowws
+
i
;
let
gg
=
luckysheet
.
getCellValue
(
n
,
0
);
let
gg
=
luckysheet
.
getCellValue
(
n
,
0
);
if
(
gg
!==
null
)
{
if
(
gg
!==
null
)
{
con
=
rowws
+
i
;
con
=
rowws
+
i
;
break
;
break
;
}
}
}
}
searchResult
=
luckysheet
.
find
(
depp
);
searchResult
=
luckysheet
.
find
(
depp
);
if
(
searchResult
.
length
!==
0
)
{
if
(
searchResult
.
length
!==
0
)
{
let
k
=
0
;
let
k
=
0
;
let
r
;
let
r
;
for
(
let
i
=
0
;
i
<
searchResult
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
searchResult
.
length
;
i
++
)
{
r
=
searchResult
[
i
].
row
;
r
=
searchResult
[
i
].
row
;
if
(
r
<
con
&&
r
>=
rowws
)
{
if
(
r
<
con
&&
r
>=
rowws
)
{
k
=
1
;
k
=
1
;
break
;
break
;
}
}
}
}
if
(
k
===
1
)
{
if
(
k
===
1
)
{
let
matResult
=
luckysheet
.
find
(
mat
);
let
matResult
=
luckysheet
.
find
(
mat
);
if
(
matResult
.
length
!==
0
&&
mat
!=
null
)
{
if
(
matResult
.
length
!==
0
&&
mat
!=
null
)
{
cells
=
matResult
[
0
].
column
;
cells
=
matResult
[
0
].
column
;
...
@@ -725,15 +710,15 @@
...
@@ -725,15 +710,15 @@
"
t
"
:
"
n
"
"
t
"
:
"
n
"
}
}
});
});
}
else
{
}
else
{
warn
++
;
warn
++
;
}
}
}
else
{
}
else
{
warn
++
;
warn
++
;
}
}
}
}
}
else
{
}
else
{
warn
++
;
warn
++
;
}
}
});
});
...
@@ -741,8 +726,9 @@
...
@@ -741,8 +726,9 @@
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
}
else
if
(
warn
>
0
)
{
}
else
if
(
warn
>
0
)
{
this
.
$message
({
this
.
$message
({
message
:
"
还有
"
+
warn
/
sysRules
.
length
+
"
条大类未能匹配到
"
,
message
:
"
还有
"
+
warn
/
sysRules
.
length
+
"
条大类未能匹配到
"
,
type
:
"
warning
"
});
type
:
"
warning
"
});
}
}
resolve
(
response
.
rows
);
resolve
(
response
.
rows
);
innerResolve
();
// 标记当前异步任务完成
innerResolve
();
// 标记当前异步任务完成
...
@@ -760,7 +746,7 @@
...
@@ -760,7 +746,7 @@
case
1
:
{
case
1
:
{
let
map
=
new
Map
();
let
map
=
new
Map
();
let
smallMat
=
[];
let
smallMat
=
[];
try
{
try
{
for
(
let
i
=
parseInt
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
parseInt
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
let
num
=
data
[
i
][
key_i
].
m
;
let
num
=
data
[
i
][
key_i
].
m
;
...
@@ -777,14 +763,14 @@
...
@@ -777,14 +763,14 @@
smallMat
.
push
(
null
);
smallMat
.
push
(
null
);
}
}
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
}
}
asyncTasks
.
push
(
asyncTasks
.
push
(
new
Promise
((
innerResolve
,
innerReject
)
=>
{
new
Promise
((
innerResolve
,
innerReject
)
=>
{
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
if
(
allNull
)
{
if
(
allNull
)
{
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
}
}
materialConvert
(
smallMat
)
materialConvert
(
smallMat
)
...
@@ -796,13 +782,13 @@
...
@@ -796,13 +782,13 @@
let
values
=
[];
let
values
=
[];
if
(
data
[
i
][
key_i
]
!=
null
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
try
{
try
{
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
if
(
isNaN
(
a
))
{
if
(
isNaN
(
a
))
{
a
=
0
;
a
=
0
;
}
}
values
.
push
(
a
);
values
.
push
(
a
);
}
catch
(
err
)
{
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件不匹
"
);
throw
new
Error
(
"
导入失败,导入文件不匹
"
);
}
}
}
}
...
@@ -828,12 +814,12 @@
...
@@ -828,12 +814,12 @@
//循环得到汇总结果
//循环得到汇总结果
let
row
;
let
row
;
let
con
;
let
con
;
let
warn
=
0
;
let
warn
=
0
;
map
.
forEach
((
value
,
key
)
=>
{
map
.
forEach
((
value
,
key
)
=>
{
let
searchResult
;
let
searchResult
;
searchResult
=
luckysheet
.
find
(
key
);
searchResult
=
luckysheet
.
find
(
key
);
if
(
searchResult
==
undefined
||
searchResult
.
length
===
0
||
key
===
null
)
{
if
(
searchResult
==
undefined
||
searchResult
.
length
===
0
||
key
===
null
)
{
warn
++
;
warn
++
;
}
}
})
})
...
@@ -865,7 +851,7 @@
...
@@ -865,7 +851,7 @@
}
}
});
});
break
;
break
;
}
else
{
}
else
{
}
}
}
}
}
}
...
@@ -881,13 +867,13 @@
...
@@ -881,13 +867,13 @@
let
values2
=
[];
let
values2
=
[];
if
(
data
[
i
][
key_i
]
!=
null
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
for
(
let
j
=
0
;
j
<
value2
.
length
;
j
++
)
{
for
(
let
j
=
0
;
j
<
value2
.
length
;
j
++
)
{
try
{
try
{
let
a
=
parseFloat
(
data
[
i
][
value2
[
j
]].
v
);
let
a
=
parseFloat
(
data
[
i
][
value2
[
j
]].
v
);
if
(
isNaN
(
a
))
{
if
(
isNaN
(
a
))
{
a
=
0
;
a
=
0
;
}
}
values2
.
push
(
a
);
values2
.
push
(
a
);
}
catch
(
err
)
{
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件不匹
"
);
throw
new
Error
(
"
导入失败,导入文件不匹
"
);
}
}
}
}
...
@@ -912,8 +898,8 @@
...
@@ -912,8 +898,8 @@
map2
.
forEach
((
value
,
key
)
=>
{
map2
.
forEach
((
value
,
key
)
=>
{
let
searchResult
;
let
searchResult
;
searchResult
=
luckysheet
.
find
(
key
);
searchResult
=
luckysheet
.
find
(
key
);
if
(
searchResult
!==
undefined
&&
searchResult
.
length
!==
0
||
key
!==
null
)
{
if
(
searchResult
!==
undefined
&&
searchResult
.
length
!==
0
||
key
!==
null
)
{
for
(
let
i
=
0
;
i
<
value
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
value
.
length
;
i
++
)
{
luckysheet
.
setCellValue
(
searchResult
[
0
].
row
,
sysConver
[
i
].
ct
,
value
[
i
]);
luckysheet
.
setCellValue
(
searchResult
[
0
].
row
,
sysConver
[
i
].
ct
,
value
[
i
]);
luckysheet
.
setCellValue
(
searchResult
[
0
].
row
,
sysConver
[
i
].
ct
,
{
luckysheet
.
setCellValue
(
searchResult
[
0
].
row
,
sysConver
[
i
].
ct
,
{
...
@@ -923,16 +909,17 @@
...
@@ -923,16 +909,17 @@
}
}
});
});
}
}
}
else
{
}
else
{
warn
++
;
warn
++
;
}
}
})
})
if
(
warn
===
map
.
size
+
map2
.
size
)
{
if
(
warn
===
map
.
size
+
map2
.
size
)
{
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
}
else
if
(
warn
>
0
)
{
}
else
if
(
warn
>
0
)
{
this
.
$message
({
this
.
$message
({
message
:
"
还有
"
+
warn
+
"
条大类未能匹配到
"
,
message
:
"
还有
"
+
warn
+
"
条大类未能匹配到
"
,
type
:
"
warning
"
});
type
:
"
warning
"
});
}
}
resolve
(
response
.
rows
);
resolve
(
response
.
rows
);
innerResolve
();
// 标记当前异步任务完成
innerResolve
();
// 标记当前异步任务完成
...
@@ -946,10 +933,10 @@
...
@@ -946,10 +933,10 @@
break
;
break
;
case
3
:
case
3
:
case
4
:
case
4
:
case
5
:
{
case
5
:
{
let
map
=
new
Map
();
let
map
=
new
Map
();
let
smallMat
=
[];
let
smallMat
=
[];
try
{
try
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
let
num
=
data
[
i
][
key_i
].
m
;
let
num
=
data
[
i
][
key_i
].
m
;
...
@@ -958,13 +945,13 @@
...
@@ -958,13 +945,13 @@
smallMat
.
push
(
null
);
smallMat
.
push
(
null
);
}
}
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
}
}
asyncTasks
.
push
(
asyncTasks
.
push
(
new
Promise
((
innerResolve
,
innerReject
)
=>
{
new
Promise
((
innerResolve
,
innerReject
)
=>
{
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
if
(
allNull
)
{
if
(
allNull
)
{
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
}
}
materialConvert
(
smallMat
)
materialConvert
(
smallMat
)
...
@@ -975,10 +962,10 @@
...
@@ -975,10 +962,10 @@
let
index
;
let
index
;
if
(
data
[
i
][
key_i
]
!=
null
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
try
{
try
{
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
values
.
push
(
a
);
values
.
push
(
a
);
}
catch
(
err
)
{
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件不匹
"
);
throw
new
Error
(
"
导入失败,导入文件不匹
"
);
}
}
...
@@ -1008,8 +995,8 @@
...
@@ -1008,8 +995,8 @@
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
)
{
map
.
forEach
((
value
,
key
)
=>
{
map
.
forEach
((
value
,
key
)
=>
{
let
searchResult
;
let
searchResult
;
searchResult
=
luckysheet
.
find
(
key
);
searchResult
=
luckysheet
.
find
(
key
);
if
(
searchResult
!==
undefined
&&
searchResult
.
length
!==
0
&&
key
!=
null
)
{
if
(
searchResult
!==
undefined
&&
searchResult
.
length
!==
0
&&
key
!=
null
)
{
rowws
=
searchResult
[
0
].
row
;
rowws
=
searchResult
[
0
].
row
;
luckysheet
.
setCellValue
(
rowws
,
sysRules
[
i
].
ct
,
value
[
i
]);
luckysheet
.
setCellValue
(
rowws
,
sysRules
[
i
].
ct
,
value
[
i
]);
luckysheet
.
setCellValue
(
rowws
,
sysRules
[
i
].
ct
,
{
luckysheet
.
setCellValue
(
rowws
,
sysRules
[
i
].
ct
,
{
...
@@ -1027,8 +1014,9 @@
...
@@ -1027,8 +1014,9 @@
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
}
else
if
(
warn
>
0
)
{
}
else
if
(
warn
>
0
)
{
this
.
$message
({
this
.
$message
({
message
:
"
还有
"
+
warn
/
sysRules
.
length
+
"
条大类未能匹配到
"
,
message
:
"
还有
"
+
warn
/
sysRules
.
length
+
"
条大类未能匹配到
"
,
type
:
"
warning
"
});
type
:
"
warning
"
});
}
}
resolve
(
response
.
rows
);
resolve
(
response
.
rows
);
innerResolve
();
// 标记当前异步任务完成
innerResolve
();
// 标记当前异步任务完成
...
@@ -1040,11 +1028,12 @@
...
@@ -1040,11 +1028,12 @@
}));
}));
}
}
break
;
break
;
case
7
:
{
case
7
:
{
let
map
=
new
Map
();
let
map
=
new
Map
();
let
smallMat
=
[];
let
smallMat
=
[];
let
newsmallMat
=
[];
let
newsmallMat
=
[];
let
p
=
0
;
let
p
=
0
;
let
deps
=
[];
let
deps
=
[];
try
{
try
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
;
i
<
data
.
length
;
i
++
)
{
...
@@ -1052,7 +1041,7 @@
...
@@ -1052,7 +1041,7 @@
let
num
=
data
[
i
][
key_i
].
m
;
let
num
=
data
[
i
][
key_i
].
m
;
let
dep
=
data
[
i
][
sysRulez
[
1
].
ce
].
m
;
let
dep
=
data
[
i
][
sysRulez
[
1
].
ce
].
m
;
smallMat
.
push
(
num
);
smallMat
.
push
(
num
);
newsmallMat
.
push
({
'
index
'
:
p
,
'
code
'
:
num
});
newsmallMat
.
push
({
'
index
'
:
p
,
'
code
'
:
num
});
p
++
;
p
++
;
deps
.
push
(
dep
);
deps
.
push
(
dep
);
}
else
{
}
else
{
...
@@ -1060,13 +1049,13 @@
...
@@ -1060,13 +1049,13 @@
deps
.
push
(
null
);
deps
.
push
(
null
);
}
}
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
}
}
asyncTasks
.
push
(
asyncTasks
.
push
(
new
Promise
((
innerResolve
,
innerReject
)
=>
{
new
Promise
((
innerResolve
,
innerReject
)
=>
{
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
if
(
allNull
)
{
if
(
allNull
)
{
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
}
}
function
sortArray
(
array
)
{
function
sortArray
(
array
)
{
...
@@ -1075,51 +1064,19 @@
...
@@ -1075,51 +1064,19 @@
}
}
materialList
().
then
(
response
=>
{
materialList
().
then
(
response
=>
{
/*let SixMateriel=[];
let
SixMateriel
=
[];
let MaterielCode=[];
let
MaterielCode
=
[];
let NewMarterielCode=[];
let
NewMarterielCode
=
[];
let SixList=[];
let
SixList
=
[];
let newSmasll =newsmallMat;
let
newSmasll
=
smallMat
;
let m=0
SixMateriel
=
response
.
rows
;
NewMarterielCode
=
sortArray
(
SixMateriel
)
SixMateriel=response.rows.slice(92,246);
for(var i=0;i<SixMateriel.length;i++){
if(SixMateriel[i].code!==null){
MaterielCode.push(SixMateriel[i])
}
}
NewMarterielCode= sortArray(MaterielCode)
for (let i = 0; i < NewMarterielCode.length; i++) {
for (let j = 0; j < newSmasll.length; j++) {
if(newSmasll[j] !== null){
m++
if (NewMarterielCode[i].code==newSmasll[j].code.slice(0,NewMarterielCode[i].code.length)) {
SixList[newSmasll[j].index]=NewMarterielCode[i].codes;
newSmasll.splice(j,1);
j--;
}
}
}
}
for (let k = 0; k < newSmasll.length; k++) {
SixList[newSmasll[k].index]='11';
m++;
}
this.NewSixList=SixList*/
let
SixMateriel
=
[];
let
MaterielCode
=
[];
let
NewMarterielCode
=
[];
let
SixList
=
[];
let
newSmasll
=
smallMat
;
SixMateriel
=
response
.
rows
;
NewMarterielCode
=
sortArray
(
SixMateriel
)
try
{
try
{
// //转化编码
// //转化编码
let
p
=
0
;
let
p
=
0
;
for
(
var
i
=
0
;
i
<
newSmasll
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
newSmasll
.
length
;
i
++
)
{
for
(
var
j
=
0
;
j
<
NewMarterielCode
.
length
;
j
++
)
{
for
(
var
j
=
0
;
j
<
NewMarterielCode
.
length
;
j
++
)
{
if
(
newSmasll
[
i
]
!==
null
)
{
if
(
newSmasll
[
i
]
!==
null
)
{
if
(
NewMarterielCode
[
j
]
&&
NewMarterielCode
[
j
].
code
&&
newSmasll
[
i
].
slice
(
0
,
NewMarterielCode
[
j
].
code
.
length
)
==
NewMarterielCode
[
j
].
code
)
{
if
(
NewMarterielCode
[
j
]
&&
NewMarterielCode
[
j
].
code
&&
newSmasll
[
i
].
slice
(
0
,
NewMarterielCode
[
j
].
code
.
length
)
==
NewMarterielCode
[
j
].
code
)
{
SixList
[
i
]
=
NewMarterielCode
[
j
].
codes
;
SixList
[
i
]
=
NewMarterielCode
[
j
].
codes
;
p
++
;
p
++
;
...
@@ -1133,10 +1090,10 @@
...
@@ -1133,10 +1090,10 @@
}
}
}
}
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
//throw new Error("导入失败,转换编码运行错误,请检查对应规则");
//throw new Error("导入失败,转换编码运行错误,请检查对应规则");
}
}
var
warn1
=
0
,
warn2
=
0
;
var
warn1
=
0
,
warn2
=
0
;
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
,
k
=
0
;
i
<
data
.
length
;
i
++
,
k
++
)
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
,
k
=
0
;
i
<
data
.
length
;
i
++
,
k
++
)
{
let
values
=
[];
let
values
=
[];
if
(
data
[
i
][
key_i
]
!=
null
)
{
if
(
data
[
i
][
key_i
]
!=
null
)
{
...
@@ -1152,12 +1109,12 @@
...
@@ -1152,12 +1109,12 @@
innerReject
(
error
);
// 异步请求出错
innerReject
(
error
);
// 异步请求出错
}
}
}
}
if
(
SixList
[
k
]
==
undefined
)
{
if
(
SixList
[
k
]
==
undefined
)
{
warn1
++
;
//如果为空,统计为undefined
warn1
++
;
//如果为空,统计为undefined
}
else
{
}
else
{
if
(
deps
[
k
]
==
undefined
)
{
if
(
deps
[
k
]
==
undefined
)
{
warn2
++
;
warn2
++
;
}
else
{
}
else
{
let
key
=
SixList
[
k
]
+
'
/
'
+
deps
[
k
];
let
key
=
SixList
[
k
]
+
'
/
'
+
deps
[
k
];
if
(
map
.
has
(
key
))
{
if
(
map
.
has
(
key
))
{
let
oldValues
=
map
.
get
(
key
);
let
oldValues
=
map
.
get
(
key
);
...
@@ -1201,16 +1158,16 @@
...
@@ -1201,16 +1158,16 @@
let
rowws
;
let
rowws
;
const
suffixArr
=
key
.
split
(
'
/
'
),
mat
=
suffixArr
[
0
],
depp
=
suffixArr
[
1
];
const
suffixArr
=
key
.
split
(
'
/
'
),
mat
=
suffixArr
[
0
],
depp
=
suffixArr
[
1
];
//返回当前工作表第1列数据
//返回当前工作表第1列数据
let
cown
=
luckysheet
.
getcellvalue
(
null
,
0
);
let
cown
=
luckysheet
.
getcellvalue
(
null
,
0
);
for
(
let
i
=
0
;
i
<
cown
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
cown
.
length
;
i
++
)
{
if
(
cown
[
i
]
==
null
)
{
if
(
cown
[
i
]
==
null
)
{
continue
;
continue
;
}
}
if
(
cown
[
i
].
v
==
undefined
)
{
if
(
cown
[
i
].
v
==
undefined
)
{
continue
;
continue
;
}
}
if
(
cown
[
i
].
v
==
mat
)
{
if
(
cown
[
i
].
v
==
mat
)
{
rowws
=
i
;
rowws
=
i
;
break
;
break
;
}
}
}
}
...
@@ -1232,36 +1189,22 @@
...
@@ -1232,36 +1189,22 @@
luckysheet
.
setCellValue
(
rowws
+
1
,
sysRulez
[
1
].
ct
,
depp
);
luckysheet
.
setCellValue
(
rowws
+
1
,
sysRulez
[
1
].
ct
,
depp
);
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
)
{
luckysheet
.
setCellValue
(
rowws
+
1
,
sysRules
[
i
].
ct
,
value
[
i
]);
luckysheet
.
setCellValue
(
rowws
+
1
,
sysRules
[
i
].
ct
,
value
[
i
]);
//修改单元格样式
/*luckysheet.setCellValue(rowws+g, sysRules[i].ct, {
"ct": {
"fa": "General",
"t": "n"
}
});*/
}
}
//输出单价
//输出单价
luckysheet
.
setCellValue
(
rowws
+
1
,
parseInt
(
sysRules
[
0
].
ct
)
+
1
,
value
[
1
]
/
value
[
0
]);
luckysheet
.
setCellValue
(
rowws
+
1
,
parseInt
(
sysRules
[
0
].
ct
)
+
1
,
value
[
1
]
/
value
[
0
]);
//修改单价样式
/*luckysheet.setCellValue(rowws+g,parseInt(sysRules[0].ct)+1,{
"ct": {
"fa": "0.0000",
"t": "n"
}
});*/
config
=
luckysheet
.
getConfig
(
0
);
config
=
luckysheet
.
getConfig
(
0
);
bord
.
range
[
0
].
row
=
[
rowws
+
1
,
rowws
+
1
];
bord
.
range
[
0
].
row
=
[
rowws
+
1
,
rowws
+
1
];
bord
.
range
[
0
].
column
=
[
0
,
parseInt
(
sysRules
[
sysRules
.
length
-
1
].
ct
)];
bord
.
range
[
0
].
column
=
[
0
,
parseInt
(
sysRules
[
sysRules
.
length
-
1
].
ct
)];
config
.
borderInfo
.
push
(
bord
);
config
.
borderInfo
.
push
(
bord
);
luckysheet
.
setConfig
(
config
);
luckysheet
.
setConfig
(
config
);
modify
=
true
;
modify
=
true
;
}
else
{
}
else
{
warn
++
;
warn
++
;
}
}
});
});
if
(
warn
===
map
.
size
)
{
if
(
warn
===
map
.
size
)
{
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
}
else
if
(
warn
>
0
)
{
}
else
if
(
warn
>
0
)
{
this
.
$message
({
this
.
$message
({
message
:
"
还有
"
+
warn
+
"
条大类没匹配到,请仔细检查导入表
"
,
message
:
"
还有
"
+
warn
+
"
条大类没匹配到,请仔细检查导入表
"
,
type
:
"
warning
"
type
:
"
warning
"
...
@@ -1287,11 +1230,6 @@
...
@@ -1287,11 +1230,6 @@
resolve
(
response
.
rows
);
resolve
(
response
.
rows
);
innerResolve
();
// 标记当前异步任务完成
innerResolve
();
// 标记当前异步任务完成
/*let find1 = luckysheet.find("合计");
let number = parseInt(find1[0].row)-1;
luckysheet.setCellValue(find1[0].row, sysRules[sysRules.length-1].ct, "=SUM(F2:F"+number+")")*/
}).
catch
(
Error
=>
{
}).
catch
(
Error
=>
{
//必须加,不能删除
//必须加,不能删除
...
@@ -1301,12 +1239,12 @@
...
@@ -1301,12 +1239,12 @@
}
}
break
;
break
;
//物料转换六矿转换
//物料转换六矿转换
default
:
default
:
{
{
let
map
=
new
Map
();
let
map
=
new
Map
();
let
smallMat
=
[];
let
smallMat
=
[];
let
newsmallMat
=
[];
let
newsmallMat
=
[];
let
p
=
0
;
let
p
=
0
;
let
deps
=
[];
let
deps
=
[];
let
units
=
[];
let
units
=
[];
let
expenses
=
[];
let
expenses
=
[];
...
@@ -1319,7 +1257,7 @@
...
@@ -1319,7 +1257,7 @@
let
unit
=
data
[
i
][
sysRulez
[
2
].
ce
].
m
;
let
unit
=
data
[
i
][
sysRulez
[
2
].
ce
].
m
;
let
expense
=
data
[
i
][
sysRulez
[
3
].
ce
].
m
;
let
expense
=
data
[
i
][
sysRulez
[
3
].
ce
].
m
;
smallMat
.
push
(
num
);
smallMat
.
push
(
num
);
newsmallMat
.
push
({
'
index
'
:
p
,
'
code
'
:
num
});
newsmallMat
.
push
({
'
index
'
:
p
,
'
code
'
:
num
});
p
++
;
p
++
;
deps
.
push
(
dep
);
deps
.
push
(
dep
);
units
.
push
(
unit
);
units
.
push
(
unit
);
...
@@ -1331,23 +1269,24 @@
...
@@ -1331,23 +1269,24 @@
expenses
.
push
(
null
);
expenses
.
push
(
null
);
}
}
}
}
}
catch
(
err
){
}
catch
(
err
)
{
throw
new
Error
(
"
导入失败,导入文件与模板规则不匹
"
);
//throw new Error("导入失败,导入文件与模板规则不匹");
}
}
asyncTasks
.
push
(
asyncTasks
.
push
(
new
Promise
((
innerResolve
,
innerReject
)
=>
{
new
Promise
((
innerResolve
,
innerReject
)
=>
{
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
const
allNull
=
smallMat
.
every
(
item
=>
item
===
null
);
if
(
allNull
)
{
if
(
allNull
)
{
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
throw
new
Error
(
"
导入失败,导入文件错误,所选文件与模板规则不匹
"
);
}
}
function
sortArray
(
array
)
{
function
sortArray
(
array
)
{
array
.
sort
((
a
,
b
)
=>
b
.
code
.
length
-
a
.
code
.
length
)
array
.
sort
((
a
,
b
)
=>
b
.
code
.
length
-
a
.
code
.
length
)
return
array
return
array
}
}
listSuppliesexpense
(
this
.
mining
).
then
(
response
=>
{
listSuppliesexpense
(
this
.
mining
).
then
(
response
=>
{
//const startTime1 = new Date().getTime();
if
(
response
.
length
>
0
)
{
let
matchedIndices
=
new
Array
(
expenses
.
length
).
fill
(
false
);
let
matchedIndices
=
new
Array
(
expenses
.
length
).
fill
(
false
);
let
p
=
0
;
let
p
=
0
;
for
(
let
j
=
0
;
j
<
response
.
length
;
j
++
)
{
for
(
let
j
=
0
;
j
<
response
.
length
;
j
++
)
{
for
(
let
i
=
0
;
i
<
expenses
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
expenses
.
length
;
i
++
)
{
if
(
!
matchedIndices
[
i
]
&&
expenses
[
i
]
!==
null
)
{
if
(
!
matchedIndices
[
i
]
&&
expenses
[
i
]
!==
null
)
{
...
@@ -1359,61 +1298,23 @@
...
@@ -1359,61 +1298,23 @@
}
}
}
}
}
}
/*// 记录结束时间
}
const endTime1 = new Date().getTime();
// 计算执行时间(以毫秒为单位)
const executionTime1 = endTime1 - startTime1;
// 输出执行时间
console.log(`费用转换执行时间:${executionTime1} 毫秒`);
console.log(p);*/
})
})
materialList
().
then
(
response
=>
{
materialList
().
then
(
response
=>
{
const
startTime
=
new
Date
().
getTime
();
const
startTime
=
new
Date
().
getTime
();
/*let SixMateriel=[];
let
SixMateriel
=
[];
let MaterielCode=[];
let
MaterielCode
=
[];
let NewMarterielCode=[];
let
NewMarterielCode
=
[];
let SixList=[];
let
SixList
=
[];
let newSmasll =newsmallMat;
let
newSmasll
=
smallMat
;
let m=0
SixMateriel
=
response
.
rows
;
NewMarterielCode
=
sortArray
(
SixMateriel
)
SixMateriel=response.rows.slice(92,246);
for(var i=0;i<SixMateriel.length;i++){
if(SixMateriel[i].code!==null){
MaterielCode.push(SixMateriel[i])
}
}
NewMarterielCode= sortArray(MaterielCode)
for (let i = 0; i < NewMarterielCode.length; i++) {
for (let j = 0; j < newSmasll.length; j++) {
if(newSmasll[j] !== null){
m++
if (NewMarterielCode[i].code==newSmasll[j].code.slice(0,NewMarterielCode[i].code.length)) {
SixList[newSmasll[j].index]=NewMarterielCode[i].codes;
newSmasll.splice(j,1);
j--;
}
}
}
}
for (let k = 0; k < newSmasll.length; k++) {
SixList[newSmasll[k].index]='11';
m++;
}
this.NewSixList=SixList*/
let
SixMateriel
=
[];
let
MaterielCode
=
[];
let
NewMarterielCode
=
[];
let
SixList
=
[];
let
newSmasll
=
smallMat
;
SixMateriel
=
response
.
rows
;
NewMarterielCode
=
sortArray
(
SixMateriel
)
const
startTime1
=
new
Date
().
getTime
();
const
startTime1
=
new
Date
().
getTime
();
try
{
try
{
// //转化编码
// //转化编码
let
p
=
0
;
let
p
=
0
;
for
(
var
i
=
0
;
i
<
newSmasll
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
newSmasll
.
length
;
i
++
)
{
for
(
var
j
=
0
;
j
<
NewMarterielCode
.
length
;
j
++
)
{
for
(
var
j
=
0
;
j
<
NewMarterielCode
.
length
;
j
++
)
{
if
(
newSmasll
[
i
]
!==
null
)
{
if
(
newSmasll
[
i
]
!==
null
)
{
if
(
NewMarterielCode
[
j
]
&&
NewMarterielCode
[
j
].
code
&&
newSmasll
[
i
].
slice
(
0
,
NewMarterielCode
[
j
].
code
.
length
)
==
NewMarterielCode
[
j
].
code
)
{
if
(
NewMarterielCode
[
j
]
&&
NewMarterielCode
[
j
].
code
&&
newSmasll
[
i
].
slice
(
0
,
NewMarterielCode
[
j
].
code
.
length
)
==
NewMarterielCode
[
j
].
code
)
{
SixList
[
i
]
=
NewMarterielCode
[
j
].
codes
;
SixList
[
i
]
=
NewMarterielCode
[
j
].
codes
;
p
++
;
p
++
;
...
@@ -1427,21 +1328,21 @@
...
@@ -1427,21 +1328,21 @@
}
}
}
}
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
//throw new Error("导入失败,转换编码运行错误,请检查对应规则");
//throw new Error("导入失败,转换编码运行错误,请检查对应规则");
}
}
const
endTime1
=
new
Date
().
getTime
();
const
endTime1
=
new
Date
().
getTime
();
var
warn1
=
0
,
warn2
=
0
;
var
warn1
=
0
,
warn2
=
0
;
const
startTime2
=
new
Date
().
getTime
();
const
startTime2
=
new
Date
().
getTime
();
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
,
k
=
0
;
i
<
data
.
length
;
i
++
,
k
++
)
{
for
(
let
i
=
parseFloat
(
sysRulez
[
0
].
re
)
+
1
,
k
=
0
;
i
<
data
.
length
;
i
++
,
k
++
)
{
let
values
=
[];
let
values
=
[];
if
(
data
[
i
][
key_i
]
&&
data
[
i
][
key_i
]
!=
null
)
{
if
(
data
[
i
][
key_i
]
&&
data
[
i
][
key_i
]
!=
null
)
{
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
for
(
let
j
=
0
;
j
<
value
.
length
;
j
++
)
{
try
{
try
{
if
(
data
[
i
][
value
[
j
]]
&&
data
[
i
][
value
[
j
]]
!=
null
)
{
if
(
data
[
i
][
value
[
j
]]
&&
data
[
i
][
value
[
j
]]
!=
null
)
{
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
let
a
=
parseFloat
(
data
[
i
][
value
[
j
]].
v
);
values
.
push
(
a
);
//values['10','20.69']
values
.
push
(
a
);
//values['10','20.69']
}
else
{
}
else
{
warn1
++
;
warn1
++
;
}
}
}
catch
(
err
)
{
}
catch
(
err
)
{
...
@@ -1453,20 +1354,17 @@
...
@@ -1453,20 +1354,17 @@
}
}
}
}
if
(
SixList
[
k
]
==
undefined
)
{
if
(
SixList
[
k
]
==
undefined
)
{
// warn1++; //如果为空,统计为undefined
// warn1++; //如果为空,统计为undefined
}
else
{
}
else
{
if
(
deps
[
k
]
==
undefined
)
{
if
(
deps
[
k
]
==
undefined
)
{
warn2
++
;
warn2
++
;
}
else
{
}
else
{
let
key
=
SixList
[
k
]
+
'
/
'
+
deps
[
k
]
+
'
/
'
+
units
[
k
]
+
'
/
'
+
expenses
[
k
];
let
key
=
SixList
[
k
]
+
'
/
'
+
deps
[
k
]
+
'
/
'
+
units
[
k
]
+
'
/
'
+
expenses
[
k
];
if
(
map
.
has
(
key
))
{
if
(
map
.
has
(
key
))
{
let
oldValues
=
map
.
get
(
key
);
let
oldValues
=
map
.
get
(
key
);
/*for (let i = 0; i < values.length; i++) {
let
money
=
values
[
0
]
*
values
[
1
];
values[i] = parseFloat(parseFloat(values[i] + oldValues[i]).toFixed(2));
}*/
let
money
=
values
[
0
]
*
values
[
1
];
values
[
0
]
=
parseFloat
(
parseFloat
(
values
[
0
]
+
oldValues
[
0
]).
toFixed
(
2
));
values
[
0
]
=
parseFloat
(
parseFloat
(
values
[
0
]
+
oldValues
[
0
]).
toFixed
(
2
));
values
[
1
]
=
parseFloat
(
parseFloat
(
money
+
oldValues
[
1
]).
toFixed
(
2
));
values
[
1
]
=
parseFloat
(
parseFloat
(
money
+
oldValues
[
1
]).
toFixed
(
2
));
...
@@ -1483,10 +1381,6 @@
...
@@ -1483,10 +1381,6 @@
if
(
map
.
size
===
0
)
{
if
(
map
.
size
===
0
)
{
throw
new
Error
(
"
导入失败,导入文件错误
"
);
throw
new
Error
(
"
导入失败,导入文件错误
"
);
}
}
//返回单元格第二行的数据
//let celn=luckysheet.getcellvalue(1);
//返回当前工作表第1列数据
//let cown=luckysheet.getcellvalue(null,0);
let
config
;
let
config
;
let
bord
=
{
let
bord
=
{
"
rangeType
"
:
"
range
"
,
"
rangeType
"
:
"
range
"
,
...
@@ -1502,18 +1396,18 @@
...
@@ -1502,18 +1396,18 @@
const
startTime3
=
new
Date
().
getTime
();
const
startTime3
=
new
Date
().
getTime
();
map
.
forEach
((
value
,
key
)
=>
{
map
.
forEach
((
value
,
key
)
=>
{
let
rowws
;
let
rowws
;
const
suffixArr
=
key
.
split
(
'
/
'
),
mat
=
suffixArr
[
0
],
depp
=
suffixArr
[
1
],
unitt
=
suffixArr
[
2
],
expensee
=
suffixArr
[
3
];
const
suffixArr
=
key
.
split
(
'
/
'
),
mat
=
suffixArr
[
0
],
depp
=
suffixArr
[
1
],
unitt
=
suffixArr
[
2
],
expensee
=
suffixArr
[
3
];
//返回当前工作表第1列数据
//返回当前工作表第1列数据
let
cown
=
luckysheet
.
getcellvalue
(
null
,
0
);
let
cown
=
luckysheet
.
getcellvalue
(
null
,
0
);
for
(
let
i
=
0
;
i
<
cown
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
cown
.
length
;
i
++
)
{
if
(
cown
[
i
]
==
null
)
{
if
(
cown
[
i
]
==
null
)
{
continue
;
continue
;
}
}
if
(
cown
[
i
].
v
==
undefined
)
{
if
(
cown
[
i
].
v
==
undefined
)
{
continue
;
continue
;
}
}
if
(
cown
[
i
].
v
==
mat
)
{
if
(
cown
[
i
].
v
==
mat
)
{
rowws
=
i
;
rowws
=
i
;
break
;
break
;
}
}
}
}
...
@@ -1539,16 +1433,9 @@
...
@@ -1539,16 +1433,9 @@
luckysheet
.
setCellValue
(
rowws
+
1
,
sysRulez
[
3
].
ct
,
expensee
);
luckysheet
.
setCellValue
(
rowws
+
1
,
sysRulez
[
3
].
ct
,
expensee
);
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
sysRules
.
length
;
i
++
)
{
luckysheet
.
setCellValue
(
rowws
+
1
,
sysRules
[
i
].
ct
,
value
[
i
]);
luckysheet
.
setCellValue
(
rowws
+
1
,
sysRules
[
i
].
ct
,
value
[
i
]);
//修改单元格样式
/*luckysheet.setCellValue(rowws+g, sysRules[i].ct, {
"ct": {
"fa": "General",
"t": "n"
}
});*/
}
}
//输出单价
//输出单价
luckysheet
.
setCellValue
(
rowws
+
1
,
parseInt
(
sysRules
[
0
].
ct
)
+
1
,
value
[
1
]
/
value
[
0
]
);
luckysheet
.
setCellValue
(
rowws
+
1
,
parseInt
(
sysRules
[
0
].
ct
)
+
1
,
Math
.
abs
(
value
[
1
]
/
value
[
0
])
);
//修改单价样式
//修改单价样式
/*luckysheet.setCellValue(rowws+g,parseInt(sysRules[0].ct)+1,{
/*luckysheet.setCellValue(rowws+g,parseInt(sysRules[0].ct)+1,{
"ct": {
"ct": {
...
@@ -1558,18 +1445,18 @@
...
@@ -1558,18 +1445,18 @@
});*/
});*/
config
=
luckysheet
.
getConfig
(
0
);
config
=
luckysheet
.
getConfig
(
0
);
bord
.
range
[
0
].
row
=
[
rowws
+
1
,
rowws
+
1
];
bord
.
range
[
0
].
row
=
[
rowws
+
1
,
rowws
+
1
];
bord
.
range
[
0
].
column
=
[
0
,
parseInt
(
sysRules
[
sysRules
.
length
-
1
].
ct
)
+
1
];
bord
.
range
[
0
].
column
=
[
0
,
parseInt
(
sysRules
[
sysRules
.
length
-
1
].
ct
)
+
1
];
config
.
borderInfo
.
push
(
bord
);
config
.
borderInfo
.
push
(
bord
);
luckysheet
.
setConfig
(
config
);
luckysheet
.
setConfig
(
config
);
modify
=
true
;
modify
=
true
;
}
else
{
}
else
{
warn
++
;
warn
++
;
}
}
});
});
const
endTime3
=
new
Date
().
getTime
();
const
endTime3
=
new
Date
().
getTime
();
if
(
warn
===
map
.
size
)
{
if
(
warn
===
map
.
size
)
{
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
throw
new
Error
(
"
导入文件与所选模板规则不匹配
"
);
}
else
if
(
warn
>
0
)
{
}
else
if
(
warn
>
0
)
{
this
.
$message
({
this
.
$message
({
message
:
"
还有
"
+
warn
+
"
条大类没匹配到,请仔细检查导入表
"
,
message
:
"
还有
"
+
warn
+
"
条大类没匹配到,请仔细检查导入表
"
,
type
:
"
warning
"
type
:
"
warning
"
...
@@ -1581,7 +1468,7 @@
...
@@ -1581,7 +1468,7 @@
message
:
"
有
"
+
warn1
+
"
条数据的编码不存在和
"
+
warn2
+
"
条数据的部门不存在,请仔细检查导入表
"
,
message
:
"
有
"
+
warn1
+
"
条数据的编码不存在和
"
+
warn2
+
"
条数据的部门不存在,请仔细检查导入表
"
,
type
:
"
warning
"
type
:
"
warning
"
});
});
}
else
{
}
else
{
this
.
$message
({
this
.
$message
({
message
:
"
有
"
+
warn1
+
"
条数据的编码不存在,请仔细检查导入表
"
,
message
:
"
有
"
+
warn1
+
"
条数据的编码不存在,请仔细检查导入表
"
,
type
:
"
warning
"
type
:
"
warning
"
...
@@ -1599,7 +1486,7 @@
...
@@ -1599,7 +1486,7 @@
const
executionTime
=
endTime
-
startTime
;
const
executionTime
=
endTime
-
startTime
;
const
executionTime1
=
endTime1
-
startTime1
;
const
executionTime1
=
endTime1
-
startTime1
;
const
executionTime2
=
endTime2
-
startTime2
;
const
executionTime2
=
endTime2
-
startTime2
;
const
executionTime3
=
endTime3
-
startTime3
;
const
executionTime3
=
endTime3
-
startTime3
;
// 输出执行时间
// 输出执行时间
console
.
log
(
`代码执行时间:
${
executionTime
}
毫秒`
);
console
.
log
(
`代码执行时间:
${
executionTime
}
毫秒`
);
console
.
log
(
`转换编码执行时间:
${
executionTime1
}
毫秒`
);
console
.
log
(
`转换编码执行时间:
${
executionTime1
}
毫秒`
);
...
@@ -1607,11 +1494,6 @@
...
@@ -1607,11 +1494,6 @@
console
.
log
(
`页面渲染执行时间:
${
executionTime3
}
毫秒`
);
console
.
log
(
`页面渲染执行时间:
${
executionTime3
}
毫秒`
);
resolve
(
response
.
rows
);
resolve
(
response
.
rows
);
innerResolve
();
// 标记当前异步任务完成
innerResolve
();
// 标记当前异步任务完成
/*let find1 = luckysheet.find("合计");
let number = parseInt(find1[0].row)-1;
luckysheet.setCellValue(find1[0].row, sysRules[sysRules.length-1].ct, "=SUM(F2:F"+number+")")*/
}).
catch
(
Error
=>
{
}).
catch
(
Error
=>
{
//必须加,不能删除
//必须加,不能删除
...
@@ -1647,7 +1529,6 @@
...
@@ -1647,7 +1529,6 @@
this
.
from
.
templateId
=
this
.
dfrom
.
templateId
=
tempId
;
this
.
from
.
templateId
=
this
.
dfrom
.
templateId
=
tempId
;
this
.
from
.
importUuid
=
this
.
dfrom
.
importUuid
=
uuid1
;
this
.
from
.
importUuid
=
this
.
dfrom
.
importUuid
=
uuid1
;
this
.
from
.
roleId
=
this
.
dfrom
.
roleId
=
roleId
;
this
.
from
.
roleId
=
this
.
dfrom
.
roleId
=
roleId
;
this
.
dfrom
.
historyName
=
name
+
'
(导入文件)
'
;
this
.
dfrom
.
historyName
=
name
+
'
(导入文件)
'
;
this
.
dfrom
.
historyContent
=
str
;
this
.
dfrom
.
historyContent
=
str
;
this
.
dfrom
.
identifyingCode
=
0
;
this
.
dfrom
.
identifyingCode
=
0
;
...
@@ -1668,40 +1549,8 @@
...
@@ -1668,40 +1549,8 @@
this
.
from
.
tylkStatus
=
1
;
this
.
from
.
tylkStatus
=
1
;
this
.
from
.
mining
=
this
.
mining
this
.
from
.
mining
=
this
.
mining
list
.
push
(
this
.
from
);
list
.
push
(
this
.
from
);
/*let data = contents.sheets[0].celldata
addInsert
(
list
).
then
(
response
=>
{
let newArray = []
if
(
response
.
code
==
200
)
{
outerLoop: for (let row = 0; row < data.length; row++) {
if (data[row].v.v !== null && 'v' in data[row]) {
if (typeof data[row].v.v === 'number') {
newArray = newArray.filter(item => item.row !== data[row].r); // 删除row相等的数据
break outerLoop; // 停止整个循环
} else {
newArray.push({ "row": data[row].r, "column": data[row].c, "value": data[row].v.v, "desc": `a${newArray.length + 1}` });
}
}
}
for (let i = 0; i < newArray.length; i++) {
if (newArray[i].row > 1) {
const currentRow = newArray[i].row;
const column = newArray[i].column;
const value = newArray[i].value;
let j = i - 1;
while (j >= 0 && newArray[j].row === currentRow - 1) {
if (newArray[j].column === column) {
newArray[j].value += value;
newArray.splice(i, 1);
i--;
break;
}
j--;
}
}
}
let updatedArray = JSON.stringify(newArray.map(obj => ({ value: obj.value, desc: obj.desc })));*/
addInsert
(
list
).
then
(
response
=>
{
if
(
response
.
code
==
200
){
this
.
$message
({
this
.
$message
({
message
:
'
保存成功
'
,
type
:
'
success
'
message
:
'
保存成功
'
,
type
:
'
success
'
})
})
...
@@ -1761,15 +1610,14 @@
...
@@ -1761,15 +1610,14 @@
addInsert2
(
list1
).
then
(
response
=>
{
addInsert2
(
list1
).
then
(
response
=>
{
});
});
});
});
},
500
),
// 设置延迟时间,单位为毫秒
},
500
),
// 设置延迟时间,单位为毫秒
}
}
// 配置项111
// 配置项111
};
};
// debounce函数定义
// debounce函数定义
function
debounce
(
func
,
delay
)
{
function
debounce
(
func
,
delay
)
{
let
timer
;
let
timer
;
return
function
()
{
return
function
()
{
const
context
=
this
;
const
context
=
this
;
...
@@ -1779,8 +1627,8 @@
...
@@ -1779,8 +1627,8 @@
func
.
apply
(
context
,
args
);
func
.
apply
(
context
,
args
);
},
delay
);
},
delay
);
};
};
}
}
function
getKeyByValue
(
map
,
value
)
{
function
getKeyByValue
(
map
,
value
)
{
for
(
let
[
key
,
val
]
of
map
)
{
for
(
let
[
key
,
val
]
of
map
)
{
if
(
val
===
value
)
{
if
(
val
===
value
)
{
return
key
;
return
key
;
...
@@ -1789,15 +1637,15 @@
...
@@ -1789,15 +1637,15 @@
return
key
;
return
key
;
}
}
}
}
}
}
function
generateUUID
()
{
function
generateUUID
()
{
let
array
=
new
Uint32Array
(
4
);
let
array
=
new
Uint32Array
(
4
);
window
.
crypto
.
getRandomValues
(
array
);
window
.
crypto
.
getRandomValues
(
array
);
return
array
.
join
(
"
-
"
);
return
array
.
join
(
"
-
"
);
}
}
</
script
>
</
script
>
<
style
>
<
style
>
.mask
{
.mask
{
position
:
fixed
;
position
:
fixed
;
top
:
0
;
top
:
0
;
left
:
0
;
left
:
0
;
...
@@ -1807,9 +1655,9 @@
...
@@ -1807,9 +1655,9 @@
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
}
}
.loading-spinner
{
.loading-spinner
{
/* 添加你的加载动画样式 */
/* 添加你的加载动画样式 */
width
:
40px
;
width
:
40px
;
height
:
40px
;
height
:
40px
;
...
@@ -1817,9 +1665,9 @@
...
@@ -1817,9 +1665,9 @@
border
:
4px
solid
#f3f3f3
;
border
:
4px
solid
#f3f3f3
;
border-top
:
4px
solid
#3498db
;
border-top
:
4px
solid
#3498db
;
animation
:
spin
1s
linear
infinite
;
animation
:
spin
1s
linear
infinite
;
}
}
@keyframes
spin
{
@keyframes
spin
{
0
%
{
0
%
{
transform
:
rotate
(
0deg
);
transform
:
rotate
(
0deg
);
}
}
...
@@ -1827,5 +1675,5 @@
...
@@ -1827,5 +1675,5 @@
100
%
{
100
%
{
transform
:
rotate
(
360deg
);
transform
:
rotate
(
360deg
);
}
}
}
}
</
style
>
</
style
>
ruoyi-ui/src/views/system/supplies/index_template.vue
View file @
acae3d48
...
@@ -330,6 +330,7 @@ export default {
...
@@ -330,6 +330,7 @@ export default {
name
:
"
SuppliesTemplate
"
,
name
:
"
SuppliesTemplate
"
,
data
()
{
data
()
{
return
{
return
{
uploading
:
''
,
selectedOption
:
''
,
selectedOption
:
''
,
positionValue
:
'
static
'
,
positionValue
:
'
static
'
,
fileList
:
[{
fileList
:
[{
...
@@ -444,9 +445,9 @@ export default {
...
@@ -444,9 +445,9 @@ export default {
/**上传事件 */
/**上传事件 */
async
beforeUpload
(
file
)
{
async
beforeUpload
(
file
)
{
console
.
log
(
file
)
//存在重复
//存在重复
findName
(
file
.
name
).
then
(
result
=>
{
findName
(
file
.
name
).
then
(
result
=>
{
console
.
log
(
result
.
data
)
if
(
result
.
data
===
"
存在重复
"
)
{
if
(
result
.
data
===
"
存在重复
"
)
{
this
.
fileListName
=
[];
this
.
fileListName
=
[];
...
@@ -462,6 +463,7 @@ export default {
...
@@ -462,6 +463,7 @@ export default {
}
}
this
.
uploading
=
true
;
this
.
uploading
=
true
;
await
LuckyExcel
.
transformExcelToLucky
(
file
,
(
exportJson
,
lucksheetfile
)
=>
{
await
LuckyExcel
.
transformExcelToLucky
(
file
,
(
exportJson
,
lucksheetfile
)
=>
{
console
.
log
(
exportJson
,
lucksheetfile
)
this
.
form
.
templateName
=
file
.
name
;
this
.
form
.
templateName
=
file
.
name
;
this
.
form
.
templateContent
=
JSON
.
stringify
(
exportJson
.
sheets
);
this
.
form
.
templateContent
=
JSON
.
stringify
(
exportJson
.
sheets
);
});
});
...
@@ -555,7 +557,7 @@ export default {
...
@@ -555,7 +557,7 @@ export default {
if
(
row
.
status
===
1
)
{
if
(
row
.
status
===
1
)
{
this
.
title
=
"
修改导入规则
"
;
this
.
title
=
"
修改导入规则
"
;
this
.
selectedOption
=
''
;
this
.
selectedOption
=
''
;
this
.
forms
=
''
;
this
.
forms
=
{}
;
this
.
instea
=
''
;
this
.
instea
=
''
;
const
id
=
row
.
id
||
this
.
ids
const
id
=
row
.
id
||
this
.
ids
listSuppliesrole
(
id
).
then
(
response
=>
{
listSuppliesrole
(
id
).
then
(
response
=>
{
...
...
ruoyi-ui/src/views/system/supplies/index_vue.vue
View file @
acae3d48
...
@@ -9,6 +9,13 @@
...
@@ -9,6 +9,13 @@
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"清洗规则"
prop=
"roleid"
>
<el-select
v-model=
"selectedRule"
ref=
"mySelect"
size=
"mini"
@
change=
"handleRuleChange"
filterable
placeholder=
"请选择您要查看的规则"
>
<el-option
v-for=
"iem in luckyrule"
:key=
"iem.id"
:label=
"iem.roleName"
:value=
"iem.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"时间"
prop=
"date"
>
<el-form-item
label=
"时间"
prop=
"date"
>
<el-date-picker
@
change=
"handledateChange"
v-model=
"date"
type=
"month"
placeholder=
"选择月"
>
<el-date-picker
@
change=
"handledateChange"
v-model=
"date"
type=
"month"
placeholder=
"选择月"
>
</el-date-picker>
</el-date-picker>
...
@@ -37,7 +44,21 @@
...
@@ -37,7 +44,21 @@
<el-button
:plain=
"true"
style=
"display: none;"
@
click=
"open4"
>
错误
</el-button>
<el-button
:plain=
"true"
style=
"display: none;"
@
click=
"open4"
>
错误
</el-button>
</el-col>
</el-col>
<el-button
plain
size=
"mini"
type=
"primary"
@
click=
"dialogTableVisible = true"
>
查看
</el-button>
</el-row>
</el-row>
<el-dialog
title=
"详细信息"
:visible.sync=
"dialogTableVisible"
>
<el-table
:data=
"detail"
>
<el-table-column
property=
"v.name"
label=
"行"
></el-table-column>
<el-table-column
property=
"v.material"
label=
"列"
></el-table-column>
<el-table-column
property=
"v.v"
label=
"金额"
></el-table-column>
<el-table-column
label=
"合并的行"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
index
.
map
(
index
=>
index
+
1
).
join
(
'
,
'
)
}}
</
template
>
</el-table-column>
</el-table>
</el-dialog>
<!-- luckysheet容器 -->
<!-- luckysheet容器 -->
<div
id=
"luckysheet"
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%; height:80vh; z-index: 0"
>
<div
id=
"luckysheet"
style=
"margin: 0px; padding: 0px; position: absolute; width: 100%; height:80vh; z-index: 0"
>
</div>
</div>
...
@@ -50,28 +71,38 @@
...
@@ -50,28 +71,38 @@
<
script
>
<
script
>
import
{
selectActSuppliesHistorydata
}
from
"
@/api/Actsupplies/cleaning_rule
"
;
import
{
selectActSuppliesHistorydata
,
selectActSuppliesHistorydataAcc
}
from
"
@/api/Actsupplies/cleaning_rule
"
;
import
{
getSuppliesTemplate
,
listSuppliesTemplate
,
roleList
,
materialConvert
,
materialListPZ
,
accountingcode
,
department
,
roleListid
,
materialList
}
from
"
@/api/ruoyi-myLuckyexcel/myluckyexcel
"
;
import
{
getSuppliesTemplate
,
listSuppliesTemplate
,
roleList
,
materialConvert
,
materialListPZ
,
accountingcode
,
department
,
roleListid
,
materialList
}
from
"
@/api/ruoyi-myLuckyexcel/myluckyexcel
"
;
import
{
addInsert
,
addInsert1
,
addInsert2
,
addInsertAccount1
,
addInsertAccount2
}
from
"
@/api/system/historydata
"
import
{
addInsert
,
addInsert1
,
addInsert2
,
addInsertAccount1
,
addInsertAccount2
}
from
"
@/api/system/historydata
"
/*import luckysheet from 'luckysheet'*/
/*import luckysheet from 'luckysheet'*/
import
LuckyExcel
from
'
luckyexcel
'
import
LuckyExcel
from
'
luckyexcel
'
//导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
//导入库export.js 这个文件是es6的,不能在普通的HTML文件直接引入js文件(虽然都是js文件,但是有区别,具体请百度es6与es5)!需要把es6转es5才可以直接引入使用!
/*import {materialList} from "@/api/ruoyi-myLuckyexcel/myluckyexcel";*/
/*import {materialList} from "@/api/ruoyi-myLuckyexcel/myluckyexcel";*/
import
{
exportExcel
}
from
'
../../../../public/exportExcel
'
;
import
{
exportExcel
}
from
'
../../../../public/exportExcel
'
;
import
{
v4
as
uuidv4
}
from
'
uuid
'
;
import
{
v4
as
uuidv4
}
from
'
uuid
'
;
import
{
getInfo
}
from
"
@/api/login
"
;
import
{
getInfo
}
from
"
@/api/login
"
;
import
{
listSuppliesexpense
}
from
"
../../../api/ActClassification/ActClassification
"
;
import
{
listSuppliesexpense
}
from
"
../../../api/ActClassification/ActClassification
"
;
var
fileName
=
"
新建XLSX工作表
"
;
//定义表名
var
fileName
=
"
新建XLSX工作表
"
;
//定义表名
var
rule
=
[];
var
rule
=
[];
var
tempId
;
var
tempId
;
var
roleId
;
var
roleId
;
var
uuid1
;
var
uuid1
;
var
trueORfalse
=
false
;
var
trueORfalse
=
false
;
var
modify
=
false
;
var
modify
=
false
;
export
default
{
export
default
{
name
:
"
Mymodule
"
,
name
:
"
Mymodule
"
,
data
()
{
data
()
{
return
{
return
{
//详细信息
dialogTableVisible
:
false
,
//清洗规则名字
selectname
:
''
,
//详情页
detail
:
[],
//kuang
mine
:
''
,
num
:
1
,
nums
:
1
,
value
:
''
,
value
:
''
,
VoucherForm
:
''
,
VoucherForm
:
''
,
miningValue
:
[
miningValue
:
[
...
@@ -85,8 +116,19 @@
...
@@ -85,8 +116,19 @@
name
:
'
唐山矿
'
,
name
:
'
唐山矿
'
,
id
:
'
010101
'
id
:
'
010101
'
},
},
{
name
:
'
东欢坨矿
'
,
id
:
'
010102
'
},
{
name
:
'
单侯矿
'
,
id
:
'
011204
'
}
],
],
Cleaningrole
:
''
,
phone
:
''
,
classify
:
''
,
userName
:
''
,
userName
:
''
,
//选择的矿区
//选择的矿区
select
:
''
,
select
:
''
,
...
@@ -96,16 +138,20 @@
...
@@ -96,16 +138,20 @@
jsondata
:
''
,
jsondata
:
''
,
//编码数据
//编码数据
codess
:
''
,
codess
:
''
,
luckyrule
:
[],
showMask
:
false
,
showMask
:
false
,
//选中的表的数据
//选中的表的数据
selected
:
''
,
selected
:
''
,
uuid
:
''
,
uuid
:
''
,
//弹出页面的表名
//弹出页面的表名
from_name
:
""
,
from_name
:
""
,
//单侯煤矿的成本表
newArray
:
''
,
//往后台穿的导入表的东西
//往后台穿的导入表的东西
ImportTables
:
{},
ImportTables
:
{},
//往后台传生成表的数据
//往后台传生成表的数据
generate
:
{},
generate
:
{},
cleaning
:
''
,
// 是否显示弹出层
// 是否显示弹出层
dialogVisible
:
false
,
dialogVisible
:
false
,
selectedOption
:
''
,
selectedOption
:
''
,
...
@@ -151,9 +197,6 @@
...
@@ -151,9 +197,6 @@
this
.
init
();
this
.
init
();
fileName
=
"
新建XLSX工作表
"
;
fileName
=
"
新建XLSX工作表
"
;
this
.
list
()
this
.
list
()
},
computed
:
{
},
},
methods
:
{
methods
:
{
//查询材料编码
//查询材料编码
...
@@ -161,6 +204,9 @@
...
@@ -161,6 +204,9 @@
materialListPZ
().
then
(
response
=>
{
materialListPZ
().
then
(
response
=>
{
this
.
codess
=
response
.
rows
this
.
codess
=
response
.
rows
})
})
//查用户名称
//查用户名称
getInfo
().
then
(
response
=>
{
getInfo
().
then
(
response
=>
{
...
@@ -180,19 +226,51 @@
...
@@ -180,19 +226,51 @@
//const json_data = response.data;
//const json_data = response.data;
this
.
jsondata
=
JSON
.
parse
(
sysSupplies
[
0
].
templateContent
);
this
.
jsondata
=
JSON
.
parse
(
sysSupplies
[
0
].
templateContent
);
})
})
//单侯煤矿需要的东西
getSuppliesTemplate
(
1264
).
then
(
response
=>
{
const
sysSupplies
=
response
.
rows
;
this
.
newArray
=
JSON
.
parse
(
sysSupplies
[
0
].
templateContent
);
})
},
//手机号
open
(
evt
)
{
this
.
$prompt
(
'
请输入用友系统的用户名
'
,
'
提示
'
,
{
confirmButtonText
:
'
确定
'
,
cancelButtonText
:
'
取消
'
,
inputPattern
:
/^
(?:\+?
86
)?
1
[
3-9
]\d{9}
$/
,
inputErrorMessage
:
'
手机号格式不正确
'
}).
then
(({
value
})
=>
{
this
.
$message
({
type
:
'
success
'
,
message
:
'
你的用户名是:
'
+
value
});
this
.
phone
=
value
this
.
zhuan
(
evt
)
}).
catch
(()
=>
{
this
.
$message
({
type
:
'
info
'
,
message
:
'
取消输入
'
});
this
.
showMask
=
false
});
},
},
/** 判断是否选择时间*/
/** 判断是否选择时间*/
rulesdate
()
{
rulesdate
()
{
const
minvalue
=
this
.
miningValue
.
find
(
obj
=>
obj
.
id
===
this
.
mining
)
const
minvalue
=
this
.
miningValue
.
find
(
obj
=>
obj
.
id
===
this
.
mining
)
const
Luckysheetlabel
=
this
.
luckyrule
.
find
(
obj
=>
obj
.
id
===
this
.
selectedRule
);
if
(
this
.
date
==
''
||
this
.
date
==
null
)
{
if
(
this
.
date
==
''
||
this
.
date
==
null
)
{
this
.
disableNextButton
=
true
;
this
.
disableNextButton
=
true
;
this
.
$message
.
error
(
'
请选择时间日期!
'
);
this
.
$message
.
error
(
'
请选择时间日期!
'
);
}
else
if
(
this
.
mining
==
''
||
this
.
mining
==
null
)
{
}
else
if
(
this
.
mining
==
''
||
this
.
mining
==
null
)
{
this
.
disableNextButton
=
true
;
this
.
disableNextButton
=
true
;
this
.
$message
.
error
(
'
请选择所属矿区!
'
);
this
.
$message
.
error
(
'
请选择所属矿区!
'
);
}
else
if
(
this
.
cleaning
==
''
)
{
this
.
disableNextButton
=
true
;
this
.
$message
.
error
(
'
请选则清洗规则!
'
);
}
}
},
},
handledateChange
(
value
)
{
handledateChange
(
value
)
{
...
@@ -214,9 +292,14 @@
...
@@ -214,9 +292,14 @@
}
}
},
},
handleminingChange
(
value
)
{
handleminingChange
(
value
)
{
this
.
select
=
value
department
(
value
).
then
(
response
=>
{
department
(
value
).
then
(
response
=>
{
this
.
classify
=
response
})
})
const
selectedItem
=
this
.
miningValue
.
find
(
item
=>
item
.
id
===
value
);
if
(
selectedItem
)
{
this
.
mine
=
selectedItem
.
name
}
this
.
select
=
value
if
(
this
.
date
==
''
||
this
.
date
==
null
||
this
.
date
==
undefined
)
{
if
(
this
.
date
==
''
||
this
.
date
==
null
||
this
.
date
==
undefined
)
{
this
.
disableNextButton
=
true
;
this
.
disableNextButton
=
true
;
}
else
{
}
else
{
...
@@ -255,7 +338,8 @@
...
@@ -255,7 +338,8 @@
//将接收到的json存到json_data中
//将接收到的json存到json_data中
//const json_data = response.data;
//const json_data = response.data;
var
json_data
=
JSON
.
parse
(
sysSupplies
[
0
].
templateContent
);
var
json_data
=
JSON
.
parse
(
sysSupplies
[
0
].
templateContent
);
roleList
(
this
.
selectedOption
).
then
(
response
=>
{
roleList
(
value
).
then
(
response
=>
{
this
.
luckyrule
=
response
.
rows
;
});
});
let
suffixArr
=
sysSupplies
[
0
].
templateName
.
split
(
'
.
'
);
let
suffixArr
=
sysSupplies
[
0
].
templateName
.
split
(
'
.
'
);
fileName
=
suffixArr
[
0
];
fileName
=
suffixArr
[
0
];
...
@@ -276,7 +360,12 @@
...
@@ -276,7 +360,12 @@
this
.
$message
.
error
(
'
找不到部门名称或者结算金额和材料编码列,请改为正确名称
'
);
this
.
$message
.
error
(
'
找不到部门名称或者结算金额和材料编码列,请改为正确名称
'
);
},
},
/** 规则下拉选 调佣后端的方法*/
/** 规则下拉选 调佣后端的方法*/
handleRuleChange
()
{
handleRuleChange
(
value
)
{
const
selectedItem
=
this
.
luckyrule
.
find
(
item
=>
item
.
id
===
value
);
if
(
selectedItem
)
{
this
.
selectname
=
selectedItem
.
roleName
}
if
(
this
.
selectedOption
===
''
)
{
if
(
this
.
selectedOption
===
''
)
{
this
.
selectedRule
=
''
;
this
.
selectedRule
=
''
;
this
.
$message
.
warning
(
"
选择规则前请先选择模板!
"
);
this
.
$message
.
warning
(
"
选择规则前请先选择模板!
"
);
...
@@ -287,17 +376,26 @@
...
@@ -287,17 +376,26 @@
roleListid
(
this
.
selectedRule
).
then
(
response
=>
{
roleListid
(
this
.
selectedRule
).
then
(
response
=>
{
roleId
=
this
.
selectedRule
;
roleId
=
this
.
selectedRule
;
rule
=
response
.
rows
;
rule
=
response
.
rows
;
//清洗规则
this
.
cleaning
=
JSON
.
parse
(
response
.
rows
[
0
].
detailContent
)
this
.
ImportTables
.
convenRole
=
response
.
rows
[
0
].
detailContent
});
});
if
(
tempId
===
7
||
tempId
===
10
)
{
if
(
tempId
===
7
||
tempId
===
10
)
{
getSuppliesTemplate
(
tempId
).
then
(
response
=>
{
getSuppliesTemplate
(
tempId
).
then
(
response
=>
{
uuid1
=
this
.
uuid
=
uuidv4
().
substring
(
0
,
8
);
uuid1
=
this
.
uuid
=
uuidv4
().
substring
(
0
,
8
);
// 通过遍历this.luckyrule找到对应的iem.roleName
// 通过遍历this.luckyrule找到对应的iem.roleName
for
(
let
i
=
0
;
i
<
this
.
luckyrule
.
length
;
i
++
)
{
if
(
this
.
luckyrule
[
i
].
id
===
this
.
selectedRule
)
{
let
name
=
this
.
luckyrule
[
i
].
roleName
;
fileName
=
name
.
slice
(
0
,
-
2
);
break
;
}
}
modify
=
false
;
modify
=
false
;
const
sysSupplies
=
response
.
rows
;
const
sysSupplies
=
response
.
rows
;
this
.
luckysheetData
=
sysSupplies
[
0
].
templateContent
;
this
.
luckysheetData
=
sysSupplies
[
0
].
templateContent
;
let
json_data
=
JSON
.
parse
(
sysSupplies
[
0
].
templateContent
);
let
json_data
=
JSON
.
parse
(
sysSupplies
[
0
].
templateContent
);
//luckysheet.destroy()
luckysheet
.
create
({
luckysheet
.
create
({
container
:
"
luckysheet
"
,
// Luckysheet 的容器元素 ID
container
:
"
luckysheet
"
,
// Luckysheet 的容器元素 ID
title
:
fileName
,
// Excel 文件名
title
:
fileName
,
// Excel 文件名
...
@@ -320,6 +418,8 @@
...
@@ -320,6 +418,8 @@
fileName
=
"
新建XLSX工作表
"
;
fileName
=
"
新建XLSX工作表
"
;
this
.
selectedOption
=
''
;
this
.
selectedOption
=
''
;
this
.
disableNextButton
=
''
;
this
.
disableNextButton
=
''
;
this
.
luckyrule
=
[];
this
.
selectedRule
=
''
;
this
.
selectedRule
=
''
;
trueORfalse
=
false
;
trueORfalse
=
false
;
modify
=
false
;
modify
=
false
;
...
@@ -395,7 +495,7 @@
...
@@ -395,7 +495,7 @@
lang
:
'
zh
'
,
lang
:
'
zh
'
,
});
});
modify
=
false
;
modify
=
false
;
this
.
zhua
n
(
evt
)
this
.
ope
n
(
evt
)
}).
then
(
async
()
=>
{
}).
then
(
async
()
=>
{
...
@@ -407,11 +507,11 @@
...
@@ -407,11 +507,11 @@
this
.
$message
({
type
:
'
info
'
,
message
:
'
操作已取消
'
});
this
.
$message
({
type
:
'
info
'
,
message
:
'
操作已取消
'
});
});
});
}
else
{
}
else
{
this
.
zhua
n
(
evt
)
this
.
ope
n
(
evt
)
this
.
showMask
=
true
;
this
.
showMask
=
true
;
LuckyExcel
(
evt
,
exportJson
=>
{
LuckyExcel
(
evt
,
exportJson
=>
{
//获取导入表格所有数据exportJson
//获取导入表格所有数据exportJson
this
.
zhua
n
(
exportJson
)
this
.
ope
n
(
exportJson
)
// this.summary(exportJson)
// this.summary(exportJson)
.
then
(
async
()
=>
{
.
then
(
async
()
=>
{
...
@@ -433,9 +533,8 @@
...
@@ -433,9 +533,8 @@
}
}
},
},
//转换方法 cc是导入表数据
//转换方法 cc是导入表数据
// 唐山矿转入方法
zhuan
(
file
)
{
zhuan
(
file
)
{
let
cc
=
''
;
let
cc
=
''
;
const
transformPromise
=
new
Promise
((
resolve
,
reject
)
=>
{
const
transformPromise
=
new
Promise
((
resolve
,
reject
)
=>
{
...
@@ -443,52 +542,70 @@
...
@@ -443,52 +542,70 @@
resolve
(
lucksheetfile
);
resolve
(
lucksheetfile
);
});
});
});
});
transformPromise
.
then
((
result
)
=>
{
transformPromise
.
then
((
result
)
=>
{
let
resultJSON
=
JSON
.
stringify
(
result
.
sheets
)
let
resultJSON
=
JSON
.
stringify
(
result
.
sheets
)
cc
=
result
;
cc
=
result
;
this
.
ImportTables
.
historyName
=
result
.
info
.
name
+
'
(导入表名)
'
let
codess
=
this
.
codess
let
codess
=
this
.
codess
let
he
=
this
.
jsondata
let
he
=
this
.
jsondata
let
classify
=
{
let
classify
=
{}
"
基本生产-原煤
"
:
"
一掘区,二掘区,综一区,综二区,巷修区,皮带区,开运区,准备区,钻探区,开拓区
"
,
this
.
classify
.
forEach
(
item
=>
{
"
基本生产-洗煤
"
:
"
洗煤厂
"
,
if
(
item
.
nameType
)
{
"
制造费用-原煤
"
:
"
机电科,机电设备中心,井运区,救护队,通风区,煤类管理科,物资管理科,通讯管理科,地质测量科,迁建管理科
"
,
if
(
classify
[
item
.
nameType
])
{
"
管理费用-
"
:
"
经营管理部
"
,
classify
[
item
.
nameType
]
+=
`,
${
item
.
name
}
`
;
"
销售费用-
"
:
"
煤类产品管理检测科
"
,
}
else
{
"
其他业务成本-厂区服务
"
:
"
后勤服务一科,后勤二科理部
"
,
classify
[
item
.
nameType
]
=
item
.
name
;
"
其他应付款-
"
:
"
金属厂
"
}
}
}
});
let
c
=
cc
.
sheets
[
0
].
celldata
let
c
=
cc
.
sheets
[
0
].
celldata
//部门名称所在列
//表头所在行
let
DepartmentColumns
=
c
.
flat
().
filter
(
obj
=>
obj
.
v
&&
obj
.
v
.
v
===
"
部门名称
"
)[
0
]?.
c
;
let
headRow
=
this
.
cleaning
[
0
].
HeaderRow
-
1
//结算金额所在列
//部门名称列
let
ExpenseColumn
=
c
.
flat
().
filter
(
obj
=>
obj
.
v
&&
obj
.
v
.
v
===
"
结算金额
"
)[
0
]?.
c
;
let
DepartmentColumns
=
this
.
cleaning
[
0
].
DepartmentColumn
-
1
//材料编码
let
Department
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
DepartmentColumns
&&
obj
.
r
>
headRow
)
let
code
=
c
.
flat
().
filter
(
obj
=>
obj
.
v
&&
obj
.
v
.
v
===
"
材料编码
"
)[
0
]?.
c
//编码所在列
let
codecolumn
=
this
.
cleaning
[
0
].
CodeColumn
-
1
if
(
code
&&
ExpenseColumn
&&
DepartmentColumns
)
{
let
code
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
codecolumn
&&
obj
.
r
>
headRow
)
let
Colums
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
DepartmentColumns
)
//林西的类别名称
let
Column
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
ExpenseColumn
)
let
names
=
c
.
flat
().
filter
(
obj
=>
obj
.
v
&&
(
obj
.
v
.
v
===
"
类别名称
"
||
obj
.
v
.
v
===
"
收发类别
"
))[
0
]?.
c
;
let
codecolumn
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
code
)
let
name
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
names
&&
obj
.
r
>
headRow
)
//数量所在列
let
numbercolumn
=
this
.
cleaning
[
0
].
NumberColumn
-
1
let
number
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
numbercolumn
&&
obj
.
r
>
headRow
)
//单价所在列
let
MoneyColumn
=
this
.
cleaning
[
0
].
MoneyColumn
-
1
let
moneys
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
MoneyColumn
&&
obj
.
r
>
headRow
)
//算总额
let
money
=
[]
number
.
forEach
((
n
,
index
)
=>
{
if
(
n
.
r
===
moneys
[
index
].
r
)
{
moneys
[
index
].
v
.
v
=
(
moneys
[
index
].
v
.
v
*
n
.
v
.
v
).
toFixed
(
2
)
money
.
push
(
moneys
[
index
])
}
})
// 唐山矿转换方法
//没任何规则
if
(
this
.
mine
.
includes
(
'
唐山
'
)
&&
this
.
selectname
.
includes
(
'
唐山
'
))
{
if
(
code
&&
money
&&
Department
)
{
let
aa
=
[]
let
aa
=
[]
//把这三个数组push到aa里
//把这三个数组push到aa里
aa
.
unshift
(
Column
);
aa
.
unshift
(
money
);
aa
.
unshift
(
code
column
);
aa
.
unshift
(
code
);
aa
.
unshift
(
Colums
);
aa
.
unshift
(
Department
);
//跟材料表的数据对比 如果编码一样 则把导入表的列数换成模板的列数
//跟材料表的数据对比 如果编码一样 则把导入表的列数换成模板的列数
for
(
let
i
=
0
;
i
<
codess
.
length
;
i
++
)
{
codess
.
forEach
(
c
=>
{
let
codeLength
=
String
(
c
odess
[
i
]
.
code
).
length
;
let
codeLength
=
String
(
c
.
code
).
length
;
let
codeToCompare
=
String
(
c
odess
[
i
]
.
code
).
substring
(
0
,
codeLength
);
let
codeToCompare
=
String
(
c
.
code
).
substring
(
0
,
codeLength
);
for
(
let
ii
=
0
;
ii
<
aa
[
1
].
length
;
ii
++
)
{
aa
[
1
].
forEach
(
column
=>
{
let
columnIdString
=
String
(
aa
[
1
][
ii
]
.
v
.
v
);
let
columnIdString
=
String
(
column
.
v
.
v
);
let
idToMatch
=
columnIdString
.
substring
(
0
,
codeLength
);
let
idToMatch
=
columnIdString
.
substring
(
0
,
codeLength
);
if
(
idToMatch
===
codeToCompare
)
{
if
(
idToMatch
===
codeToCompare
)
{
aa
[
1
][
ii
].
ccc
=
codess
[
i
].
oneLevel
*
1
column
.
ccc
=
c
.
oneLevel
*
1
;
}
}
}
}
});
});
//按照部门划分,去找到他所在科室分类
//按照部门划分,去找到他所在科室分类
aa
=
aa
.
map
(
subArr
=>
{
aa
=
aa
.
map
(
subArr
=>
{
...
@@ -502,55 +619,48 @@
...
@@ -502,55 +619,48 @@
obj
.
whether
=
true
obj
.
whether
=
true
return
obj
;
return
obj
;
}
}
else
{
obj
.
whether
=
false
}
}
}
obj
.
whether
=
false
return
obj
;
return
obj
;
});
});
});
});
for
(
let
i
=
0
;
i
<
aa
[
2
].
length
;
i
++
)
{
aa
[
2
].
forEach
((
item
,
i
)
=>
{
if
(
'
name
'
in
aa
[
0
][
i
].
v
)
{
if
(
'
name
'
in
aa
[
0
][
i
].
v
)
{
aa
[
2
][
i
].
v
.
name
=
aa
[
0
][
i
].
v
.
name
item
.
v
.
name
=
aa
[
0
][
i
].
v
.
name
;
}
}
}
});
//直接luck表格初始化 替换数据
//直接luck表格初始化 替换数据
//找到所在的行数,按照 -的前后去找,前面是标题,后面是标题后的小分类,如选煤,洗煤等
//找到所在的行数,按照 -的前后去找,前面是标题,后面是标题后的小分类,如选煤,洗煤等
he
[
0
].
data
=
luckysheet
.
transToData
(
he
[
0
][
"
celldata
"
])
he
[
0
].
data
=
luckysheet
.
transToData
(
he
[
0
][
"
celldata
"
])
for
(
let
i
=
0
;
i
<
aa
[
0
].
length
;
i
++
)
{
aa
[
0
].
forEach
((
item
)
=>
{
if
(
aa
[
0
][
i
].
v
.
m
!==
undefined
)
{
if
(
item
.
v
.
m
!==
undefined
)
{
let
index
=
item
.
v
.
m
.
indexOf
(
"
-
"
);
let
index
=
aa
[
0
][
i
].
v
.
m
.
indexOf
(
"
-
"
);
if
(
index
!==
-
1
)
{
if
(
index
!==
-
1
)
{
let
substrBeforeDash
=
aa
[
0
][
i
].
v
.
m
.
slice
(
0
,
index
);
let
substrBeforeDash
=
item
.
v
.
m
.
slice
(
0
,
index
);
let
DepartColumns
=
he
[
0
][
"
celldata
"
].
flat
().
filter
(
obj
=>
{
let
DepartColumns
=
he
[
0
][
"
celldata
"
].
flat
().
find
(
obj
=>
if
(
obj
.
v
&&
obj
.
v
.
v
&&
typeof
obj
.
v
.
v
===
'
string
'
)
{
obj
.
v
&&
obj
.
v
.
v
&&
typeof
obj
.
v
.
v
===
'
string
'
&&
obj
.
v
.
v
.
includes
(
item
.
v
.
m
.
slice
(
0
,
index
))
return
obj
.
v
.
v
.
includes
(
aa
[
0
][
i
].
v
.
m
.
slice
(
0
,
index
));
);
}
return
false
;
})[
0
];
if
(
DepartColumns
&&
DepartColumns
.
r
)
{
if
(
DepartColumns
&&
DepartColumns
.
r
)
{
let
index
=
aa
[
0
][
i
]
.
v
.
m
.
indexOf
(
"
-
"
)
let
index
=
item
.
v
.
m
.
indexOf
(
"
-
"
)
if
(
index
!==
-
1
)
{
if
(
index
!==
-
1
)
{
let
substrAfterDash
=
aa
[
0
][
i
].
v
.
m
.
slice
(
index
+
1
);
// 获取 "-" 后半段的值
let
substrAfterDash
=
item
.
v
.
m
.
slice
(
index
+
1
);
switch
(
substrAfterDash
)
{
switch
(
substrAfterDash
)
{
case
''
:
case
''
:
aa
[
0
][
i
]
.
r
=
DepartColumns
.
r
;
item
.
r
=
DepartColumns
.
r
;
break
;
break
;
case
'
原煤
'
:
case
'
原煤
'
:
aa
[
0
][
i
]
.
r
=
DepartColumns
.
r
+
1
;
item
.
r
=
DepartColumns
.
r
+
1
;
break
;
break
;
case
'
洗煤
'
:
case
'
洗煤
'
:
aa
[
0
][
i
]
.
r
=
DepartColumns
.
r
+
2
;
item
.
r
=
DepartColumns
.
r
+
2
;
break
;
break
;
case
'
选煤
'
:
case
'
选煤
'
:
aa
[
0
][
i
]
.
r
=
DepartColumns
.
r
+
3
;
item
.
r
=
DepartColumns
.
r
+
3
;
break
;
break
;
case
'
厂区服务
'
:
case
'
厂区服务
'
:
aa
[
0
][
i
]
.
r
=
DepartColumns
.
r
+
1
;
item
.
r
=
DepartColumns
.
r
+
1
;
break
;
break
;
default
:
default
:
// 默认情况
// 默认情况
...
@@ -559,49 +669,61 @@
...
@@ -559,49 +669,61 @@
}
}
}
}
}
}
}
}
);
//把原来分类找不到的放到其他数据类型中,最后一列其他列中
//把原来分类找不到的放到其他数据类型中,最后一列其他列中
for
(
let
i
=
0
;
i
<
aa
[
1
].
length
;
i
++
)
{
aa
[
1
].
forEach
((
item
,
i
)
=>
{
if
(
aa
[
1
][
i
]
.
ccc
&&
aa
[
0
][
i
].
r
<
8
)
{
if
(
item
.
ccc
&&
aa
[
0
][
i
].
r
<
8
)
{
aa
[
1
][
i
].
c
=
aa
[
1
][
i
].
ccc
item
.
c
=
item
.
ccc
;
delete
aa
[
1
][
i
]
.
ccc
;
delete
item
.
ccc
;
}
else
{
}
else
{
aa
[
1
][
i
].
c
=
10
item
.
c
=
10
;
}
}
}
});
//金额列和行是原先导入表的行列 要替换掉模板表的行列
//金额列和行是原先导入表的行列 要替换掉模板表的行列
for
(
let
i
=
0
;
i
<
aa
[
0
].
length
;
i
++
)
{
aa
[
0
].
forEach
((
item
,
i
)
=>
{
if
(
aa
[
0
][
i
]
.
whether
)
{
if
(
item
.
whether
)
{
aa
[
2
][
i
].
r
=
aa
[
0
][
i
].
r
aa
[
2
][
i
].
r
=
item
.
r
;
aa
[
2
][
i
].
c
=
aa
[
1
][
i
].
c
aa
[
2
][
i
].
c
=
aa
[
1
][
i
].
c
;
aa
[
2
][
i
].
v
.
v
=
Number
(
aa
[
2
][
i
].
v
.
v
)
aa
[
2
][
i
].
v
.
v
=
Number
(
aa
[
2
][
i
].
v
.
v
)
;
}
else
{
}
else
{
aa
[
2
][
i
].
r
=
''
aa
[
2
][
i
].
r
=
''
;
aa
[
2
][
i
].
c
=
''
aa
[
2
][
i
].
c
=
''
;
}
}
}
});
//同一个单元格的数据 金额相加。
//同一个单元格的数据 金额相加。
let
i
=
-
1
let
seen
=
new
Map
();
let
duplicateData
=
[];
let
duplicateData
=
[];
let
seen
=
new
Map
();
// 根据行列信息合并重复数据并记录索引
for
(
let
obj
of
aa
[
2
])
{
for
(
let
obj
of
aa
[
2
])
{
i
+=
1
;
let
key
=
obj
.
r
+
'
,
'
+
obj
.
c
;
let
key
=
obj
.
r
+
'
,
'
+
obj
.
c
;
if
(
seen
.
has
(
key
))
{
if
(
seen
.
has
(
key
))
{
let
existingObj
=
seen
.
get
(
key
);
let
existingObj
=
seen
.
get
(
key
);
existingObj
.
v
.
v
+=
obj
.
v
.
v
;
existingObj
.
v
.
v
+=
obj
.
v
.
v
;
existingObj
.
v
.
m
=
(
parseInt
(
existingObj
.
v
.
m
)
+
parseInt
(
obj
.
v
.
m
)).
toString
();
existingObj
.
v
.
m
=
(
parseInt
(
existingObj
.
v
.
m
)
+
parseInt
(
obj
.
v
.
m
)).
toString
();
existingObj
.
index
.
push
(
aa
[
1
][
i
].
r
);
}
else
{
}
else
{
obj
.
index
=
[
aa
[
1
][
i
].
r
];
seen
.
set
(
key
,
obj
);
seen
.
set
(
key
,
obj
);
}
}
}
}
// 将合并后的数据放入 duplicateData 数组
for
(
let
obj
of
seen
.
values
())
{
for
(
let
obj
of
seen
.
values
())
{
if
(
obj
.
v
.
v
>
0
||
parseInt
(
obj
.
v
.
m
)
>
0
)
{
if
(
obj
.
v
.
v
>
0
||
parseInt
(
obj
.
v
.
m
)
>
0
)
{
duplicateData
.
push
(
obj
);
duplicateData
.
push
(
obj
);
}
}
}
}
duplicateData
=
duplicateData
.
map
(
item
=>
{
return
{
...
item
,
v
:
{
...
item
.
v
,
v
:
isNaN
(
item
.
v
.
v
)
?
item
.
v
.
v
:
Number
(
item
.
v
.
v
).
toFixed
(
2
)
}
};
});
// 替换金额所在列和行相同的模板表中的数据
//金额所在列和行,去模板表中查找,如果行列一致则替换
//金额所在列和行,去模板表中查找,如果行列一致则替换
for
(
let
i
=
0
;
i
<
duplicateData
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
duplicateData
.
length
;
i
++
)
{
// // 对比 c 和 r 是否与 he[0]["celldata"] 中相应对象相同
// // 对比 c 和 r 是否与 he[0]["celldata"] 中相应对象相同
...
@@ -627,29 +749,8 @@
...
@@ -627,29 +749,8 @@
}
}
//this.from 往后台村的数据
//this.from 往后台村的数据
this
.
ImportTables
.
historyName
=
result
.
info
.
name
+
'
(导入表名)
'
this
.
ImportTables
.
identifyingCode
=
0
;
this
.
ImportTables
.
date
=
this
.
date
this
.
ImportTables
.
exportUuid
=
1
;
this
.
ImportTables
.
historyContent
=
resultJSON
this
.
ImportTables
.
historyContent
=
resultJSON
this
.
ImportTables
.
mining
=
this
.
select
this
.
ImportTables
.
tylkStatus
=
3
this
.
ImportTables
.
templateId
=
1257
this
.
generate
.
templateId
=
1257
this
.
generate
.
tylkStatus
=
3
this
.
generate
.
historyContent
=
JSON
.
stringify
(
he
)
this
.
generate
.
historyContent
=
JSON
.
stringify
(
he
)
this
.
generate
.
exportUuid
=
1
;
this
.
generate
.
identifyingCode
=
1
;
this
.
generate
.
date
=
this
.
date
this
.
generate
.
mining
=
this
.
select
let
list
=
[
this
.
ImportTables
,
this
.
generate
]
addInsert
(
list
).
then
(
response
=>
{
if
(
response
.
code
==
200
)
{
this
.
$message
({
message
:
'
保存成功
'
,
type
:
'
success
'
})
}
});
//往后台传科目编码相关的东西
//往后台传科目编码相关的东西
duplicateData
.
forEach
(
obj
=>
{
duplicateData
.
forEach
(
obj
=>
{
he
[
0
].
celldata
.
forEach
(
cell
=>
{
he
[
0
].
celldata
.
forEach
(
cell
=>
{
...
@@ -664,171 +765,845 @@
...
@@ -664,171 +765,845 @@
this
.
open4
()
this
.
open4
()
this
.
showMask
=
false
;
this
.
showMask
=
false
;
}
}
}
//林西矿转换方法
//机电制造费用现在是筛选出来了,。没有放到里面,如果想放进去也可以放进去,但是具体划分就不明细了
if
(
this
.
mine
.
includes
(
'
林西
'
)
&&
this
.
selectname
.
includes
(
'
林西
'
)
&&
name
)
{
//类别名称,部门名称,不含税金额,存货编码
if
(
name
&&
Department
&&
money
&&
code
)
{
let
nameColums
=
name
nameColums
=
nameColums
.
flat
().
filter
(
obj
=>
obj
.
v
.
hasOwnProperty
(
'
v
'
));
let
name1
=
Department
// code 编码 name1部门名称 money金额 name1 部门名称
// 清空属性
money
.
forEach
(
entry
=>
{
entry
.
department
=
''
;
entry
.
remark
=
''
;
entry
.
classify
=
''
;
entry
.
code
=
''
;
});
});
},
// 合并数组
let
aa
=
[...
name1
,
...
nameColums
,
...
code
];
//成本表往凭证但转
// 匹配赋值
Vouchers
(
duplicateData
)
{
money
.
forEach
(
m
=>
{
duplicateData
.
forEach
(
item
=>
{
aa
.
forEach
(
a
=>
{
item
.
v
.
v
=
Number
(
item
.
v
.
v
.
toFixed
(
2
));
if
(
m
.
r
===
a
.
r
)
{
item
.
v
.
m
=
parseFloat
(
item
.
v
.
m
).
toFixed
(
2
);
if
(
a
.
c
===
DepartmentColumns
)
m
.
remark
=
a
.
v
.
v
||
a
.
v
.
m
;
});
if
(
a
.
c
===
names
)
m
.
classify
=
a
.
v
.
v
||
a
.
v
.
m
;
let
sum
=
[{
if
(
a
.
c
===
codecolumn
)
m
.
code
=
a
.
v
.
v
||
a
.
v
.
m
;
code
:
'
2241005
'
,
m
.
cc
=
''
;
material
:
'
其他材料
'
,
v
:
0
},
{
code
:
'
1403002
'
,
material
:
"
火工品
"
,
v
:
0
,
}
}
];
});
});
for
(
let
i
=
0
;
i
<
duplicateData
.
length
;
i
++
)
{
// 删除指定分类
if
(
duplicateData
[
i
].
v
.
material
===
"
火工品
"
)
{
const
filteredClassifications
=
[
"
研发费用
"
,
"
基金
"
,
"
安全费用
"
];
sum
[
1
].
v
+=
duplicateData
[
i
].
v
.
v
;
money
=
money
.
filter
(
item
=>
!
filteredClassifications
.
includes
(
item
.
classify
));
}
else
{
sum
[
0
].
v
+=
duplicateData
[
i
].
v
.
v
;
// 替换属性值
}
money
.
forEach
(
item
=>
{
}
if
(
item
.
head
===
"
坑木
"
)
item
.
head
=
"
木材
"
;
var
VoucherForm
=
JSON
.
parse
(
this
.
VoucherForm
)
if
(
!
item
.
remark
)
item
.
v
.
name
=
"
基本生产-原煤
"
;
//表头所有数据
});
let
filteredData
=
VoucherForm
[
0
].
celldata
.
filter
(
obj
=>
obj
.
r
===
5
);
//我所需要的数据
// 提取特定属性值相同的数据
let
need
=
[
const
Electromechanical
=
"
机电制造分公司
"
;
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
*手工码
"
)[
0
].
c
,
const
filteredMoney
=
money
.
filter
(
item
=>
{
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
*会计主体
"
)[
0
].
c
,
if
(
item
.
remark
===
Electromechanical
)
{
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
*核算账簿
"
)[
0
].
c
,
money
.
splice
(
money
.
indexOf
(
item
),
1
);
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
*单据日期
"
)[
0
].
c
,
return
true
;
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
*凭证类型
"
)[
0
].
c
,
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
*制单人
"
)[
0
].
c
,
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
*分录摘要
"
)[
0
].
c
,
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
*币种
"
)[
0
].
c
,
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
本币汇率类型
"
)[
0
].
c
,
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
*本币汇率
"
)[
0
].
c
,
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
*业务日期
"
)[
0
].
c
,
]
let
loan
=
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
原币贷方金额
"
)[
0
].
c
let
loan1
=
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
本币贷方金额
"
)[
0
].
c
let
money
=
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
原币借方金额
"
)[
0
].
c
let
money1
=
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
本币借方金额
"
)[
0
].
c
let
foundObjects
=
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
物料基本分类
"
);
let
Classification
;
let
oldClassification
;
if
(
foundObjects
.
length
>=
2
)
{
oldClassification
=
foundObjects
[
0
].
c
Classification
=
foundObjects
[
1
].
c
;
}
else
{
// 处理找不到两个满足条件的对象的情况
}
}
//往后台传部门之类的 回收到编码
return
false
;
duplicateData
.
forEach
((
obj
)
=>
{
obj
.
mining
=
this
.
select
;
});
});
const
newData
=
duplicateData
.
map
(
obj
=>
{
console
.
log
(
filteredMoney
)
const
[
name
,
department
]
=
obj
.
v
.
name
.
split
(
"
-
"
);
// 对比替换导入表和模板的列数
return
{
codess
.
forEach
(
code
=>
{
r
:
obj
.
r
,
let
codeLength
=
String
(
code
.
code
).
length
;
c
:
obj
.
c
,
money
.
forEach
(
m
=>
{
name
,
let
columnIdString
=
String
(
m
.
code
);
department
,
let
idToMatch
=
columnIdString
.
substring
(
0
,
codeLength
);
material
:
obj
.
v
.
material
,
if
(
idToMatch
===
String
(
code
.
code
).
substring
(
0
,
codeLength
))
{
mining
:
obj
.
mining
m
.
cc
=
code
.
oneLevel
*
1
;
};
}
});
});
//模板
});
let
Fusion
=
{
"
r
"
:
''
,
// 设置属性值
"
c
"
:
''
,
money
.
forEach
(
item
=>
{
"
v
"
:
{
item
.
c
=
item
.
cc
?
item
.
cc
*
1
:
10
;
"
ct
"
:
{
});
"
fa
"
:
"
@
"
,
money
=
money
.
map
(
obj
=>
{
"
t
"
:
"
s
"
let
v
=
obj
.
remark
;
},
for
(
let
key
in
classify
)
{
"
fs
"
:
8
,
if
(
classify
[
key
].
includes
(
v
))
{
"
ff
"
:
"
微软雅黑
"
,
obj
.
v
.
name
=
key
;
"
tb
"
:
2
,
obj
.
whether
=
true
;
"
v
"
:
""
,
return
obj
;
"
qp
"
:
1
,
"
m
"
:
""
}
}
}
}
const
currentDate
=
new
Date
();
obj
.
v
.
name
=
"
基本生产-原煤
"
;
return
obj
;
// 获取年份、月份和日期
});
const
year
=
currentDate
.
getFullYear
();
// 获取当前的年份
const
month
=
currentDate
.
getMonth
()
+
1
;
// 获取当前的月份,记得要加 1
const
day
=
currentDate
.
getDate
();
// 获取当前的日期
//将年份、月份和日期拼接成 YYYY-MM-DD 的格式
money
.
forEach
(
item
=>
{
const
formattedDate
=
`
${
year
}
-
${
month
}
-
${
day
}
`
;
if
(
item
.
department
&&
item
.
v
.
name
)
{
let
isArray
=
[]
let
originalString
=
item
.
v
.
name
;
function
generateUniqueShortUuid
()
{
let
parts
=
originalString
.
split
(
"
-
"
);
return
uuidv4
().
substring
(
0
,
8
);
let
replacedString
=
parts
[
0
]
+
"
-
"
+
item
.
department
;
item
.
v
.
name
=
replacedString
;
}
}
});
let
data1
=
[
money
.
forEach
(
item
=>
{
if
(
item
.
v
.
name
!==
undefined
)
{
generateUniqueShortUuid
(),
this
.
select
,
this
.
select
,
this
.
date
,
'
转
'
,
'
熊亚维
'
,
'
转本月材料分配
'
,
'
CNY
'
,
'
E001
'
,
'
1.00000000
'
,
formattedDate
,
'
1
'
let
index
=
item
.
v
.
name
.
indexOf
(
"
-
"
);
]
if
(
index
!==
-
1
)
{
let
substrBeforeDash
=
item
.
v
.
name
.
slice
(
0
,
index
);
let
DepartColumns
=
he
[
0
][
"
celldata
"
].
flat
().
filter
(
obj
=>
{
let
filteredArr
;
if
(
obj
.
v
&&
obj
.
v
.
v
&&
typeof
obj
.
v
.
v
===
'
string
'
)
{
return
obj
.
v
.
v
.
includes
(
item
.
v
.
name
.
slice
(
0
,
index
));
}
return
false
;
})[
0
];
accountingcode
(
newData
).
then
(
response
=>
{
if
(
DepartColumns
&&
DepartColumns
.
r
)
{
filteredArr
=
response
.
rows
.
map
(
obj
=>
let
index
=
item
.
v
.
name
.
indexOf
(
"
-
"
);
Object
.
entries
(
obj
)
if
(
index
!==
-
1
)
{
.
filter
(([
key
,
value
])
=>
value
!==
null
)
let
substrAfterDash
=
item
.
v
.
name
.
slice
(
index
+
1
);
.
reduce
((
acc
,
[
key
,
value
])
=>
({
...
acc
,
[
key
]:
value
}),
{})
switch
(
substrAfterDash
)
{
);
case
''
:
for
(
let
i
=
0
;
i
<
sum
.
length
;
i
++
)
{
item
.
r
=
DepartColumns
.
r
;
for
(
let
j
=
0
;
j
<
filteredArr
.
length
;
j
++
)
{
break
;
if
(
sum
[
i
].
code
===
filteredArr
[
j
].
accountingCode
)
{
case
'
原煤
'
:
sum
[
i
].
index
=
j
;
item
.
r
=
DepartColumns
.
r
+
1
;
break
;
case
'
洗煤
'
:
item
.
r
=
DepartColumns
.
r
+
2
;
break
;
case
'
选煤
'
:
item
.
r
=
DepartColumns
.
r
+
3
;
break
;
case
'
厂区服务
'
:
item
.
r
=
DepartColumns
.
r
+
1
;
break
;
case
'
加工修理
'
:
item
.
r
=
DepartColumns
.
r
+
4
;
break
;
break
;
default
:
// 默认情况
}
}
}
}
}
}
for
(
let
i
=
0
;
i
<
filteredArr
.
length
;
i
++
)
{
let
newRow1
=
{
"
r
"
:
8
+
i
,
"
c
"
:
money
,
"
v
"
:
{
"
ct
"
:
Fusion
.
v
.
ct
,
"
bg
"
:
Fusion
.
v
.
bg
,
"
fs
"
:
Fusion
.
v
.
fs
,
"
ff
"
:
Fusion
.
v
.
ff
,
"
ht
"
:
Fusion
.
v
.
ht
,
"
vt
"
:
Fusion
.
v
.
vt
,
"
tb
"
:
Fusion
.
v
.
tb
,
"
v
"
:
duplicateData
[
i
]?.
v
.
v
,
"
qp
"
:
Fusion
.
v
.
qp
,
"
m
"
:
duplicateData
[
i
]?.
v
.
m
}
}
};
let
newRow2
=
{
"
r
"
:
8
+
i
,
"
c
"
:
money1
,
"
v
"
:
{
"
ct
"
:
Fusion
.
v
.
ct
,
"
bg
"
:
Fusion
.
v
.
bg
,
"
fs
"
:
Fusion
.
v
.
fs
,
"
ff
"
:
Fusion
.
v
.
ff
,
"
ht
"
:
Fusion
.
v
.
ht
,
"
vt
"
:
Fusion
.
v
.
vt
,
"
tb
"
:
Fusion
.
v
.
tb
,
"
v
"
:
duplicateData
[
i
]?.
v
.
v
,
"
qp
"
:
Fusion
.
v
.
qp
,
"
m
"
:
duplicateData
[
i
]?.
v
.
m
}
}
});
};
money
.
forEach
(
item
=>
{
if
(
item
.
r
>
8
&&
item
.
c
<
10
)
{
item
.
c
=
10
;
}
});
// 同一个单元格,金额相加
let
seen
=
new
Map
();
let
duplicateData
=
[];
for
(
let
l
=
0
;
l
<
need
.
length
;
l
++
)
{
money
.
forEach
((
obj
,
i
)
=>
{
let
needIndex
=
l
%
need
.
length
;
let
key
=
obj
.
r
+
'
,
'
+
obj
.
c
;
let
newRow3
=
{
if
(
seen
.
has
(
key
))
{
let
existingObj
=
seen
.
get
(
key
);
existingObj
.
v
.
v
=
Number
(
existingObj
.
v
.
v
)
+
Number
(
obj
.
v
.
v
);
existingObj
.
v
.
m
=
existingObj
.
v
.
v
.
toString
();
existingObj
.
index
.
push
(
i
);
}
else
{
obj
.
index
=
[
i
];
seen
.
set
(
key
,
obj
);
}
});
seen
.
forEach
(
obj
=>
{
if
(
obj
.
v
.
v
>
0
||
parseInt
(
obj
.
v
.
m
)
>
0
)
{
duplicateData
.
push
(
obj
);
}
});
duplicateData
=
duplicateData
.
map
(
item
=>
{
return
{
...
item
,
v
:
{
...
item
.
v
,
v
:
isNaN
(
item
.
v
.
v
)
?
item
.
v
.
v
:
Number
(
item
.
v
.
v
).
toFixed
(
2
)
}
};
});
//金额所在列和行,去模板表中查找,如果行列一致则替换
for
(
let
i
=
0
;
i
<
duplicateData
.
length
;
i
++
)
{
// // 对比 c 和 r 是否与 he[0]["celldata"] 中相应对象相同
for
(
let
ii
=
0
;
ii
<
he
[
0
][
"
celldata
"
].
length
;
ii
++
)
{
if
(
duplicateData
[
i
].
r
===
he
[
0
][
"
celldata
"
][
ii
].
r
&&
duplicateData
[
i
].
c
===
he
[
0
][
"
celldata
"
][
ii
].
c
)
{
// 如果相同,则进行替换
he
[
0
][
"
celldata
"
][
ii
]
=
duplicateData
[
i
];
}
}
}
he
[
0
].
data
=
luckysheet
.
transToData
(
he
[
0
][
"
celldata
"
])
if
(
this
.
value
===
1257
)
{
luckysheet
.
create
({
container
:
"
luckysheet
"
,
// Luckysheet 的容器元素 ID
title
:
fileName
,
// Excel 文件名
data
:
he
,
// Excel 数据
showinfobar
:
false
,
//是否显示顶部名称栏
lang
:
'
zh
'
,
});
modify
=
true
this
.
showMask
=
false
;
}
//this.from 往后台村的数据
this
.
ImportTables
.
historyContent
=
resultJSON
this
.
generate
.
historyContent
=
JSON
.
stringify
(
he
)
//往后台传科目编码相关的东西
duplicateData
.
forEach
(
obj
=>
{
he
[
0
].
celldata
.
forEach
(
cell
=>
{
if
(
obj
.
c
===
cell
.
c
&&
cell
.
r
===
3
)
{
obj
.
v
.
material
=
cell
.
v
.
v
;
}
});
});
this
.
middle
=
he
this
.
Vouchers
(
duplicateData
)
}
else
{
this
.
open4
()
this
.
showMask
=
false
;
}
}
//东欢坨矿转换方法
//如果部门为旧品和设备 并且他们的材料为支护用品和大型材料就把他们放到基本生产里
if
(
this
.
mine
.
includes
(
'
东欢坨
'
)
&&
this
.
selectname
.
includes
(
'
东欢坨
'
))
{
//材料编码,金额,部门
if
(
code
&&
money
&&
Department
)
{
//code 编码 ,,money金额,remark 部门
let
remark
=
Department
remark
.
forEach
((
item
)
=>
{
if
(
item
.
v
.
v
.
includes
(
"
单项卡
"
))
{
item
.
v
.
v
=
item
.
v
.
v
.
replace
(
/单项卡/g
,
''
);
}
});
money
.
forEach
((
item
)
=>
{
item
.
remark
=
''
;
item
.
code
=
''
;
item
.
cc
=
''
;
item
.
v
.
name
=
''
;
});
for
(
let
i
=
0
;
i
<
money
.
length
;
i
++
)
{
if
(
money
[
i
].
r
==
code
[
i
].
r
)
{
money
[
i
].
code
=
code
[
i
].
v
.
v
;
}
if
(
money
[
i
].
r
==
remark
[
i
].
r
)
{
money
[
i
].
remark
=
remark
[
i
].
v
.
v
;
}
}
codess
.
forEach
((
codeItem
)
=>
{
let
codeLength
=
String
(
codeItem
.
code
).
length
;
let
codeToCompare
=
String
(
codeItem
.
code
).
substring
(
0
,
codeLength
);
money
.
forEach
((
moneyItem
)
=>
{
let
columnIdString
=
String
(
moneyItem
.
code
);
let
idToMatch
=
columnIdString
.
substring
(
0
,
codeLength
);
if
(
idToMatch
===
codeToCompare
)
{
moneyItem
.
cc
=
codeItem
.
oneLevel
*
1
;
}
});
});
money
=
money
.
map
((
item
)
=>
{
let
v
=
item
.
remark
;
for
(
let
key
in
classify
)
{
if
(
classify
[
key
].
includes
(
v
))
{
item
.
v
.
name
=
key
;
return
item
;
}
}
item
.
v
.
name
=
"
基本生产-原煤
"
;
return
item
;
});
//东欢坨矿的规则 如果部门为旧品和设备 并且他们的材料为支护用品和大型材料就把他们放到基本生产里
money
.
forEach
((
item
)
=>
{
if
(
item
.
remark
==
"
旧品利用中心
"
||
item
.
remark
==
"
设备管理科
"
)
{
if
(
item
.
cc
==
3
||
item
.
cc
==
2
)
{
item
.
v
.
name
=
"
基本生产-原煤
"
;
}
}
});
money
.
forEach
((
item
)
=>
{
item
.
c
=
item
.
cc
?
item
.
cc
*
1
:
10
;
});
money
.
forEach
((
item
)
=>
{
if
(
item
.
department
&&
item
.
v
.
name
)
{
let
originalString
=
item
.
v
.
name
;
let
parts
=
originalString
.
split
(
"
-
"
);
let
replacedString
=
parts
[
0
]
+
"
-
"
+
item
.
department
;
item
.
v
.
name
=
replacedString
;
}
});
money
.
forEach
((
item
)
=>
{
if
(
item
.
v
.
name
!==
undefined
)
{
let
index
=
item
.
v
.
name
.
indexOf
(
"
-
"
);
if
(
index
!==
-
1
)
{
let
substrBeforeDash
=
item
.
v
.
name
.
slice
(
0
,
index
);
let
DepartColumns
=
he
[
0
][
"
celldata
"
].
flat
().
find
((
obj
)
=>
{
if
(
obj
.
v
&&
obj
.
v
.
v
&&
typeof
obj
.
v
.
v
===
'
string
'
)
{
return
obj
.
v
.
v
.
includes
(
item
.
v
.
name
.
slice
(
0
,
index
));
}
return
false
;
});
if
(
DepartColumns
&&
DepartColumns
.
r
)
{
let
index
=
item
.
v
.
name
.
indexOf
(
"
-
"
);
if
(
index
!==
-
1
)
{
let
substrAfterDash
=
item
.
v
.
name
.
slice
(
index
+
1
);
switch
(
substrAfterDash
)
{
case
''
:
item
.
r
=
DepartColumns
.
r
;
break
;
case
'
原煤
'
:
item
.
r
=
DepartColumns
.
r
+
1
;
break
;
case
'
洗煤
'
:
item
.
r
=
DepartColumns
.
r
+
2
;
break
;
case
'
选煤
'
:
item
.
r
=
DepartColumns
.
r
+
3
;
break
;
case
'
厂区服务
'
:
item
.
r
=
DepartColumns
.
r
+
1
;
break
;
default
:
// 默认情况
}
}
}
}
}
});
// 更新金额列
for
(
let
item
of
money
)
{
if
(
item
.
r
>
8
&&
item
.
c
<
10
)
{
item
.
c
=
10
;
}
}
// 合并重复单元格数据
let
cellMap
=
new
Map
();
for
(
let
i
=
0
;
i
<
money
.
length
;
i
++
)
{
let
key
=
money
[
i
].
r
+
'
,
'
+
money
[
i
].
c
;
if
(
cellMap
.
has
(
key
))
{
let
existingItem
=
cellMap
.
get
(
key
);
existingItem
.
v
.
v
=
Number
(
existingItem
.
v
.
v
)
+
Number
(
money
[
i
].
v
.
v
);
existingItem
.
v
.
m
=
existingItem
.
v
.
v
.
toString
();
existingItem
.
index
.
push
(
i
);
}
else
{
money
[
i
].
index
=
[
i
];
cellMap
.
set
(
key
,
money
[
i
]);
}
}
let
duplicateData
=
Array
.
from
(
cellMap
.
values
()).
filter
(
item
=>
item
.
v
.
v
>
0
||
parseInt
(
item
.
v
.
m
)
>
0
);
duplicateData
=
duplicateData
.
map
(
item
=>
{
return
{
...
item
,
v
:
{
...
item
.
v
,
v
:
isNaN
(
item
.
v
.
v
)
?
item
.
v
.
v
:
Number
(
item
.
v
.
v
).
toFixed
(
2
)
}
};
});
// 替换原始数据中的重复单元格数据
//金额所在列和行,去模板表中查找,如果行列一致则替换
for
(
let
i
=
0
;
i
<
duplicateData
.
length
;
i
++
)
{
// // 对比 c 和 r 是否与 he[0]["celldata"] 中相应对象相同
for
(
let
ii
=
0
;
ii
<
he
[
0
][
"
celldata
"
].
length
;
ii
++
)
{
if
(
duplicateData
[
i
].
r
===
he
[
0
][
"
celldata
"
][
ii
].
r
&&
duplicateData
[
i
].
c
===
he
[
0
][
"
celldata
"
][
ii
].
c
)
{
// 如果相同,则进行替换
he
[
0
][
"
celldata
"
][
ii
]
=
duplicateData
[
i
];
}
}
}
he
[
0
].
data
=
luckysheet
.
transToData
(
he
[
0
][
"
celldata
"
])
if
(
this
.
value
!==
1248
)
{
luckysheet
.
create
({
container
:
"
luckysheet
"
,
// Luckysheet 的容器元素 ID
title
:
fileName
,
// Excel 文件名
data
:
he
,
// Excel 数据
showinfobar
:
false
,
//是否显示顶部名称栏
lang
:
'
zh
'
,
});
modify
=
true
this
.
showMask
=
false
;
}
//this.from 往后台村的数据
this
.
ImportTables
.
historyContent
=
resultJSON
this
.
generate
.
historyContent
=
JSON
.
stringify
(
he
)
//往后台传科目编码相关的东西
duplicateData
.
forEach
(
obj
=>
{
he
[
0
].
celldata
.
forEach
(
cell
=>
{
if
(
obj
.
c
===
cell
.
c
&&
cell
.
r
===
3
)
{
obj
.
v
.
material
=
cell
.
v
.
v
;
}
});
});
this
.
middle
=
he
this
.
Vouchers
(
duplicateData
)
}
else
{
this
.
open4
()
this
.
showMask
=
false
}
}
//单侯矿转换方法&& this.selectname.includes('单侯')
//特定规则 制造费用可能放也可能不放,制造费用后期可能会晒出来
if
(
this
.
mine
.
includes
(
'
单侯
'
))
{
//部门名称所在列
let
DepartmentColumn
=
c
.
flat
().
filter
(
obj
=>
obj
.
v
&&
obj
.
v
.
v
===
"
创建部门
"
)[
0
]?.
c
;
//结算金额所在列
let
ExpenseColumn
=
c
.
flat
().
filter
(
obj
=>
obj
.
v
&&
obj
.
v
.
v
===
"
实际金额
"
)[
0
]?.
c
;
//材料编码
let
codeColumn
=
c
.
flat
().
filter
(
obj
=>
obj
.
v
&&
obj
.
v
.
v
===
"
材料编码
"
)[
0
]?.
c
let
headRows
=
this
.
newArray
[
0
].
celldata
.
flat
().
filter
(
obj
=>
obj
.
v
&&
obj
.
v
.
v
===
"
火工品
"
)[
0
]?.
r
//费用来源
let
fylyColumn
=
c
.
flat
().
filter
(
obj
=>
obj
.
v
&&
obj
.
v
.
v
===
"
费用来源
"
)[
0
]?.
c
if
(
DepartmentColumn
&&
ExpenseColumn
&&
codeColumn
&&
fylyColumn
)
{
let
code
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
codeColumn
&&
obj
.
r
>
0
)
let
headRow
=
this
.
newArray
[
0
].
celldata
.
flat
().
filter
(
obj
=>
obj
.
r
&&
obj
.
r
===
headRows
&&
obj
.
c
>
0
)
let
money
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
ExpenseColumn
&&
obj
.
r
>
0
)
let
remark
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
DepartmentColumn
&&
obj
.
r
>
0
)
let
fyly
=
c
.
flat
().
filter
(
obj
=>
obj
.
c
&&
obj
.
c
===
fylyColumn
&&
obj
.
r
>
0
)
// 清空money数组中的属性
money
.
forEach
(
item
=>
{
item
.
remark
=
''
;
item
.
code
=
''
;
item
.
cc
=
''
;
item
.
fyly
=
''
;
item
.
rr
=
''
;
});
// 更新money数组中的属性
money
=
money
.
filter
(
item
=>
{
let
matchingCode
=
code
.
find
(
c
=>
c
.
r
===
item
.
r
);
if
(
matchingCode
)
{
item
.
code
=
matchingCode
.
v
.
v
;
}
let
matchingRemark
=
remark
.
find
(
r
=>
r
.
r
===
item
.
r
);
if
(
matchingRemark
)
{
item
.
remark
=
matchingRemark
.
v
.
v
;
}
let
matchingFyly
=
fyly
.
find
(
f
=>
f
.
r
===
item
.
r
);
if
(
matchingFyly
)
{
item
.
fyly
=
matchingFyly
.
v
.
v
;
}
return
(
matchingCode
&&
matchingRemark
&&
matchingFyly
);
});
money
.
forEach
((
item
)
=>
{
if
(
item
.
remark
.
startsWith
(
'
物管科
'
))
{
item
.
remark
=
'
物管科
'
;
}
if
(
item
.
remark
.
endsWith
(
'
储运科
'
))
{
item
.
remark
=
'
储运科
'
;
}
if
(
item
.
remark
.
includes
(
'
生活
'
))
{
item
.
remark
=
'
生活科
'
}
});
money
=
money
.
map
(
obj
=>
{
let
v
=
obj
.
remark
;
for
(
let
key
in
classify
)
{
if
(
classify
[
key
].
includes
(
v
))
{
obj
.
v
.
name
=
key
;
obj
.
whether
=
true
;
return
obj
;
}
}
return
obj
;
});
for
(
let
i
=
0
;
i
<
codess
.
length
;
i
++
)
{
let
codeLength
=
String
(
codess
[
i
].
code
).
length
;
let
codeToCompare
=
String
(
codess
[
i
].
code
).
substring
(
0
,
codeLength
);
for
(
let
ii
=
0
;
ii
<
money
.
length
;
ii
++
)
{
let
columnIdString
=
String
(
money
[
ii
].
code
);
let
idToMatch
=
columnIdString
.
substring
(
0
,
codeLength
);
if
(
idToMatch
===
codeToCompare
)
{
money
[
ii
].
cc
=
codess
[
i
].
oneLevel
*
1
}
}
}
let
synthesis
=
this
.
newArray
let
head
=
synthesis
[
0
].
celldata
.
flat
().
filter
(
obj
=>
obj
.
c
==
0
&&
obj
.
r
>
4
)
head
.
forEach
(
itemA
=>
{
let
targetRemark
=
itemA
.
v
.
v
;
// 需要匹配的目标值,这里是 a 属性中的 v.v
money
.
forEach
(
itemB
=>
{
if
(
itemB
.
remark
.
includes
(
targetRemark
))
{
// 使用 include 方法进行模糊匹配
itemB
.
rr
=
itemA
.
r
;
// 如果匹配到,则将 a 属性中的 r 的值赋给 b 属性中的 rr
}
});
});
for
(
let
i
=
0
;
i
<
money
.
length
;
i
++
)
{
if
(
money
[
i
].
rr
)
{
money
[
i
].
r
=
money
[
i
].
rr
}
if
(
money
[
i
].
cc
)
{
money
[
i
].
c
=
money
[
i
].
cc
*
1
}
if
(
!
money
[
i
].
cc
)
{
money
[
i
].
c
=
10
}
}
let
seen
=
new
Map
();
let
duplicateData
=
[];
let
i
=
-
1
for
(
let
obj
of
money
)
{
let
key
=
obj
.
r
+
'
,
'
+
obj
.
c
;
i
+=
1
if
(
seen
.
has
(
key
))
{
let
existingObj
=
seen
.
get
(
key
);
existingObj
.
v
.
v
=
Number
(
existingObj
.
v
.
v
)
+
Number
(
obj
.
v
.
v
);
existingObj
.
v
.
m
=
existingObj
.
v
.
v
.
toString
();
existingObj
.
index
.
push
(
i
)
}
else
{
obj
.
index
=
[
i
]
seen
.
set
(
key
,
obj
);
}
}
for
(
let
obj
of
seen
.
values
())
{
if
(
obj
.
v
.
v
>
0
||
parseInt
(
obj
.
v
.
m
)
>
0
)
{
duplicateData
.
push
(
obj
);
}
}
for
(
let
i
=
0
;
i
<
duplicateData
.
length
;
i
++
)
{
// // 对比 c 和 r 是否与 he[0]["celldata"] 中相应对象相同
for
(
let
ii
=
0
;
ii
<
synthesis
[
0
][
"
celldata
"
].
length
;
ii
++
)
{
if
(
duplicateData
[
i
].
r
===
synthesis
[
0
][
"
celldata
"
][
ii
].
r
&&
duplicateData
[
i
].
c
===
synthesis
[
0
][
"
celldata
"
][
ii
].
c
)
{
// 如果相同,则进行替换
synthesis
[
0
][
"
celldata
"
][
ii
]
=
duplicateData
[
i
];
}
}
}
synthesis
[
0
].
data
=
luckysheet
.
transToData
(
synthesis
[
0
][
"
celldata
"
])
if
(
this
.
value
!==
1248
)
{
luckysheet
.
create
({
container
:
"
luckysheet
"
,
// Luckysheet 的容器元素 ID
title
:
fileName
,
// Excel 文件名
data
:
synthesis
,
// Excel 数据
showinfobar
:
false
,
//是否显示顶部名称栏
lang
:
'
zh
'
,
});
modify
=
true
this
.
showMask
=
false
;
}
duplicateData
.
forEach
(
item
=>
{
const
matchedHeadRow
=
headRow
.
find
(
headItem
=>
headItem
.
c
===
item
.
c
);
if
(
matchedHeadRow
)
{
item
.
v
.
material
=
matchedHeadRow
.
v
.
v
;
}
});
for
(
let
i
=
0
;
i
<
duplicateData
.
length
;
i
++
)
{
if
(
duplicateData
[
i
].
r
>
4
&&
duplicateData
[
i
].
r
<
16
)
{
//管理费用
duplicateData
[
i
].
r
=
6
duplicateData
[
i
].
c
=
12
}
if
(
duplicateData
[
i
].
r
>
16
&&
duplicateData
[
i
].
r
<
27
)
{
//制造费用
duplicateData
[
i
].
r
=
7
duplicateData
[
i
].
c
=
10
}
if
(
duplicateData
[
i
].
r
>
28
&&
duplicateData
[
i
].
r
<
43
)
{
//基本费用
duplicateData
[
i
].
r
=
8
}
if
(
duplicateData
[
i
].
r
>
43
&&
duplicateData
[
i
].
r
<
46
)
{
//销售费用
duplicateData
[
i
].
r
=
9
duplicateData
[
i
].
c
=
10
}
if
(
duplicateData
[
i
].
r
>
46
&&
duplicateData
[
i
].
r
<
48
)
{
//其他业务
duplicateData
[
i
].
r
=
10
duplicateData
[
i
].
c
=
10
}
if
(
duplicateData
[
i
].
r
>
49
&&
duplicateData
[
i
].
r
<
51
)
{
//安全费用
duplicateData
[
i
].
r
=
11
duplicateData
[
i
].
c
=
10
}
}
let
seens
=
new
Map
();
let
duplicateDatas
=
[];
for
(
let
obj
of
duplicateData
)
{
let
key
=
obj
.
r
+
'
,
'
+
obj
.
c
;
if
(
seens
.
has
(
key
))
{
let
existingObj
=
seens
.
get
(
key
);
existingObj
.
v
.
v
=
Number
(
existingObj
.
v
.
v
)
+
Number
(
obj
.
v
.
v
);
existingObj
.
v
.
m
=
existingObj
.
v
.
v
.
toString
();
}
else
{
seens
.
set
(
key
,
obj
);
}
}
for
(
let
obj
of
seens
.
values
())
{
if
(
obj
.
v
.
v
>
0
||
parseInt
(
obj
.
v
.
m
)
>
0
)
{
duplicateDatas
.
push
(
obj
);
}
}
this
.
Vouchers
(
duplicateDatas
)
}
else
{
this
.
open4
()
this
.
showMask
=
false
;
}
}
});
},
//成本表往凭证但转
Vouchers
(
duplicateData
)
{
this
.
detail
=
duplicateData
.
map
(
item
=>
{
if
(
typeof
item
.
v
.
v
===
'
number
'
)
{
item
.
v
.
v
=
Number
(
item
.
v
.
v
.
toFixed
(
2
));
// 如果是数字,则进行处理
}
if
(
typeof
item
.
v
.
m
===
'
number
'
)
{
item
.
v
.
m
=
parseFloat
(
item
.
v
.
m
).
toFixed
(
2
);
// 如果是数字,则进行处理
}
return
item
;
});
let
sum
=
[{
code
:
'
2241005
'
,
material
:
'
其他材料
'
,
v
:
0
},
{
code
:
'
1403002
'
,
material
:
"
火工品
"
,
v
:
0
,
}];
for
(
let
i
=
0
;
i
<
duplicateData
.
length
;
i
++
)
{
if
(
duplicateData
[
i
].
v
.
material
===
"
火工品
"
)
{
sum
[
1
].
v
+=
Number
(
duplicateData
[
i
].
v
.
v
);
}
else
{
sum
[
0
].
v
+=
Number
(
duplicateData
[
i
].
v
.
v
);
}
}
sum
.
forEach
(
item
=>
{
item
.
v
=
Number
(
item
.
v
).
toFixed
(
2
);
});
const
VoucherForm
=
JSON
.
parse
(
this
.
VoucherForm
);
const
filteredData
=
VoucherForm
[
0
].
celldata
.
filter
(
obj
=>
obj
.
r
===
5
);
const
needKeys
=
[
"
*手工码
"
,
"
*会计主体
"
,
"
*核算账簿
"
,
"
*单据日期
"
,
"
*凭证类型
"
,
"
*制单人
"
,
"
*分录摘要
"
,
"
*币种
"
,
"
本币汇率类型
"
,
"
*本币汇率
"
,
"
*业务日期
"
,
"
凭证单摘要
"
,
];
// 根据需要的关键词获取对应的单元格
const
need
=
needKeys
.
map
(
key
=>
filteredData
.
find
(
obj
=>
obj
.
v
.
v
===
key
).
c
);
const
loan
=
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
原币贷方金额
"
)[
0
].
c
;
const
loan1
=
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
本币贷方金额
"
)[
0
].
c
;
const
money
=
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
原币借方金额
"
)[
0
].
c
;
const
money1
=
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
本币借方金额
"
)[
0
].
c
;
// 根据特定条件筛选单元格
const
foundObjects
=
filteredData
.
filter
(
obj
=>
obj
.
v
.
v
===
"
物料基本分类
"
);
let
Classification
;
let
oldClassification
;
if
(
foundObjects
.
length
>=
2
)
{
oldClassification
=
foundObjects
[
0
].
c
;
Classification
=
foundObjects
[
1
].
c
;
}
else
{
// 处理找不到两个满足条件的对象的情况
}
// 遍历duplicateData数组,为每个对象添加mining属性并赋值为this.select
duplicateData
.
forEach
(
obj
=>
{
obj
.
mining
=
this
.
select
;
});
// 生成标准模板
const
Fusion
=
{
"
r
"
:
''
,
"
c
"
:
''
,
"
v
"
:
{
"
ct
"
:
{
"
fa
"
:
"
@
"
,
"
t
"
:
"
s
"
},
"
fs
"
:
8
,
"
ff
"
:
"
微软雅黑
"
,
"
tb
"
:
2
,
"
v
"
:
""
,
"
qp
"
:
1
,
"
m
"
:
""
}
};
// 获取当前日期并格式化为 YYYY-MM-DD 的字符串
const
currentDate
=
new
Date
();
const
year
=
currentDate
.
getFullYear
();
// 获取当前年份
const
month
=
(
currentDate
.
getMonth
()
+
1
).
toString
().
padStart
(
2
,
'
0
'
);
// 获取当前月份,记得要加 1
const
day
=
currentDate
.
getDate
();
// 获取当前日期
const
formattedDate
=
`
${
year
}
-
${
month
}
-
${
day
}
`
;
// 生成唯一标识符uuid
function
generateUniqueShortUuid
()
{
return
uuidv4
().
replace
(
/-/g
,
''
).
substring
(
0
,
12
);
}
const
uuid
=
generateUniqueShortUuid
();
// 创建data1数组
const
data1
=
[
uuid
,
this
.
select
,
this
.
select
,
this
.
date
,
'
转
'
,
this
.
phone
,
'
转本月材料分配
'
,
'
CNY
'
,
'
E001
'
,
'
1.00000000
'
,
formattedDate
,
uuid
];
const
newData
=
duplicateData
.
map
(
obj
=>
{
const
[
name
,
department
]
=
obj
.
v
.
name
.
split
(
"
-
"
);
return
{
r
:
obj
.
r
,
c
:
obj
.
c
,
//金额
money
:
obj
.
v
.
v
,
name
,
indexRow
:
obj
.
index
,
department
,
material
:
obj
.
v
.
material
,
mining
:
obj
.
mining
,
//uuid
accountuuid
:
data1
[
0
],
accountdate
:
this
.
date
,
};
});
this
.
ImportTables
.
exportUuid
=
data1
[
0
]
this
.
generate
.
exportUuid
=
data1
[
0
]
this
.
ImportTables
.
identifyingCode
=
0
;
this
.
ImportTables
.
date
=
this
.
date
// this.ImportTables.exportUuid = 1;
this
.
ImportTables
.
mining
=
this
.
select
this
.
ImportTables
.
tylkStatus
=
3
this
.
ImportTables
.
templateId
=
this
.
value
this
.
generate
.
templateId
=
this
.
value
this
.
generate
.
tylkStatus
=
3
// this.generate.exportUuid = 1;
this
.
generate
.
identifyingCode
=
1
;
this
.
generate
.
date
=
this
.
date
this
.
generate
.
mining
=
this
.
select
let
list
=
[
this
.
ImportTables
,
this
.
generate
]
let
filteredArr
;
accountingcode
(
newData
).
then
(
response
=>
{
console
.
log
(
newData
)
//合并起来的每行的值转换成一行一个编码 知道哪行合并了起来
filteredArr
=
response
.
rows
.
map
(
obj
=>
Object
.
entries
(
obj
)
.
filter
(([
key
,
value
])
=>
value
!==
null
)
.
reduce
((
acc
,
[
key
,
value
])
=>
({
...
acc
,
[
key
]:
value
}),
{})
);
this
.
ImportTables
.
historyRole
=
filteredArr
.
map
(
item
=>
{
let
extractedItem
=
{};
if
(
item
.
accountingCode
)
{
extractedItem
.
accountingCode
=
item
.
accountingCode
;
}
if
(
Array
.
isArray
(
item
.
indexRow
))
{
extractedItem
.
indexRow
=
item
.
indexRow
.
join
(
'
,
'
);
}
return
extractedItem
;
});
let
historyContent
=
[];
for
(
let
i
=
0
;
i
<
this
.
ImportTables
.
historyRole
.
length
;
i
++
)
{
if
(
this
.
ImportTables
.
historyRole
[
i
].
indexRow
&&
this
.
ImportTables
.
historyRole
[
i
].
accountingCode
)
{
const
indexRowArray
=
this
.
ImportTables
.
historyRole
[
i
].
indexRow
.
split
(
'
,
'
);
for
(
let
j
=
0
;
j
<
indexRowArray
.
length
;
j
++
)
{
let
historyRole
=
{
value
:
this
.
ImportTables
.
historyRole
[
i
].
accountingCode
,
key
:
String
(
indexRowArray
[
j
])
};
historyContent
.
push
(
historyRole
);
}
}
}
this
.
ImportTables
.
historyRole
=
JSON
.
stringify
(
historyContent
)
for
(
let
i
=
0
;
i
<
sum
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
filteredArr
.
length
;
j
++
)
{
if
(
sum
[
i
].
code
===
filteredArr
[
j
].
accountingCode
)
{
sum
[
i
].
index
=
j
;
break
;
}
}
}
let
isArray
=
[]
for
(
let
i
=
0
;
i
<
filteredArr
.
length
;
i
++
)
{
let
newRow1
=
{
"
r
"
:
8
+
i
,
"
c
"
:
money
,
"
v
"
:
{
"
ct
"
:
Fusion
.
v
.
ct
,
"
bg
"
:
Fusion
.
v
.
bg
,
"
fs
"
:
Fusion
.
v
.
fs
,
"
ff
"
:
Fusion
.
v
.
ff
,
"
ht
"
:
Fusion
.
v
.
ht
,
"
vt
"
:
Fusion
.
v
.
vt
,
"
tb
"
:
Fusion
.
v
.
tb
,
"
v
"
:
duplicateData
[
i
]?.
v
.
v
,
"
qp
"
:
Fusion
.
v
.
qp
,
"
m
"
:
duplicateData
[
i
]?.
v
.
m
}
};
let
newRow2
=
{
"
r
"
:
8
+
i
,
"
c
"
:
money1
,
"
v
"
:
{
"
ct
"
:
Fusion
.
v
.
ct
,
"
bg
"
:
Fusion
.
v
.
bg
,
"
fs
"
:
Fusion
.
v
.
fs
,
"
ff
"
:
Fusion
.
v
.
ff
,
"
ht
"
:
Fusion
.
v
.
ht
,
"
vt
"
:
Fusion
.
v
.
vt
,
"
tb
"
:
Fusion
.
v
.
tb
,
"
v
"
:
duplicateData
[
i
]?.
v
.
v
,
"
qp
"
:
Fusion
.
v
.
qp
,
"
m
"
:
duplicateData
[
i
]?.
v
.
m
}
};
for
(
let
l
=
0
;
l
<
need
.
length
;
l
++
)
{
let
needIndex
=
l
%
need
.
length
;
let
newRow3
=
{
"
r
"
:
8
+
i
,
"
r
"
:
8
+
i
,
"
c
"
:
need
[
l
],
"
c
"
:
need
[
l
],
"
v
"
:
{
"
v
"
:
{
...
@@ -886,7 +1661,7 @@
...
@@ -886,7 +1661,7 @@
}
}
});
});
});
});
cons
t
cleanedData
=
result
.
filter
(
entry
=>
{
le
t
cleanedData
=
result
.
filter
(
entry
=>
{
return
Object
.
values
(
entry
).
every
(
value
=>
value
!==
"
null
"
&&
value
!==
null
);
return
Object
.
values
(
entry
).
every
(
value
=>
value
!==
"
null
"
&&
value
!==
null
);
});
});
let
name
=
[]
let
name
=
[]
...
@@ -902,6 +1677,7 @@
...
@@ -902,6 +1677,7 @@
}
}
}
}
}
}
cleanedData
=
cleanedData
.
filter
(
obj
=>
Object
.
keys
(
obj
)[
0
]
!==
""
);
for
(
let
i
=
0
;
i
<
name
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
name
.
length
;
i
++
)
{
const
newRow
=
{
const
newRow
=
{
"
r
"
:
8
+
cleanedData
[
i
].
row
,
"
r
"
:
8
+
cleanedData
[
i
].
row
,
...
@@ -966,17 +1742,22 @@
...
@@ -966,17 +1742,22 @@
showinfobar
:
false
,
//是否显示顶部名称栏
showinfobar
:
false
,
//是否显示顶部名称栏
lang
:
'
zh
'
,
lang
:
'
zh
'
,
});
});
modify
=
true
modify
=
true
this
.
showMask
=
false
;
this
.
showMask
=
false
;
}
}
// addInsert(list).then(response => {
// if (response.code == 200) {
// this.$message({
// message: '保存成功', type: 'success'
// })
// }
// });
VoucherForm
[
0
].
celldata
=
[]
VoucherForm
[
0
].
celldata
=
[]
})
})
},
},
/** 保存导入文件和生成文件 */
/** 保存导入文件和生成文件 */
submit
(
contents
)
{
submit
(
contents
)
{
const
name
=
contents
.
info
.
name
;
const
name
=
contents
.
info
.
name
;
...
@@ -1001,9 +1782,6 @@
...
@@ -1001,9 +1782,6 @@
let
datastr
=
fullYear
+
month
;
let
datastr
=
fullYear
+
month
;
this
.
dfrom
.
date
=
datastr
this
.
dfrom
.
date
=
datastr
this
.
dfrom
.
mining
=
this
.
mining
this
.
dfrom
.
mining
=
this
.
mining
this
.
dfrom
.
accountingcode
this
.
dfrom
.
indexRow
this
.
from
.
status
=
this
.
dfrom
.
status
=
0
;
this
.
from
.
status
=
this
.
dfrom
.
status
=
0
;
list
.
push
(
this
.
dfrom
);
list
.
push
(
this
.
dfrom
);
this
.
from
.
historyName
=
fileName
+
'
(生成文件)
'
;
this
.
from
.
historyName
=
fileName
+
'
(生成文件)
'
;
...
@@ -1028,44 +1806,38 @@
...
@@ -1028,44 +1806,38 @@
exportExcel
(
luckysheet
.
getAllSheets
(),
fileName
,
trueORfalse
,
this
.
value
);
exportExcel
(
luckysheet
.
getAllSheets
(),
fileName
,
trueORfalse
,
this
.
value
);
// 清洗数据
// 清洗数据
selectActSuppliesHistorydata
(
3
).
then
(
response
=>
{
selectActSuppliesHistorydataAcc
(
3
).
then
(
response
=>
{
var
data
=
response
.
data
;
var
data
=
response
.
data
;
let
list
=
[];
let
list
=
[];
let
list1
=
[];
let
list1
=
[];
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
if
(
data
[
i
].
identifyingCode
==
1
)
{
if
(
data
[
i
].
identifyingCode
==
1
)
{
let
imp
=
{}
imp
.
exportUuid
=
data
[
i
].
exportUuid
let
parse
=
JSON
.
parse
(
data
[
i
].
historyContent
);
let
parse
=
JSON
.
parse
(
data
[
i
].
historyContent
);
let
transToCellData
=
window
.
luckysheet
.
transToData
(
parse
[
0
].
celldata
);
let
transToCellData
=
window
.
luckysheet
.
transToData
(
parse
[
0
].
celldata
);
imp
.
hId
=
data
[
i
].
id
;
this
.
imp
.
hId
=
data
[
i
].
id
;
imp
.
createBy
=
data
[
i
].
createBy
;
this
.
imp
.
createBy
=
data
[
i
].
createBy
;
imp
.
hDate
=
data
[
i
].
date
;
this
.
imp
.
hDate
=
data
[
i
].
date
;
imp
.
mining
=
data
[
i
].
mining
;
this
.
imp
.
mining
=
data
[
i
].
mining
;
imp
.
actOperation2
=
transToCellData
;
this
.
imp
.
actOperation2
=
transToCellData
;
list
.
push
(
imp
);
list
.
push
(
this
.
imp
);
}
else
{
}
else
{
let
ssd
=
{}
ssd
.
exportUuid
=
data
[
i
].
exportUuid
let
parse
=
JSON
.
parse
(
data
[
i
].
historyContent
);
let
parse
=
JSON
.
parse
(
data
[
i
].
historyContent
);
let
transToCellData
=
window
.
luckysheet
.
transToData
(
parse
[
0
].
celldata
);
let
transToCellData
=
window
.
luckysheet
.
transToData
(
parse
[
0
].
celldata
);
ssd
.
hId
=
data
[
i
].
id
;
this
.
ssd
.
hId
=
data
[
i
].
id
;
ssd
.
createBy
=
data
[
i
].
createBy
;
this
.
ssd
.
createBy
=
data
[
i
].
createBy
;
ssd
.
hDate
=
data
[
i
].
date
;
this
.
ssd
.
hDate
=
data
[
i
].
date
;
ssd
.
mining
=
data
[
i
].
mining
;
this
.
ssd
.
mining
=
data
[
i
].
mining
;
ssd
.
actOperation2
=
transToCellData
;
this
.
ssd
.
actOperation2
=
transToCellData
;
ssd
.
convenRole
=
data
[
i
].
convenRole
ssd
.
historyRole
=
data
[
i
].
historyRole
list1
.
push
(
this
.
ssd
);
list1
.
push
(
ssd
);
}
}
}
}
addInsertAccount1
(
list
).
then
(
response
=>
{
addInsertAccount1
(
list
).
then
(
response
=>
{
});
});
...
@@ -1078,12 +1850,12 @@
...
@@ -1078,12 +1850,12 @@
},
500
),
// 设置延迟时间,单位为毫秒
},
500
),
// 设置延迟时间,单位为毫秒
}
}
// 配置项111
// 配置项111
};
};
// debounce函数定义
// debounce函数定义
function
debounce
(
func
,
delay
)
{
function
debounce
(
func
,
delay
)
{
let
timer
;
let
timer
;
return
function
()
{
return
function
()
{
const
context
=
this
;
const
context
=
this
;
...
@@ -1093,8 +1865,8 @@
...
@@ -1093,8 +1865,8 @@
func
.
apply
(
context
,
args
);
func
.
apply
(
context
,
args
);
},
delay
);
},
delay
);
};
};
}
}
function
getKeyByValue
(
map
,
value
)
{
function
getKeyByValue
(
map
,
value
)
{
for
(
let
[
key
,
val
]
of
map
)
{
for
(
let
[
key
,
val
]
of
map
)
{
if
(
val
===
value
)
{
if
(
val
===
value
)
{
return
key
;
return
key
;
...
@@ -1103,15 +1875,15 @@
...
@@ -1103,15 +1875,15 @@
return
key
;
return
key
;
}
}
}
}
}
}
function
generateUUID
()
{
function
generateUUID
()
{
let
array
=
new
Uint32Array
(
4
);
let
array
=
new
Uint32Array
(
4
);
window
.
crypto
.
getRandomValues
(
array
);
window
.
crypto
.
getRandomValues
(
array
);
return
array
.
join
(
"
-
"
);
return
array
.
join
(
"
-
"
);
}
}
</
script
>
</
script
>
<
style
>
<
style
>
.mask
{
.mask
{
position
:
fixed
;
position
:
fixed
;
top
:
0
;
top
:
0
;
left
:
0
;
left
:
0
;
...
@@ -1121,9 +1893,9 @@
...
@@ -1121,9 +1893,9 @@
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
}
}
.loading-spinner
{
.loading-spinner
{
/* 添加你的加载动画样式 */
/* 添加你的加载动画样式 */
width
:
40px
;
width
:
40px
;
height
:
40px
;
height
:
40px
;
...
@@ -1131,9 +1903,9 @@
...
@@ -1131,9 +1903,9 @@
border
:
4px
solid
#f3f3f3
;
border
:
4px
solid
#f3f3f3
;
border-top
:
4px
solid
#3498db
;
border-top
:
4px
solid
#3498db
;
animation
:
spin
1s
linear
infinite
;
animation
:
spin
1s
linear
infinite
;
}
}
@keyframes
spin
{
@keyframes
spin
{
0
%
{
0
%
{
transform
:
rotate
(
0deg
);
transform
:
rotate
(
0deg
);
}
}
...
@@ -1141,5 +1913,5 @@
...
@@ -1141,5 +1913,5 @@
100
%
{
100
%
{
transform
:
rotate
(
360deg
);
transform
:
rotate
(
360deg
);
}
}
}
}
</
style
>
</
style
>
ruoyi-ui/src/views/system/supplies/indexupload.vue
View file @
acae3d48
...
@@ -230,6 +230,7 @@ export default {
...
@@ -230,6 +230,7 @@ export default {
data
:
exportJson
.
sheets
,
data
:
exportJson
.
sheets
,
userInfo
:
exportJson
.
info
.
name
.
creator
userInfo
:
exportJson
.
info
.
name
.
creator
})
})
console
.
log
(
exportJson
.
sheets
,
'
2222222222222
'
)
data1
=
exportJson
.
sheets
[
0
];
data1
=
exportJson
.
sheets
[
0
];
name1
=
exportJson
.
sheets
[
0
].
name
;
name1
=
exportJson
.
sheets
[
0
].
name
;
let
suffixArr
=
exportJson
.
info
.
name
.
split
(
'
.
'
);
let
suffixArr
=
exportJson
.
info
.
name
.
split
(
'
.
'
);
...
...
ruoyi-ui/src/views/system/supplies/viewuploads2.vue
0 → 100644
View file @
acae3d48
<
template
>
<div
class=
"container"
>
<div
class=
"left-table"
>
<h2>
左边表格
</h2>
<input
type=
"file"
@
change=
"uploadFile(1)"
/>
<table>
<thead>
<tr>
<th>
序号
</th>
<th>
文件名
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
v-for=
"(file, index) in leftTableData"
:class=
"
{ dragged: index === draggedIndex }"
:key="index"
draggable
@dragstart="dragStart(index)"
@dragover="dragOver(index)"
@drop="drop(index)"
@dragend="dragEnd"
>
<td>
{{
index
+
1
}}
</td>
<td>
{{
file
.
name
}}
</td>
<td>
<button
@
click=
"moveUp(index)"
>
上移
</button>
<button
@
click=
"moveDown(index)"
>
下移
</button>
<button
@
click=
"duplicate(index)"
>
复制
</button>
<button
@
click=
"deleteItem(index)"
>
删除
</button>
</td>
</tr>
</tbody>
</table>
<div
v-if=
"draggedIndex !== -1"
class=
"drag-overlay"
></div>
</div>
<div
class=
"comparison"
>
<button
@
click=
"compareFiles"
>
比较
</button>
<h2>
比较结果:
</h2>
<ul>
<li
v-for=
"(result, index) in comparedFiles"
:key=
"index"
>
{{
result
===
"
对
"
?
"
✓
"
:
"
✗
"
}}
</li>
</ul>
<div
v-if=
"showAnimation"
class=
"line"
></div>
</div>
<div
class=
"right-table"
>
<h2>
右边表格
</h2>
<input
type=
"file"
@
change=
"uploadFile(2)"
/>
<table>
<thead>
<tr>
<th>
序号
</th>
<th>
文件名
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
v-for=
"(file, index) in rightTableData"
:key=
"index"
:class=
"
{ dragged2: index === draggedIndex }"
draggable
@dragstart="dragStart2(index)"
@dragover="dragOver2(index)"
@drop="drop2(index)"
@dragend="dragEnd2"
>
<td>
{{
index
+
1
}}
</td>
<td>
{{
file
.
name
}}
</td>
<td>
<button
@
click=
"moveUp2(index)"
>
上移
</button>
<button
@
click=
"moveDown2(index)"
>
下移
</button>
<button
@
click=
"duplicate2(index)"
>
复制
</button>
<button
@
click=
"deleteItem2(index)"
>
删除
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</
template
>
<
script
>
export
default
{
name
:
"
viewuploads
"
,
data
()
{
return
{
leftTableData
:
[],
rightTableData
:
[],
comparedFiles
:
[],
draggedIndex
:
null
,
draggedIndex2
:
null
,
showAnimation
:
false
,
draggedIndex3
:
-
1
,
draggedIndex6
:
-
1
,
};
},
methods
:
{
dragStart
(
index
)
{
this
.
draggedIndex3
=
index
;
},
dragEnd
()
{
this
.
draggedIndex
=
-
1
;
},
dragStart2
(
index
)
{
this
.
draggedIndex6
=
index
;
},
dragEnd2
()
{
this
.
draggedIndex
=
-
1
;
},
compareFiles
()
{},
// 调用dragstart事件并触发
dragStart
(
index
)
{
this
.
draggedIndex
=
index
;
},
// 调用dragOver事件并触发
dragOver
(
index
)
{
event
.
preventDefault
();
},
// 调用drop事件并触发
drop
(
index
)
{
const
draggedItem
=
this
.
leftTableData
[
this
.
draggedIndex
];
if
(
index
===
this
.
draggedIndex
)
{
return
;
}
this
.
leftTableData
.
splice
(
this
.
draggedIndex
,
1
);
this
.
leftTableData
.
splice
(
index
,
0
,
draggedItem
);
},
// 上移
moveUp
(
index
)
{
if
(
index
>
0
)
{
const
temp
=
this
.
leftTableData
[
index
];
this
.
leftTableData
.
splice
(
index
,
1
);
this
.
leftTableData
.
splice
(
index
-
1
,
0
,
temp
);
}
},
// 下移
moveDown
(
index
)
{
if
(
index
<
this
.
leftTableData
.
length
-
1
)
{
const
temp
=
this
.
leftTableData
[
index
];
this
.
leftTableData
.
splice
(
index
,
1
);
this
.
leftTableData
.
splice
(
index
+
1
,
0
,
temp
);
}
},
// 复制
duplicate
(
index
)
{
const
item
=
Object
.
assign
({},
this
.
leftTableData
[
index
]);
this
.
leftTableData
.
splice
(
index
+
1
,
0
,
item
);
},
// 删除
deleteItem
(
index
)
{
this
.
leftTableData
.
splice
(
index
,
1
);
},
// 调用dragstart事件并触发
dragStart2
(
index
)
{
this
.
draggedIndex2
=
index
;
},
// 调用dragOver事件并触发
dragOver2
(
index
)
{
event
.
preventDefault
();
},
// 调用drop事件并触发
drop2
(
index
)
{
const
draggedItem2
=
this
.
rightTableData
[
this
.
draggedIndex2
];
if
(
index
===
this
.
draggedIndex2
)
{
return
;
}
this
.
rightTableData
.
splice
(
this
.
draggedIndex2
,
1
);
this
.
rightTableData
.
splice
(
index
,
0
,
draggedItem2
);
},
// 上移
moveUp2
(
index
)
{
if
(
index
>
0
)
{
const
temp
=
this
.
rightTableData
[
index
];
this
.
rightTableData
.
splice
(
index
,
1
);
this
.
rightTableData
.
splice
(
index
-
1
,
0
,
temp
);
}
},
// 下移
moveDown2
(
index
)
{
if
(
index
<
this
.
rightTableData
.
length
-
1
)
{
const
temp
=
this
.
rightTableData
[
index
];
this
.
rightTableData
.
splice
(
index
,
1
);
this
.
rightTableData
.
splice
(
index
+
1
,
0
,
temp
);
}
},
// 复制
duplicate2
(
index
)
{
const
file
=
Object
.
assign
({},
this
.
rightTableData
[
index
]);
this
.
rightTableData
.
splice
(
index
+
1
,
0
,
file
);
},
// 删除
deleteItem2
(
index
)
{
this
.
rightTableData
.
splice
(
index
,
1
);
},
uploadFile
(
table
)
{
const
fileInput
=
event
.
target
;
const
files
=
fileInput
.
files
;
const
tableData
=
table
===
1
?
this
.
leftTableData
:
this
.
rightTableData
;
debugger
// 将上传的文件添加到对应的表格数据中
for
(
let
i
=
0
;
i
<
files
.
length
;
i
++
)
{
tableData
.
push
(
files
[
i
]);
}
// 按序号排序
tableData
.
sort
((
a
,
b
)
=>
a
.
name
.
localeCompare
(
b
.
name
));
// 比较左右表格的文件名
if
(
this
.
leftTableData
.
length
>
0
&&
this
.
rightTableData
.
length
>
0
)
{
this
.
comparedFiles
=
this
.
compareFiles
();
}
else
{
this
.
clearComparison
();
}
},
compareFiles
()
{
this
.
showAnimation
=
true
;
setTimeout
(()
=>
{
this
.
showAnimation
=
false
;
},
2800
);
setTimeout
(()
=>
{
this
.
comparedFiles
=
[];
const
minLength
=
Math
.
min
(
this
.
leftTableData
.
length
,
this
.
rightTableData
.
length
);
for
(
let
i
=
0
;
i
<
minLength
;
i
++
)
{
const
leftFileName
=
this
.
leftTableData
[
i
].
name
;
const
rightFileName
=
this
.
rightTableData
[
i
].
name
;
if
(
leftFileName
===
rightFileName
)
{
this
.
comparedFiles
.
push
(
"
对
"
);
}
else
{
this
.
comparedFiles
.
push
(
"
错
"
);
}
}
},
3000
);
},
clearComparison
()
{
this
.
comparedFiles
=
[];
},
},
};
</
script
>
<
style
>
tr
.dragged
{
opacity
:
0.5
;
}
tr
.dragged2
{
opacity
:
0.5
;
}
/* .drag-overlay
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 999;
pointer-events: none;
} */
.line
{
width
:
100%
;
height
:
1px
;
background-color
:
red
;
animation
:
lineAnimation
3s
linear
;
position
:
relative
;
top
:
15px
;
}
@keyframes
lineAnimation
{
0
%
{
width
:
0
;
}
100
%
{
width
:
100%
;
}
}
.container
{
display
:
flex
;
justify-content
:
space-between
;
margin
:
100px
;
}
.left-table
,
.right-table
{
width
:
45%
;
}
.comparison
{
width
:
20%
;
position
:
relative
;
margin-left
:
100px
;
}
table
{
width
:
100%
;
border-collapse
:
collapse
;
margin-top
:
20px
;
}
th
,
td
{
border
:
1px
solid
#ccc
;
padding
:
8px
;
}
h2
{
font-size
:
18px
;
margin-bottom
:
10px
;
}
input
[
type
=
"file"
]
{
margin-bottom
:
10px
;
}
ul
{
list-style
:
none
;
padding-left
:
0
;
}
li
{
margin-bottom
:
5px
;
}
.comparison
>
ul
{
margin-top
:
85px
;
position
:
relative
;
}
.comparison
>
ul
>
li
{
margin-top
:
20px
;
}
.animation
{
width
:
100px
;
height
:
100px
;
background-color
:
red
;
transition
:
opacity
0.3s
ease-in-out
;
}
.animation-enter-active
,
.animation-leave-active
{
opacity
:
0
;
}
tr
.dragged
{
opacity
:
0.5
;
}
tr
.drag-over
{
background-color
:
#e5e5e5
;
}
</
style
>
ruoyi-ui/src/views/system/suppliesrole/index.vue
View file @
acae3d48
...
@@ -104,9 +104,6 @@
...
@@ -104,9 +104,6 @@
<el-form-item
label=
"规则名称"
prop=
"roleName"
>
<el-form-item
label=
"规则名称"
prop=
"roleName"
>
<el-input
v-model=
"form.roleName"
placeholder=
"请输入规则名称"
maxlength=
"36"
/>
<el-input
v-model=
"form.roleName"
placeholder=
"请输入规则名称"
maxlength=
"36"
/>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
@@ -116,7 +113,7 @@
...
@@ -116,7 +113,7 @@
</el-dialog>
</el-dialog>
<!-- 添加或修改规则详情对话框 -->
<!-- 添加或修改规则详情对话框 -->
<el-dialog
:title=
"title"
:visible.sync=
"optionDetail"
width=
"1300px"
append-to-body
>
<el-dialog
@
close=
"Dialog"
:title=
"title"
:visible.sync=
"optionDetail"
width=
"1300px"
append-to-body
>
<el-form
ref=
"forms"
:model=
"forms"
:rules=
"rules"
label-width=
"80px"
>
<el-form
ref=
"forms"
:model=
"forms"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"规则详情"
prop=
"roleId"
>
<el-form-item
label=
"规则详情"
prop=
"roleId"
>
<el-select
v-model=
"selectedOption"
filterable
placeholder=
"请选择关联项"
<el-select
v-model=
"selectedOption"
filterable
placeholder=
"请选择关联项"
...
@@ -137,7 +134,7 @@
...
@@ -137,7 +134,7 @@
<el-row>
<el-row>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"转换类型"
prop=
"detailYS"
>
<el-form-item
label=
"转换类型"
prop=
"detailYS"
>
<el-radio-group
v-model=
"forms.detailYS"
>
<el-radio-group
v-model=
"forms.detailYS"
@
change=
"radiovalue"
>
<el-radio
label=
"1"
>
单元格转换
</el-radio>
<el-radio
label=
"1"
>
单元格转换
</el-radio>
<el-radio
label=
"2"
>
行转换
</el-radio>
<el-radio
label=
"2"
>
行转换
</el-radio>
<el-radio
label=
"3"
>
列转换
</el-radio>
<el-radio
label=
"3"
>
列转换
</el-radio>
...
@@ -145,23 +142,34 @@
...
@@ -145,23 +142,34 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"16"
>
<el-col
:span=
"16"
>
<el-form-item
v-if=
"forms.detailYS !== null"
>
<el-form-item
v-if=
"optionid"
>
<el-button
type=
"primary"
<el-button
type=
"primary"
:disabled=
"isDisable || isDelete"
@
click=
"addInputs"
>
添加规则
</el-button>
:disabled=
"isDisable"
@
click=
"addInputs"
>
添加规则
</el-button>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<!-- 生成输入框 -->
<!-- 生成输入框 -->
<div
v-for=
"index in instea"
:key=
"index"
>
<div
v-for=
"index in instea"
:key=
"index"
>
<span
v-if=
"isTitle && index == 1"
style=
"color:red;"
>
<b>
物料编码
</b>
</span>
<span
v-if=
"isTitle && index == 2"
style=
"color:red;"
>
<b>
部门名称
</b>
</span>
<span
v-if=
"isTitle && index == 3"
style=
"color:red;"
>
<b>
计量单位
</b>
</span>
<span
v-if=
"isTitle && index == 4"
style=
"color:red;"
>
<b>
费用来源
</b>
</span>
<span
v-if=
"isTittle && index == 1"
style=
"color:red;"
>
<b>
数量
</b>
</span>
<span
v-if=
"isTittle && index == 2"
style=
"color:red;"
>
<b>
金额
</b>
</span>
<span
v-if=
"isTittle && index == 1"
style=
"position: absolute; left:632px;top:342px; z-index: 2;color: red;"
>
<b>
数量
</b>
</span>
<span
v-if=
"isTittle && index == 2"
style=
"position: absolute; left:632px;top:444px; z-index: 2;color: red;"
>
<b>
单价
</b>
</span>
<el-form-item
label=
"表头所在行"
prop=
"cleanIng"
class=
"form-item-inline"
v-if=
"optionid === 6"
>
<el-form-item
label=
"表头所在行"
prop=
"cleanIng"
class=
"form-item-inline"
v-if=
"optionid === 6"
>
<el-input-number
size=
"medium"
v-model=
"cleanIng.HeaderRow"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
<el-input-number
size=
"medium"
v-model=
"cleanIng.HeaderRow"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
label=
"模板表行坐标"
prop=
"detailMH"
class=
"form-item-inline"
v-else
>
<el-form-item
label=
"模板表行坐标"
prop=
"detailMH"
class=
"form-item-inline"
v-else
>
<el-input-number
size=
"medium"
v-model=
"detailMH[index - 1]"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
<el-input-number
size=
"medium"
v-model=
"detailMH[index - 1]"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
label=
"物料名称所在列"
prop=
"cleanIng"
class=
"form-item-inline"
v-if=
"optionid === 6"
>
<el-form-item
label=
"物料名称所在列"
prop=
"cleanIng"
class=
"form-item-inline"
v-if=
"optionid === 6"
>
<el-input-number
size=
"medium"
v-model=
"cleanIng.NameColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
<el-input-number
size=
"medium"
v-model=
"cleanIng.NameColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
...
@@ -197,16 +205,59 @@
...
@@ -197,16 +205,59 @@
<el-input-number
size=
"medium"
v-model=
"cleanIng.MoneyColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
<el-input-number
size=
"medium"
v-model=
"cleanIng.MoneyColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
label=
"计量单位所在列"
prop=
"cleanIng"
class=
"form-item-inline"
v-if=
"optionid === 6"
>
<el-input-number
size=
"medium"
v-model=
"cleanIng.unit"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<br>
<el-form-item
label=
"是否需要转换"
prop=
"cleanIng"
class=
"form-item-inline"
v-if=
"optionid === 6"
>
<el-select
v-model=
"cleanIng.conversion"
placeholder=
"请选择"
@
change=
"ConversionChange"
>
<el-option
v-for=
"item in conversion"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<el-form-item
label=
"费用渠道所在列"
prop=
"cleanIng"
class=
"form-item-inline"
v-if=
"ConversionValue === 0"
>
<el-input-number
size=
"medium"
v-model=
"cleanIng.expenses"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"费用备用所在列"
prop=
"cleanIng"
class=
"form-item-inline"
v-if=
"ConversionValue === 1"
>
<el-input-number
size=
"medium"
v-model=
"cleanIng.spare"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
label=
"日期所在列"
prop=
"cleanIng"
class=
"form-item-inline"
v-if=
"optionid === 6"
>
<el-form-item
label=
"日期所在列"
prop=
"cleanIng"
class=
"form-item-inline"
v-if=
"optionid === 6"
>
<el-input-number
size=
"medium"
v-model=
"cleanIng.DateColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
<el-select
v-model=
"datevalue"
placeholder=
"请选择日期所在列"
@
change=
"dateChange"
label=
"日期所在列"
>
<el-option
v-for=
"item in date"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<el-input-number
style=
"margin-left: 5vw;"
v-if=
"datevalue == 1"
size=
"medium"
v-model=
"cleanIng.DateColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
style=
"display: inline-block;"
>
<el-form-item
style=
"display: inline-block;"
v-if=
"!isDelete"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
size=
"small"
<el-button
type=
"danger"
icon=
"el-icon-delete"
size=
"small"
@
click=
"removeInputs(index)"
>
删除
</el-button>
@
click=
"removeInputs(index)"
>
删除
</el-button>
</el-form-item>
</el-form-item>
</div>
</div>
<el-form-item
style=
"display: inline-block;"
v-if=
"isDelete"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
size=
"small"
@
click=
"removeInputs"
>
删除
</el-button>
</el-form-item>
<div
v-if=
"optionid !== 6 && instea >= 1"
style=
"color: red; margin-left: 2.5vw;"
>
为防止后面步骤出错,导入表和模板表的行列坐标必须为表头所在单元格的行列
</div>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm2"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm2"
>
确 定
</el-button>
...
@@ -236,12 +287,33 @@ export default {
...
@@ -236,12 +287,33 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
date
:
[{
value
:
0
,
label
:
'
无
'
},
{
value
:
1
,
label
:
'
有
'
}],
datevalue
:
0
,
conversion
:
[{
value
:
0
,
label
:
'
不需要
'
},
{
value
:
1
,
label
:
'
需要
'
}],
ConversionValue
:
''
,
selectedOption
:
''
,
selectedOption
:
''
,
// 遮罩层
// 遮罩层
loading
:
true
,
loading
:
true
,
// 选中数组
// 选中数组
ids
:
[],
ids
:
[],
name
:
[],
name
:
[],
radiitemValue
:
{
radio
:
'
0
'
,
conver
:
'
0
'
},
tempIds
:
[],
tempIds
:
[],
// 非单个禁用
// 非单个禁用
single
:
true
,
single
:
true
,
...
@@ -275,7 +347,7 @@ export default {
...
@@ -275,7 +347,7 @@ export default {
},
},
// 表单参数
// 表单参数
form
:
{},
form
:
{},
optionid
:
''
,
optionid
:
''
,
forms
:
{},
forms
:
{},
formdeta
:
{},
formdeta
:
{},
formtemp
:
{},
formtemp
:
{},
...
@@ -283,7 +355,19 @@ export default {
...
@@ -283,7 +355,19 @@ export default {
detailML
:
[],
detailML
:
[],
detailYH
:
[],
detailYH
:
[],
detailYL
:
[],
detailYL
:
[],
cleanIng
:{},
cleanIng
:
{
HeaderRow
:
''
,
NameColumn
:
''
,
CodeColumn
:
''
,
DepartmentColumn
:
''
,
NumberColumn
:
''
,
MoneyColumn
:
''
,
DateColumn
:
''
,
unit
:
''
,
expenses
:
''
,
conversion
:
''
,
spare
:
''
},
instea
:
0
,
instea
:
0
,
// 表单校验
// 表单校验
rules
:
{
rules
:
{
...
@@ -297,8 +381,17 @@ export default {
...
@@ -297,8 +381,17 @@ export default {
};
};
},
},
computed
:
{
computed
:
{
isDisable
(){
isDisable
()
{
return
this
.
instea
===
1
&&
this
.
optionid
===
6
return
(
this
.
instea
>=
1
&&
this
.
optionid
==
6
)
||
(
this
.
radiitemValue
.
radio
==
2
&&
this
.
radiitemValue
.
conver
==
3
&&
this
.
instea
>=
4
)
},
isDelete
()
{
return
(
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
1
&&
this
.
instea
>=
4
)
||
(
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
2
&&
this
.
instea
>=
2
)
},
isTitle
()
{
return
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
1
},
isTittle
()
{
return
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
2
}
}
},
},
created
()
{
created
()
{
...
@@ -306,7 +399,44 @@ export default {
...
@@ -306,7 +399,44 @@ export default {
this
.
getnameid
();
this
.
getnameid
();
},
},
methods
:
{
methods
:
{
handleRadioChange
()
{
empty
()
{
this
.
optionid
=
''
this
.
datevalue
=
0
this
.
radiitemValue
.
radio
=
0
this
.
radiitemValue
.
conver
=
0
this
.
detailMH
=
[]
this
.
detailML
=
[]
this
.
detailYH
=
[]
this
.
detailYL
=
[]
},
Dialog
()
{
this
.
empty
()
},
radiovalue
(
value
)
{
this
.
radiitemValue
.
radio
=
Number
(
value
)
this
.
detailMH
=
[]
this
.
detailML
=
[]
this
.
detailYH
=
[]
this
.
detailYL
=
[]
this
.
instea
=
0
},
ConversionChange
(
value
)
{
this
.
ConversionValue
=
value
if
(
value
===
0
)
{
this
.
cleanIng
.
spare
=
''
}
else
{
this
.
cleanIng
.
expenses
=
''
}
},
dateChange
()
{
this
.
cleanIng
.
DateColumn
=
''
},
handleRadioChange
(
value
)
{
this
.
radiitemValue
.
conver
=
value
this
.
optionid
=
this
.
forms
.
convertStatus
this
.
optionid
=
this
.
forms
.
convertStatus
this
.
detailMH
=
[]
this
.
detailMH
=
[]
this
.
detailML
=
[]
this
.
detailML
=
[]
...
@@ -320,30 +450,74 @@ export default {
...
@@ -320,30 +450,74 @@ export default {
DepartmentColumn
:
''
,
DepartmentColumn
:
''
,
NumberColumn
:
''
,
NumberColumn
:
''
,
MoneyColumn
:
''
,
MoneyColumn
:
''
,
DateColumn
:
''
DateColumn
:
''
,
unit
:
''
,
expenses
:
''
,
conversion
:
''
,
spare
:
''
}
}
},
},
removeInputs
(
index
)
{
removeInputs
(
index
)
{
if
(
this
.
isDelete
)
{
this
.
instea
=
0
this
.
detailMH
=
[]
this
.
detailML
=
[]
this
.
detailYH
=
[]
this
.
detailYL
=
[]
}
else
{
this
.
detailMH
.
splice
(
index
-
1
,
1
);
this
.
detailMH
.
splice
(
index
-
1
,
1
);
this
.
detailML
.
splice
(
index
-
1
,
1
);
this
.
detailML
.
splice
(
index
-
1
,
1
);
this
.
detailYH
.
splice
(
index
-
1
,
1
);
this
.
detailYH
.
splice
(
index
-
1
,
1
);
this
.
detailYL
.
splice
(
index
-
1
,
1
);
this
.
detailYL
.
splice
(
index
-
1
,
1
);
this
.
instea
=
this
.
instea
-
1
;
this
.
instea
=
this
.
instea
-
1
;
}
},
},
addInputs
()
{
addInputs
()
{
if
((
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
1
)
||
(
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
2
))
{
if
(
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
1
)
{
let
i
=
4
-
this
.
instea
this
.
instea
+=
i
if
(
this
.
detailMH
&&
this
.
detailML
&&
this
.
detailYH
&&
this
.
detailYL
)
{
[
this
.
detailMH
,
this
.
detailML
,
this
.
detailYH
,
this
.
detailYL
].
forEach
(
arr
=>
{
while
(
arr
.
length
<
4
)
arr
.
push
(
1
);
});
}
}
if
(
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
2
)
{
let
i
=
2
-
this
.
instea
this
.
instea
+=
i
if
(
this
.
detailMH
&&
this
.
detailML
&&
this
.
detailYH
&&
this
.
detailYL
)
{
[
this
.
detailMH
,
this
.
detailML
,
this
.
detailYH
,
this
.
detailYL
].
forEach
(
arr
=>
{
while
(
arr
.
length
<
2
)
arr
.
push
(
1
);
});
}
}
}
else
{
this
.
instea
+=
1
;
this
.
instea
+=
1
;
this
.
detailMH
[
this
.
instea
-
1
]
=
1
;
this
.
detailMH
.
push
(
1
)
this
.
detailML
[
this
.
instea
-
1
]
=
1
;
this
.
detailML
.
push
(
1
)
this
.
detailYH
[
this
.
instea
-
1
]
=
1
;
this
.
detailYH
.
push
(
1
)
this
.
detailYL
[
this
.
instea
-
1
]
=
1
;
this
.
detailYL
.
push
(
1
)
}
},
},
/**启用 */
/**启用 */
toggleEnable
(
suppliesRole
)
{
toggleEnable
(
suppliesRole
)
{
console
.
log
(
'
你点击了【
'
+
suppliesRole
.
s
+
'
】的开关控件,当前开关值:
'
+
suppliesRole
.
status
);
console
.
log
(
'
你点击了【
'
+
suppliesRole
.
s
+
'
】的开关控件,当前开关值:
'
+
suppliesRole
.
status
);
...
@@ -403,6 +577,7 @@ export default {
...
@@ -403,6 +577,7 @@ export default {
// 取消按钮
// 取消按钮
cancel
()
{
cancel
()
{
this
.
optionid
=
''
this
.
open
=
false
;
this
.
open
=
false
;
this
.
optionDetail
=
false
;
this
.
optionDetail
=
false
;
this
.
reset
();
this
.
reset
();
...
@@ -452,6 +627,7 @@ export default {
...
@@ -452,6 +627,7 @@ export default {
this
.
reset
();
this
.
reset
();
const
id
=
row
.
id
||
this
.
ids
const
id
=
row
.
id
||
this
.
ids
getSuppliesrole
(
id
).
then
(
response
=>
{
getSuppliesrole
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
open
=
true
;
this
.
title
=
"
修改导入规则
"
;
this
.
title
=
"
修改导入规则
"
;
...
@@ -482,12 +658,21 @@ export default {
...
@@ -482,12 +658,21 @@ export default {
handleOptionChange
(
selectedOption
)
{
handleOptionChange
(
selectedOption
)
{
getSuppliesroledetail
(
selectedOption
).
then
(
response
=>
{
getSuppliesroledetail
(
selectedOption
).
then
(
response
=>
{
this
.
forms
=
response
.
data
;
this
.
forms
=
response
.
data
;
this
.
radiitemValue
.
conver
=
this
.
forms
.
convertStatus
this
.
radiitemValue
.
radio
=
this
.
forms
.
detailYS
const
detailContent
=
response
.
data
.
detailContent
;
const
detailContent
=
response
.
data
.
detailContent
;
const
parse
=
JSON
.
parse
(
detailContent
);
const
parse
=
JSON
.
parse
(
detailContent
);
this
.
optionid
=
response
.
data
.
convertStatus
this
.
optionid
=
response
.
data
.
convertStatus
if
(
response
.
data
.
convertStatus
===
6
)
{
this
.
instea
=
parse
.
length
this
.
instea
=
parse
.
length
if
(
response
.
data
.
convertStatus
===
6
)
{
this
.
cleanIng
=
parse
[
0
]
this
.
cleanIng
=
parse
[
0
]
if
(
this
.
cleanIng
.
DateColumn
!==
''
)
{
this
.
datevalue
=
1
}
else
{
this
.
datevalue
=
0
}
}
else
{
}
else
{
this
.
detailMH
=
parse
.
map
(
obj
=>
parseInt
(
obj
.
rt
)
+
1
);
this
.
detailMH
=
parse
.
map
(
obj
=>
parseInt
(
obj
.
rt
)
+
1
);
this
.
detailML
=
parse
.
map
(
obj
=>
parseInt
(
obj
.
ct
)
+
1
);
this
.
detailML
=
parse
.
map
(
obj
=>
parseInt
(
obj
.
ct
)
+
1
);
...
@@ -526,7 +711,7 @@ export default {
...
@@ -526,7 +711,7 @@ export default {
submitForm2
()
{
submitForm2
()
{
this
.
form
.
cleanIng
=
JSON
.
stringify
(
this
.
cleanIng
);
this
.
form
s
.
cleanIng
=
JSON
.
stringify
(
this
.
cleanIng
);
this
.
forms
.
detailMH
=
this
.
detailMH
;
this
.
forms
.
detailMH
=
this
.
detailMH
;
this
.
forms
.
detailML
=
this
.
detailML
;
this
.
forms
.
detailML
=
this
.
detailML
;
this
.
forms
.
detailYH
=
this
.
detailYH
;
this
.
forms
.
detailYH
=
this
.
detailYH
;
...
...
ruoyi-ui/src/views/system/suppliesroledetail/index(1).vue
deleted
100644 → 0
View file @
3b91e088
<
template
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"上级规则"
prop=
"roleId"
>
<el-select
v-model=
"queryParams.roleId"
filterable
clearable
placeholder=
"请选择关联项"
>
<el-option
v-for=
"option in options1"
:key=
"option.roleName"
:label=
"option.roleName"
:value=
"option.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"规则名称"
prop=
"detailName"
>
<el-input
v-model=
"queryParams.detailName"
placeholder=
"请输入规则名称"
clearable
size=
"small"
@
keyup.enter.native=
"handleQuery"
maxlength=
"15"
/>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"queryParams.status"
placeholder=
"请选择状态"
>
<el-option
label=
"启用"
:value=
"0"
></el-option>
<el-option
label=
"禁用"
:value=
"1"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"运算规则"
prop=
"convertStatus"
>
<el-select
v-model=
"queryParams.convertStatus"
clearable
filterable
placeholder=
"请运算规则"
>
<el-option
v-for=
"option in options2"
:key=
"option.operationName"
:label=
"option.operationName"
:value=
"option.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<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
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['system:suppliesroledetail:add']"
>
新增
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"danger"
plain
icon=
"el-icon-delete"
size=
"mini"
:disabled=
"multiple"
@
click=
"handleDelete"
v-hasPermi=
"['system:suppliesroledetail:remove']"
>
删除
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
v-hasPermi=
"['system:suppliesroledetail:export']"
>
导出
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
<el-table
v-loading=
"loading"
:data=
"suppliesroledetailList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
type=
"index"
width=
"80"
align=
"center"
label=
"序号"
:index=
"indexMethod"
/>
<el-table-column
label=
"上级规则"
align=
"center"
prop=
"roleName"
/>
<el-table-column
label=
"规则名称"
align=
"center"
prop=
"detailName"
/>
<el-table-column
label=
"规则内容"
align=
"center"
prop=
"detailContent"
/>
<el-table-column
label=
"运算规则"
align=
"center"
>
<template
slot-scope=
"scope"
>
<div>
<template
v-if=
"scope.row.convertStatus === 0"
>
无
</
template
>
<
template
v-if=
"scope.row.convertStatus === 1"
>
物料转换
</
template
>
<
template
v-if=
"scope.row.convertStatus === 2"
>
加法运算
</
template
>
<
template
v-if=
"scope.row.convertStatus === 3"
>
减法运算
</
template
>
<
template
v-if=
"scope.row.convertStatus === 4"
>
乘法运算
</
template
>
<
template
v-if=
"scope.row.convertStatus === 5"
>
除法运算
</
template
>
<
template
v-if=
"scope.row.convertStatus === 6"
>
清洗规则
</
template
>
</div>
</template>
</el-table-column>
<el-table-column
label=
"状态"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<div>
<template
v-if=
"scope.row.status === 0"
>
<span
style=
"color: #0cc030;"
>
已发布
</span>
</
template
>
<
template
v-else-if=
"scope.row.status === 1"
>
<span
style=
"color: #0077ff;"
>
未发布
</span>
</
template
>
<
template
v-else-if=
"scope.row.status === 2"
>
<span
style=
"color: #ff0000;"
>
未发布
</span>
</
template
>
</div>
</template>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['system:suppliesroledetail:edit']"
:style=
"
{ display: scope.row.status === 1 ? '' : 'none' }">修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['system:suppliesroledetail:remove']"
:style=
"
{ display: scope.row.status === 1 ? '' : 'none' }">删除
</el-button>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNum"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 添加或修改规则详情对话框 -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"1300px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"上级规则"
prop=
"roleId"
>
<el-select
v-model=
"form.roleId"
filterable
placeholder=
"请选择关联项"
>
<el-option
v-for=
"option in options3"
:key=
"option.roleName"
:label=
"option.roleName"
:value=
"option.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"规则名称"
prop=
"detailName"
>
<el-input
v-model=
"form.detailName"
placeholder=
"请输入规则名称"
maxlength=
"36"
show-word-limit
/>
</el-form-item>
<el-form-item
label=
"运算方法"
prop=
"convertStatus"
>
<el-select
v-model=
"form.convertStatus"
filterable
placeholder=
"请选择运算方法"
@
change=
"handleRadioChange"
>
<el-option
v-for=
"option in options2"
:key=
"option.operationName"
:label=
"option.operationName"
:value=
"option.id"
></el-option>
</el-select>
</el-form-item>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"转换类型"
prop=
"detailYS"
>
<el-radio-group
v-model=
"form.detailYS"
>
<el-radio
label=
"1"
>
单元格转换
</el-radio>
<el-radio
label=
"2"
>
行转换
</el-radio>
<el-radio
label=
"3"
>
列转换
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span=
"16"
>
<el-form-item
v-if=
"form.detailYS !== null"
>
<el-button
type=
"primary"
:disabled=
"isDisable"
@
click=
"addInputs"
>
添加规则
</el-button>
</el-form-item>
</el-col>
</el-row>
<div
v-for=
"index in instea"
:key=
'index'
>
<el-form-item
label=
"表头所在行"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-input-number
size=
"medium"
v-model=
"CleanIng.HeaderRow"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"模板表行坐标"
prop=
"detailMH"
class=
"form-item-inline"
v-else
>
<el-input-number
size=
"medium"
v-model=
"detailMH[index - 1]"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"物料名称所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-input-number
size=
"medium"
v-model=
"CleanIng.NameColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"模板表列坐标"
prop=
"detailML"
class=
"form-item-inline"
v-else
>
<el-input-number
size=
"medium"
v-model=
"detailML[index - 1]"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"物料编码所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-input-number
size=
"medium"
v-model=
"CleanIng.CodeColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"导入表行坐标"
prop=
"detailYH"
class=
"form-item-inline"
v-else
>
<el-input-number
size=
"medium"
v-model=
"detailYH[index - 1]"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"部门所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-input-number
size=
"medium"
v-model=
"CleanIng.DepartmentColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"导入表列坐标"
prop=
"detailYL"
class=
"form-item-inline"
v-else
>
<el-input-number
size=
"medium"
v-model=
"detailYL[index - 1]"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"数量所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-input-number
size=
"medium"
v-model=
"CleanIng.NumberColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"金额所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-input-number
size=
"medium"
v-model=
"CleanIng.MoneyColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
label=
"日期所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6 "
>
<el-select
v-model=
"datevalue"
placeholder=
"请选择日期所在列"
@
change=
"dateChange"
label=
"日期所在列"
>
<el-option
v-for=
"item in date"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
<el-input-number
style=
"margin-left: 5vw;"
v-if=
"datevalue == 1"
size=
"medium"
v-model=
"CleanIng.DateColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<el-form-item
style=
"display: inline-block;"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
size=
"small"
@
click=
"removeInputs(index)"
>
删除
</el-button>
</el-form-item>
</div>
<div
v-if=
"options2id !== 6 && instea >= 1"
style=
"color: red; margin-left: 2.5vw;"
>
为防止后面步骤出错,导入表和模板表的行列坐标必须为表头所在单元格的行列
</div>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
style
>
.form-item-inline
{
display
:
inline-block
;
margin-right
:
20px
;
}
</
style
>
<
script
>
import
{
listSuppliesroledetail
,
getSuppliesroledetail
,
delSuppliesroledetail
,
addSuppliesroledetail
,
updateSuppliesroledetail
,
exportSuppliesroledetail
,
saveSid
,
toggleEnable
,
toggleDisable
,
saveOperation
,
saveSidsta
,
}
from
"
@/api/system/suppliesroledetail
"
;
import
Editor
from
'
@/components/Editor
'
;
export
default
{
name
:
"
Suppliesroledetail
"
,
components
:
{
Editor
,
},
data
()
{
return
{
date
:
[{
value
:
0
,
label
:
'
无
'
},
{
value
:
1
,
label
:
'
有
'
}],
datevalue
:
0
,
// 遮罩层
loading
:
true
,
//下拉选中的数值
options2id
:
''
,
// 选中数组
ids
:
[],
name
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 规则详情表格数据
suppliesroledetailList
:
[],
options1
:
[],
//上级ID
options3
:
[],
options2
:
[{
id
:
0
,
operationName
:
"
无
"
},
{
id
:
1
,
operationName
:
"
物料转换
"
},
{
id
:
2
,
operationName
:
"
加法运算
"
},
{
id
:
3
,
operationName
:
"
减法运算
"
},
{
id
:
4
,
operationName
:
"
乘法运算
"
},
{
id
:
5
,
operationName
:
"
除法运算
"
},
{
id
:
6
,
operationName
:
'
清洗规则
'
}],
//上级ID
// 弹出层标题
title
:
""
,
// 是否显示弹出层
open
:
false
,
inputCount
:
0
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
roleId
:
null
,
detailName
:
null
,
detailContent
:
null
,
status
:
null
,
converStatus
:
null
,
},
// 表单参数
form
:
{
},
CleanIng
:
{
HeaderRow
:
''
,
NameColumn
:
''
,
CodeColumn
:
''
,
DepartmentColumn
:
''
,
NumberColumn
:
''
,
MoneyColumn
:
''
,
DateColumn
:
''
},
detailMH
:
[],
detailML
:
[],
detailYH
:
[],
detailYL
:
[],
instea
:
0
,
showTemplate
:
false
,
// 控制单元格的显示与隐藏
showImport
:
false
,
// 控制行转换的显示与隐藏
showLie
:
false
,
// 控制列转换的显示与隐藏
// 表单校验
rules
:
{
roleId
:
[
{
required
:
true
,
message
:
'
关联id不能为空
'
,
trigger
:
'
change
'
},
],
convertStatus
:
[
{
required
:
true
,
message
:
'
运算规则不能为空
'
,
trigger
:
'
change
'
},
],
detailName
:
[
{
required
:
true
,
message
:
'
规则名称不能为空
'
,
trigger
:
'
change
'
},
]
}
};
},
watch
:
{
options2id
(
newValue
)
{
if
(
newValue
>=
0
&&
this
.
detailMH
.
length
>=
1
)
{
this
.
instea
=
1
}
}
},
computed
:
{
isDisable
()
{
return
this
.
instea
>=
1
&&
this
.
options2id
==
6
;
},
},
created
()
{
this
.
getList
();
this
.
getnameid
();
},
methods
:
{
dateChange
()
{
this
.
CleanIng
.
DateColumn
=
''
},
handleRadioChange
()
{
this
.
options2id
=
this
.
form
.
convertStatus
this
.
detailMH
=
[]
this
.
detailML
=
[]
this
.
detailYH
=
[]
this
.
detailYL
=
[]
this
.
instea
=
0
this
.
CleanIng
=
{
HeaderRow
:
''
,
NameColumn
:
''
,
CodeColumn
:
''
,
DepartmentColumn
:
''
,
NumberColumn
:
''
,
MoneyColumn
:
''
,
DateColumn
:
''
}
},
removeInputs
(
index
)
{
this
.
detailMH
.
splice
(
index
-
1
,
1
);
this
.
detailML
.
splice
(
index
-
1
,
1
);
this
.
detailYH
.
splice
(
index
-
1
,
1
);
this
.
detailYL
.
splice
(
index
-
1
,
1
);
this
.
instea
=
this
.
instea
-
1
;
},
addInputs
()
{
this
.
instea
+=
1
;
this
.
detailMH
.
push
(
1
)
this
.
detailML
.
push
(
1
)
this
.
detailYH
.
push
(
1
)
this
.
detailYL
.
push
(
1
)
},
toggleEnable
(
suppliesRoleDetail
)
{
console
.
log
(
'
你点击了【
'
+
suppliesRoleDetail
.
s
+
'
】的开关控件,当前开关值:
'
+
suppliesRoleDetail
.
status
);
let
enableText
=
[
'
启用
'
,
'
禁用
'
];
if
(
suppliesRoleDetail
.
status
===
0
)
{
toggleEnable
(
suppliesRoleDetail
.
id
).
then
((
response
)
=>
{
if
(
response
.
code
===
200
)
{
let
message
=
'
操作成功,已经将【
'
+
suppliesRoleDetail
.
roleName
+
'
】的状态改为【
'
+
enableText
[
suppliesRoleDetail
.
status
]
+
'
】 !
'
;
this
.
$message
({
message
:
message
,
type
:
'
success
'
});
}
else
{
this
.
$message
.
error
(
response
.
message
);
}
});
}
else
{
toggleDisable
(
suppliesRoleDetail
.
id
).
then
((
response
)
=>
{
if
(
response
.
code
===
200
)
{
let
message
=
'
操作成功,已经将【
'
+
suppliesRoleDetail
.
roleName
+
'
】的状态改为【
'
+
enableText
[
suppliesRoleDetail
.
status
]
+
'
】 !
'
;
this
.
$message
({
message
:
message
,
type
:
'
error
'
});
}
else
{
this
.
$message
.
error
(
response
.
message
);
}
});
}
},
/**显示序号*/
indexMethod
(
index
)
{
return
index
+
1
;
},
/**获取关联表内容*/
getnameid
()
{
//上级规则
saveSid
().
then
(
response
=>
{
this
.
options1
=
response
.
rows
;
})
},
/** 查询规则详情列表 */
getList
()
{
this
.
indexMethod
(
0
);
this
.
loading
=
true
;
listSuppliesroledetail
(
this
.
queryParams
).
then
(
response
=>
{
this
.
suppliesroledetailList
=
response
.
rows
;
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
});
},
// 取消按钮
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{
id
:
null
,
roleId
:
null
,
detailName
:
null
,
detailYS
:
null
,
detailContent
:
null
,
status
:
0
,
convertStatus
:
null
,
createBy
:
null
,
createTime
:
null
,
updateBy
:
null
,
updateTime
:
null
,
cleanIng
:
null
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
// 多选框选中数据
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
id
)
this
.
name
=
selection
.
map
(
item
=>
item
.
detailName
)
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
/** 新增按钮操作 */
handleAdd
()
{
//上级规则
saveSidsta
().
then
(
response
=>
{
this
.
options3
=
response
.
rows
;
})
this
.
instea
=
0
;
this
.
getnameid
();
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加规则详情
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
getnameid
();
const
ids
=
this
.
options1
.
map
(
option
=>
option
.
id
);
if
(
ids
.
findIndex
(
item
=>
item
===
row
.
roleId
)
!==
-
1
)
{
this
.
reset
();
const
id
=
row
.
id
||
this
.
ids
getSuppliesroledetail
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
options2id
=
response
.
data
.
convertStatus
const
detailContent
=
response
.
data
.
detailContent
;
const
parse
=
JSON
.
parse
(
detailContent
);
console
.
log
(
response
.
data
)
if
(
this
.
options2id
===
6
)
{
this
.
instea
=
1
this
.
CleanIng
=
parse
[
0
]
if
(
this
.
CleanIng
.
DateColumn
!==
''
)
{
this
.
datevalue
=
1
}
else
{
this
.
datevalue
=
0
}
}
else
{
this
.
detailMH
=
parse
.
map
(
obj
=>
parseInt
(
obj
.
rt
)
+
1
);
this
.
detailML
=
parse
.
map
(
obj
=>
parseInt
(
obj
.
ct
)
+
1
);
this
.
detailYH
=
parse
.
map
(
obj
=>
parseInt
(
obj
.
re
)
+
1
);
this
.
detailYL
=
parse
.
map
(
obj
=>
parseInt
(
obj
.
ce
)
+
1
);
this
.
instea
=
this
.
detailMH
.
length
;
}
this
.
open
=
true
;
this
.
title
=
"
修改规则详情
"
;
});
}
else
{
this
.
msgError
(
"
上级规则已发布,无法修改
"
)
}
},
/** 提交按钮 */
submitForm
()
{
this
.
form
.
cleanIng
=
JSON
.
stringify
(
this
.
CleanIng
);
this
.
form
.
detailMH
=
this
.
detailMH
;
this
.
form
.
detailML
=
this
.
detailML
;
this
.
form
.
detailYH
=
this
.
detailYH
;
this
.
form
.
detailYL
=
this
.
detailYL
;
this
.
form
.
status
=
1
;
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
form
.
id
!=
null
)
{
console
.
log
(
JSON
.
parse
(
this
.
form
.
cleanIng
),
'
2222222222
'
)
updateSuppliesroledetail
(
this
.
form
).
then
(
response
=>
{
this
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
}
else
{
addSuppliesroledetail
(
this
.
form
).
then
(
response
=>
{
this
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
ids
=
row
.
id
||
this
.
ids
;
const
name
=
row
.
detailName
||
this
.
name
;
this
.
$confirm
(
'
是否确认删除规则详情编号为"
'
+
name
+
'
"的数据项?
'
,
"
警告
"
,
{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
type
:
"
warning
"
}).
then
(
function
()
{
return
delSuppliesroledetail
(
ids
);
}).
then
(()
=>
{
this
.
getList
();
this
.
msgSuccess
(
"
删除成功
"
);
})
},
/** 导出按钮操作 */
handleExport
()
{
const
queryParams
=
this
.
queryParams
;
this
.
$confirm
(
'
是否确认导出所有规则详情数据项?
'
,
"
警告
"
,
{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
type
:
"
warning
"
}).
then
(
function
()
{
return
exportSuppliesroledetail
(
queryParams
);
}).
then
(
response
=>
{
this
.
download
(
response
.
msg
);
})
}
}
};
</
script
>
ruoyi-ui/src/views/system/suppliesroledetail/index.vue
View file @
acae3d48
...
@@ -105,7 +105,7 @@
...
@@ -105,7 +105,7 @@
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNum"
:limit.sync=
"queryParams.pageSize"
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNum"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
@
pagination=
"getList"
/>
<!-- 添加或修改规则详情对话框 -->
<!-- 添加或修改规则详情对话框 -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"1300px"
append-to-body
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"1300px"
append-to-body
@
close=
"Dialog"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"上级规则"
prop=
"roleId"
>
<el-form-item
label=
"上级规则"
prop=
"roleId"
>
<el-select
v-model=
"form.roleId"
filterable
placeholder=
"请选择关联项"
>
<el-select
v-model=
"form.roleId"
filterable
placeholder=
"请选择关联项"
>
...
@@ -125,7 +125,7 @@
...
@@ -125,7 +125,7 @@
<el-row>
<el-row>
<el-col
:span=
"8"
>
<el-col
:span=
"8"
>
<el-form-item
label=
"转换类型"
prop=
"detailYS"
>
<el-form-item
label=
"转换类型"
prop=
"detailYS"
>
<el-radio-group
v-model=
"form.detailYS"
>
<el-radio-group
v-model=
"form.detailYS"
@
change=
"radiovalue"
>
<el-radio
label=
"1"
>
单元格转换
</el-radio>
<el-radio
label=
"1"
>
单元格转换
</el-radio>
<el-radio
label=
"2"
>
行转换
</el-radio>
<el-radio
label=
"2"
>
行转换
</el-radio>
<el-radio
label=
"3"
>
列转换
</el-radio>
<el-radio
label=
"3"
>
列转换
</el-radio>
...
@@ -134,11 +134,22 @@
...
@@ -134,11 +134,22 @@
</el-col>
</el-col>
<el-col
:span=
"16"
>
<el-col
:span=
"16"
>
<el-form-item
v-if=
"form.detailYS !== null"
>
<el-form-item
v-if=
"form.detailYS !== null"
>
<el-button
type=
"primary"
:disabled=
"isDisable"
@
click=
"addInputs"
>
添加规则
</el-button>
<el-button
type=
"primary"
:disabled=
"isDisable
|| isDelete
"
@
click=
"addInputs"
>
添加规则
</el-button>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<div
v-for=
"index in instea"
:key=
'index'
>
<div
v-for=
"index in instea"
:key=
'index'
>
<span
v-if=
"isTitle && index == 1"
style=
"color:red;"
>
<b>
物料编码
</b>
</span>
<span
v-if=
"isTitle && index == 2"
style=
"color:red;"
>
<b>
部门名称
</b>
</span>
<span
v-if=
"isTitle && index == 3"
style=
"color:red;"
>
<b>
计量单位
</b>
</span>
<span
v-if=
"isTitle && index == 4"
style=
"color:red;"
>
<b>
费用来源
</b>
</span>
<span
v-if=
"isTittle && index == 1"
style=
"color:red;"
>
<b>
数量
</b>
</span>
<span
v-if=
"isTittle && index == 2"
style=
"color:red;"
>
<b>
金额
</b>
</span>
<span
v-if=
"isTittle && index == 1"
style=
"position: absolute; left:632px;top:342px; z-index: 2;color: red;"
>
<b>
数量
</b>
</span>
<span
v-if=
"isTittle && index == 2"
style=
"position: absolute; left:632px;top:444px; z-index: 2;color: red;"
>
<b>
单价
</b>
</span>
<el-form-item
label=
"表头所在行"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-form-item
label=
"表头所在行"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-input-number
size=
"medium"
v-model=
"CleanIng.HeaderRow"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
<el-input-number
size=
"medium"
v-model=
"CleanIng.HeaderRow"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
...
@@ -154,6 +165,8 @@
...
@@ -154,6 +165,8 @@
<el-form-item
label=
"物料编码所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-form-item
label=
"物料编码所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-input-number
size=
"medium"
v-model=
"CleanIng.CodeColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
<el-input-number
size=
"medium"
v-model=
"CleanIng.CodeColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
label=
"导入表行坐标"
prop=
"detailYH"
class=
"form-item-inline"
v-else
>
<el-form-item
label=
"导入表行坐标"
prop=
"detailYH"
class=
"form-item-inline"
v-else
>
<el-input-number
size=
"medium"
v-model=
"detailYH[index - 1]"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
<el-input-number
size=
"medium"
v-model=
"detailYH[index - 1]"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
...
@@ -168,29 +181,30 @@
...
@@ -168,29 +181,30 @@
<el-input-number
size=
"medium"
v-model=
"CleanIng.NumberColumn"
:min=
"1"
<el-input-number
size=
"medium"
v-model=
"CleanIng.NumberColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
金额
所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-form-item
label=
"
单价
所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-input-number
size=
"medium"
v-model=
"CleanIng.MoneyColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
<el-input-number
size=
"medium"
v-model=
"CleanIng.MoneyColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
label=
"日期所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-select
v-model=
"datevalue"
placeholder=
"请选择日期所在列"
@
change=
"dateChange"
label=
"日期所在列"
>
<el-form-item
label=
"日期所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6 "
>
<el-select
v-model=
"datevalue"
placeholder=
"请选择日期所在列"
@
change=
"dateChange"
label=
"日期所在列"
>
<el-option
v-for=
"item in date"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
<el-option
v-for=
"item in date"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-option>
</el-select>
</el-select>
<el-input-number
style=
"margin-left: 5vw;"
v-if=
"datevalue == 1"
size=
"medium"
v-model=
"CleanIng.DateColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
<el-input-number
style=
"margin-left: 5vw;"
v-if=
"datevalue == 1"
size=
"medium"
v-model=
"CleanIng.DateColumn"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
style=
"display: inline-block;"
>
<el-form-item
label=
"计量单位所在列"
prop=
"CleanIng"
class=
"form-item-inline"
v-if=
"options2id === 6"
>
<el-input-number
size=
"medium"
v-model=
"CleanIng.unit"
:min=
"1"
:step=
"1"
>
1
</el-input-number>
</el-form-item>
<br>
<el-form-item
style=
"display: inline-block;"
v-if=
"!isDelete"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
size=
"small"
<el-button
type=
"danger"
icon=
"el-icon-delete"
size=
"small"
@
click=
"removeInputs(index)"
>
删除
</el-button>
@
click=
"removeInputs(index)"
>
删除
</el-button>
</el-form-item>
</el-form-item>
</div>
</div>
<el-form-item
style=
"display: inline-block;"
v-if=
"isDelete"
>
<el-button
type=
"danger"
icon=
"el-icon-delete"
size=
"small"
@
click=
"removeInputs"
>
删除
</el-button>
</el-form-item>
<div
v-if=
"options2id !== 6 && instea >= 1"
style=
"color: red; margin-left: 2.5vw;"
>
<div
v-if=
"options2id !== 6 && instea >= 1"
style=
"color: red; margin-left: 2.5vw;"
>
为防止后面步骤出错,导入表和模板表的行列坐标必须为表头所在单元格的行列
</div>
为防止后面步骤出错,导入表和模板表的行列坐标必须为表头所在单元格的行列
</div>
</el-form>
</el-form>
...
@@ -202,14 +216,14 @@
...
@@ -202,14 +216,14 @@
</div>
</div>
</template>
</template>
<
style
>
<
style
>
.form-item-inline
{
.form-item-inline
{
display
:
inline-block
;
display
:
inline-block
;
margin-right
:
20px
;
margin-right
:
20px
;
}
}
</
style
>
</
style
>
<
script
>
<
script
>
import
{
import
{
listSuppliesroledetail
,
listSuppliesroledetail
,
getSuppliesroledetail
,
getSuppliesroledetail
,
delSuppliesroledetail
,
delSuppliesroledetail
,
...
@@ -221,10 +235,10 @@
...
@@ -221,10 +235,10 @@
toggleDisable
,
toggleDisable
,
saveOperation
,
saveOperation
,
saveSidsta
,
saveSidsta
,
}
from
"
@/api/system/suppliesroledetail
"
;
}
from
"
@/api/system/suppliesroledetail
"
;
import
Editor
from
'
@/components/Editor
'
;
import
Editor
from
'
@/components/Editor
'
;
export
default
{
export
default
{
name
:
"
Suppliesroledetail
"
,
name
:
"
Suppliesroledetail
"
,
components
:
{
components
:
{
Editor
,
Editor
,
...
@@ -238,6 +252,7 @@
...
@@ -238,6 +252,7 @@
value
:
1
,
value
:
1
,
label
:
'
有
'
label
:
'
有
'
}],
}],
ConversionValue
:
''
,
datevalue
:
0
,
datevalue
:
0
,
// 遮罩层
// 遮罩层
loading
:
true
,
loading
:
true
,
...
@@ -246,6 +261,10 @@
...
@@ -246,6 +261,10 @@
// 选中数组
// 选中数组
ids
:
[],
ids
:
[],
name
:
[],
name
:
[],
radiitemValue
:
{
radio
:
''
,
conver
:
''
},
// 非单个禁用
// 非单个禁用
single
:
true
,
single
:
true
,
// 非多个禁用
// 非多个禁用
...
@@ -284,7 +303,11 @@
...
@@ -284,7 +303,11 @@
DepartmentColumn
:
''
,
DepartmentColumn
:
''
,
NumberColumn
:
''
,
NumberColumn
:
''
,
MoneyColumn
:
''
,
MoneyColumn
:
''
,
DateColumn
:
''
DateColumn
:
''
,
unit
:
''
,
expenses
:
''
,
conversion
:
''
,
spare
:
''
},
},
detailMH
:
[],
detailMH
:
[],
detailML
:
[],
detailML
:
[],
...
@@ -309,26 +332,64 @@
...
@@ -309,26 +332,64 @@
};
};
},
},
watch
:
{
watch
:
{
options2id
(
newValue
)
{
open
()
{
if
(
newValue
>=
0
&&
this
.
detailMH
.
length
>=
1
)
{
if
(
this
.
open
===
false
)
{
this
.
instea
=
1
this
.
radiitemValue
.
radio
=
0
this
.
radiitemValue
.
conver
=
0
}
}
}
}
},
},
computed
:
{
computed
:
{
isDisable
()
{
isDisable
()
{
return
this
.
instea
>=
1
&&
this
.
options2id
==
6
;
return
(
this
.
instea
>=
1
&&
this
.
options2id
==
6
)
||
(
this
.
radiitemValue
.
radio
==
2
&&
this
.
radiitemValue
.
conver
==
3
&&
this
.
instea
>=
4
)
},
isDelete
()
{
return
(
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
1
&&
this
.
instea
>=
4
)
||
(
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
2
&&
this
.
instea
>=
2
)
},
},
isTitle
()
{
return
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
1
},
isTittle
()
{
return
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
2
}
},
},
created
()
{
created
()
{
this
.
getList
();
this
.
getList
();
this
.
getnameid
();
this
.
getnameid
();
},
},
methods
:
{
methods
:
{
empty
()
{
this
.
optionid
=
''
this
.
datevalue
=
0
this
.
radiitemValue
.
radio
=
0
this
.
radiitemValue
.
conver
=
0
this
.
detailMH
=
[]
this
.
detailML
=
[]
this
.
detailYH
=
[]
this
.
detailYL
=
[]
},
Dialog
()
{
this
.
empty
()
},
radiovalue
(
value
)
{
this
.
detailMH
=
[]
this
.
detailML
=
[]
this
.
detailYH
=
[]
this
.
detailYL
=
[]
this
.
instea
=
0
this
.
radiitemValue
.
radio
=
Number
(
value
)
},
dateChange
()
{
dateChange
()
{
this
.
CleanIng
.
DateColumn
=
''
this
.
CleanIng
.
DateColumn
=
''
},
},
handleRadioChange
()
{
handleRadioChange
(
value
)
{
this
.
radiitemValue
.
conver
=
value
this
.
options2id
=
this
.
form
.
convertStatus
this
.
options2id
=
this
.
form
.
convertStatus
this
.
detailMH
=
[]
this
.
detailMH
=
[]
this
.
detailML
=
[]
this
.
detailML
=
[]
...
@@ -342,22 +403,67 @@
...
@@ -342,22 +403,67 @@
DepartmentColumn
:
''
,
DepartmentColumn
:
''
,
NumberColumn
:
''
,
NumberColumn
:
''
,
MoneyColumn
:
''
,
MoneyColumn
:
''
,
DateColumn
:
''
DateColumn
:
''
,
unit
:
''
,
expenses
:
''
,
conversion
:
''
,
spare
:
''
}
}
},
},
removeInputs
(
index
)
{
removeInputs
(
index
)
{
if
(
this
.
isDelete
)
{
this
.
instea
=
0
this
.
detailMH
=
[]
this
.
detailML
=
[]
this
.
detailYH
=
[]
this
.
detailYL
=
[]
}
else
{
this
.
detailMH
.
splice
(
index
-
1
,
1
);
this
.
detailMH
.
splice
(
index
-
1
,
1
);
this
.
detailML
.
splice
(
index
-
1
,
1
);
this
.
detailML
.
splice
(
index
-
1
,
1
);
this
.
detailYH
.
splice
(
index
-
1
,
1
);
this
.
detailYH
.
splice
(
index
-
1
,
1
);
this
.
detailYL
.
splice
(
index
-
1
,
1
);
this
.
detailYL
.
splice
(
index
-
1
,
1
);
this
.
instea
=
this
.
instea
-
1
;
this
.
instea
=
this
.
instea
-
1
;
}
},
},
addInputs
()
{
addInputs
()
{
if
((
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
1
)
||
(
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
2
))
{
if
(
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
1
)
{
let
i
=
4
-
this
.
instea
this
.
instea
+=
i
if
(
this
.
detailMH
&&
this
.
detailML
&&
this
.
detailYH
&&
this
.
detailYL
)
{
[
this
.
detailMH
,
this
.
detailML
,
this
.
detailYH
,
this
.
detailYL
].
forEach
(
arr
=>
{
while
(
arr
.
length
<
4
)
arr
.
push
(
1
);
});
}
}
if
(
this
.
radiitemValue
.
radio
==
3
&&
this
.
radiitemValue
.
conver
==
2
)
{
let
i
=
2
-
this
.
instea
this
.
instea
+=
i
if
(
this
.
detailMH
&&
this
.
detailML
&&
this
.
detailYH
&&
this
.
detailYL
)
{
[
this
.
detailMH
,
this
.
detailML
,
this
.
detailYH
,
this
.
detailYL
].
forEach
(
arr
=>
{
while
(
arr
.
length
<
2
)
arr
.
push
(
1
);
});
}
}
}
else
{
this
.
instea
+=
1
;
this
.
instea
+=
1
;
this
.
detailMH
.
push
(
1
)
this
.
detailMH
.
push
(
1
)
this
.
detailML
.
push
(
1
)
this
.
detailML
.
push
(
1
)
this
.
detailYH
.
push
(
1
)
this
.
detailYH
.
push
(
1
)
this
.
detailYL
.
push
(
1
)
this
.
detailYL
.
push
(
1
)
}
},
},
toggleEnable
(
suppliesRoleDetail
)
{
toggleEnable
(
suppliesRoleDetail
)
{
console
.
log
(
'
你点击了【
'
+
suppliesRoleDetail
.
s
+
'
】的开关控件,当前开关值:
'
+
suppliesRoleDetail
.
status
);
console
.
log
(
'
你点击了【
'
+
suppliesRoleDetail
.
s
+
'
】的开关控件,当前开关值:
'
+
suppliesRoleDetail
.
status
);
...
@@ -405,6 +511,7 @@
...
@@ -405,6 +511,7 @@
},
},
// 取消按钮
// 取消按钮
cancel
()
{
cancel
()
{
this
.
open
=
false
;
this
.
open
=
false
;
this
.
reset
();
this
.
reset
();
},
},
...
@@ -464,12 +571,13 @@
...
@@ -464,12 +571,13 @@
const
id
=
row
.
id
||
this
.
ids
const
id
=
row
.
id
||
this
.
ids
getSuppliesroledetail
(
id
).
then
(
response
=>
{
getSuppliesroledetail
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
this
.
form
=
response
.
data
;
this
.
radiitemValue
.
conver
=
this
.
form
.
convertStatus
this
.
radiitemValue
.
radio
=
this
.
form
.
detailYS
this
.
options2id
=
response
.
data
.
convertStatus
this
.
options2id
=
response
.
data
.
convertStatus
const
detailContent
=
response
.
data
.
detailContent
;
const
detailContent
=
response
.
data
.
detailContent
;
const
parse
=
JSON
.
parse
(
detailContent
);
const
parse
=
JSON
.
parse
(
detailContent
);
console
.
log
(
response
.
data
)
this
.
instea
=
parse
.
length
if
(
this
.
options2id
===
6
)
{
if
(
this
.
options2id
===
6
)
{
this
.
instea
=
1
this
.
CleanIng
=
parse
[
0
]
this
.
CleanIng
=
parse
[
0
]
if
(
this
.
CleanIng
.
DateColumn
!==
''
)
{
if
(
this
.
CleanIng
.
DateColumn
!==
''
)
{
this
.
datevalue
=
1
this
.
datevalue
=
1
...
@@ -501,7 +609,7 @@
...
@@ -501,7 +609,7 @@
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
if
(
this
.
form
.
id
!=
null
)
{
if
(
this
.
form
.
id
!=
null
)
{
console
.
log
(
JSON
.
parse
(
this
.
form
.
cleanIng
),
'
2222222222
'
)
console
.
log
(
JSON
.
parse
(
this
.
form
.
cleanIng
),
'
2222222222
'
)
updateSuppliesroledetail
(
this
.
form
).
then
(
response
=>
{
updateSuppliesroledetail
(
this
.
form
).
then
(
response
=>
{
this
.
msgSuccess
(
"
修改成功
"
);
this
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
open
=
false
;
...
@@ -547,5 +655,5 @@
...
@@ -547,5 +655,5 @@
})
})
}
}
}
}
};
};
</
script
>
</
script
>
\ No newline at end of file
ruoyi-ui/vue.config.js
View file @
acae3d48
...
@@ -21,7 +21,6 @@ module.exports = {
...
@@ -21,7 +21,6 @@ module.exports = {
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
outputDir
:
'
dist
'
,
outputDir
:
'
dist
'
,
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
assetsDir
:
'
static
'
,
// 是否开启eslint保存检测,有效值:ture | false | 'error'
// 是否开启eslint保存检测,有效值:ture | false | 'error'
lintOnSave
:
false
,
//process.env.NODE_ENV === 'development'
lintOnSave
:
false
,
//process.env.NODE_ENV === 'development'
// 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
// 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
...
@@ -34,9 +33,9 @@ module.exports = {
...
@@ -34,9 +33,9 @@ module.exports = {
proxy
:
{
proxy
:
{
// detail: https://cli.vuejs.org/config/#devserver-proxy
// detail: https://cli.vuejs.org/config/#devserver-proxy
[
process
.
env
.
VUE_APP_BASE_API
]:
{
[
process
.
env
.
VUE_APP_BASE_API
]:
{
// target: `http://192.168.10.105:5001
`,
target
:
`http://192.168.0.111:8080
`
,
// target: `http://localhost:5001`,
// target: `http://localhost:5001`,
target
:
`http://localhost:8080`
,
//
target: `http://localhost:8080`,
changeOrigin
:
true
,
changeOrigin
:
true
,
pathRewrite
:
{
pathRewrite
:
{
...
...
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