Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
founder_vue
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
founder_vue
Commits
543350c3
Commit
543350c3
authored
Apr 04, 2023
by
liyuhang19990520
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
警犬
parent
977179ae
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1314 additions
and
8 deletions
+1314
-8
dist.zip
+0
-0
src/api/menuDataApi/jobDogManageApi.js
+8
-0
src/router/modules/index.js
+1
-1
src/utils/tableHeaderParams.js
+1
-1
src/views/jobDogManage/components/jobDogManageEdit2.vue
+5
-0
src/views/jobDogManage/components/jobDogManageEdit3.vue
+1292
-0
src/views/jobDogManage/index.vue
+4
-4
src/views/jobDogRefreshment/components/jobDogManageSp.vue
+1
-0
src/views/jobDogRefreshment/index.vue
+2
-2
No files found.
dist.zip
View file @
543350c3
No preview for this file type
src/api/menuDataApi/jobDogManageApi.js
View file @
543350c3
...
...
@@ -36,6 +36,14 @@ export const getJobDogDetail = params =>
export
const
addSp
=
params
=>
postJson
(
`
${
baseUrl
}
/spmanager/addSpByDogTrainingLevelId`
,
params
)
// 审批及提请
export
const
awaitPdWorkExtract
=
params
=>
postJson
(
`
${
baseUrl
}
/refreshment/awaitPdWorkExtract`
,
params
)
export
const
dogAdd
=
params
=>
postJson
(
`
${
baseUrl
}
/refreshment/dogAdd`
,
params
)
// 警犬复训审批查询
...
...
src/router/modules/index.js
View file @
543350c3
...
...
@@ -202,7 +202,7 @@ export default [
{
path
:
'jobDogManageAdd'
,
name
:
'jobDogManageAdd'
,
component
:
()
=>
import
(
'@/views/jobDogManage/components/jobDogManageEdit
2
.vue'
),
component
:
()
=>
import
(
'@/views/jobDogManage/components/jobDogManageEdit
3
.vue'
),
meta
:
{
title
:
'工作犬复训管理-新增'
,
// 编辑新增页面此字段务必设置为true
...
...
src/utils/tableHeaderParams.js
View file @
543350c3
...
...
@@ -251,7 +251,7 @@ export const getGzqfxglAllColumns = () => {
},
{
label
:
"工作犬等级"
,
prop
:
"trainingLevelId"
,
prop
:
"trainingLevelId
Str
"
,
},
{
label
:
"归属单位"
,
...
...
src/views/jobDogManage/components/jobDogManageEdit2.vue
View file @
543350c3
...
...
@@ -940,6 +940,11 @@ export default {
});
}
this
.
updatepdtraininglevelidflag
=
datas
.
updatepdtraininglevelidflag
;
if
(
this
.
updatepdtraininglevelidflag
==
'0'
)
{
if
(
datas
.
ifregularassessment
==
'0'
&&
datas
.
pdtraininglevelid
)
{
this
.
gzqdjOptions
=
this
.
gzqdjOptions
.
filter
(
e
=>
parseInt
(
e
.
id
)
<=
parseInt
(
datas
.
pdtraininglevelid
));
}
}
this
.
detailInfo
=
datas
;
this
.
loading
=
false
;
return
;
...
...
src/views/jobDogManage/components/jobDogManageEdit3.vue
0 → 100644
View file @
543350c3
<
template
>
<div
class=
"detailContentClass"
v-loading=
"loading"
>
<div
class=
"contents"
>
<el-form
:model=
"detailInfo"
ref=
"detailInfoRef"
:rules=
"rules"
>
<div
class=
"titles"
style=
"width: 90px"
>
工作犬基础信息
</div>
<div
class=
"divBoxClass"
>
<el-form-item
label=
"犬名"
class=
"elItemClass"
prop=
"name"
>
<el-input
disabled
v-model
.
trim=
"detailInfo.name"
:clearable=
"true"
placeholder=
"请输入犬名"
></el-input>
</el-form-item>
<el-form-item
label=
"芯片号"
class=
"elItemClass jssfzhClass"
prop=
"chipCode"
>
<el-input
v-model
.
trim=
"detailInfo.chipCode"
:clearable=
"true"
class=
"itemSfzh"
placeholder=
"请输入芯片号"
></el-input>
<el-button
type=
"primary"
size=
"small"
style=
"height: 40px; margin-right: 0 !important"
@
click=
"handleTiQu('click')"
>
提取
</el-button
>
</el-form-item>
<el-form-item
label=
"性别"
class=
"elItemClass3"
prop=
"gender"
>
<el-select
disabled
clearable
placeholder=
"请选择性别"
v-model=
"detailInfo.gender"
>
<el-option
v-for=
"(item, index) in genderOptions"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"出生日期"
class=
"elItemClass elDateClass mr4"
prop=
"birthDate"
>
<el-date-picker
disabled
v-model=
"detailInfo.birthDate"
prefix-icon=
"el-icon-date"
type=
"datetime"
value-format=
"yyyy-MM-dd HH:mm:ss"
placeholder=
"请选择出生日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"品种"
class=
"elItemClass"
prop=
"speciesId"
>
<el-select
disabled
clearable
placeholder=
"请选择品种"
v-model=
"detailInfo.speciesId"
>
<el-option
v-for=
"(item, index) in jyjqOptions"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"犬只来源"
class=
"elItemClass"
prop=
"dogSource"
>
<el-select
disabled
clearable
placeholder=
"请选择使用类别"
v-model=
"detailInfo.dogSource"
>
<el-option
label=
"部属基地"
value=
"4"
></el-option>
<el-option
label=
"省级基地"
value=
"5"
></el-option>
<el-option
label=
"民间"
value=
"6"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"DNA编号"
class=
"elItemClass"
>
<el-input
disabled
v-model
.
trim=
"detailInfo.dna"
:clearable=
"true"
placeholder=
"请输入DNA编号"
></el-input>
</el-form-item>
<el-form-item
:label=
"'警犬照片' + `($
{fileList2.length})`"
class="elItemClass elDateClass photoBox"
prop="file2"
>
<el-carousel
trigger=
"click"
:autoplay=
"false"
indicator-position=
"none"
v-if=
"fileList2.length > 0"
@
change=
"photoChange"
>
<el-carousel-item
v-for=
"item in fileList2"
:key=
"item.uid"
>
<div
class=
"imageBox"
>
<!--
<p
class=
"imageName"
:title=
"item.name"
>
烦烦烦方法
</p>
-->
<el-image
:src=
"item.url"
></el-image>
<p>
<!--
<i
class=
"el-icon-delete"
@
click=
"delPhoto(item)"
></i>
-->
<i
slot=
"default"
class=
"el-icon-zoom-in"
@
click=
"fdPhoto(item)"
></i>
</p>
</div>
</el-carousel-item>
</el-carousel>
<p
class=
"imageName"
v-if=
"fileList2.length > 0"
:title=
"
fileList2[phIndex] ? fileList2[phIndex].name : fileList2[0].name
"
>
{{
fileList2
[
phIndex
]
?
fileList2
[
phIndex
].
name
:
fileList2
[
0
].
name
}}
</p>
<el-upload
disabled
class=
"photo"
action=
"#"
list-type=
"picture-card"
multiple
accept=
"image/jpeg,image/jpg,image/png"
:on-change=
"fileChange2"
:file-list=
"fileList2"
:auto-upload=
"false"
>
<i
slot=
"default"
class=
"el-icon-plus"
></i>
</el-upload>
</el-form-item>
</div>
<div
class=
"hengLine"
></div>
<div
class=
"titles"
style=
"width: 90px"
>
工作犬等级信息
</div>
<div
class=
"divBoxClass"
>
<el-form-item
label=
"工作犬等级"
class=
"elItemClass"
prop=
"trainingLevelId"
>
<el-select
disabled
clearable
placeholder=
"请选择工作犬等级"
v-model=
"detailInfo.trainingLevelId"
>
<el-option
v-for=
"(item, index) in gzqdjOptions"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"评定日期"
class=
"elItemClass elDateClass"
prop=
"pdrq"
>
<el-date-picker
disabled
v-model=
"detailInfo.pdrq"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"请选择评定日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
class=
"elItemClass sxjqClass"
v-for=
"(item, index) in workingDogClassificationId"
:key=
"index"
>
<template
slot=
"label"
>
<span
class=
"labelNameClass"
>
专业方向
</span>
<span
class=
"yuandianClass"
></span>
<span
class=
"numClass"
>
{{
index
+
1
}}
</span>
</
template
>
<el-input
disabled
v-model
.
trim=
"item.fenshu"
placeholder=
"分数"
:clearable=
"true"
></el-input>
</el-form-item>
<el-form-item
:label=
"'其他材料' + `(${fileList.length})`"
class=
"elItemClass2 elDateClass"
prop=
"file1"
>
<el-upload
disabled
action=
"#"
list-type=
"picture-card"
multiple
:on-change=
"fileChange"
:file-list=
"fileList"
:auto-upload=
"false"
>
<i
slot=
"default"
class=
"el-icon-plus"
></i>
<div
slot=
"file"
slot-scope=
"{ file }"
>
<div
class=
"photoList"
>
<p
:title=
"file.name"
>
{{ file.name }}
</p>
<img
width=
"146px"
height=
"146px"
:src=
"file.url2"
alt=
""
/>
<span
class=
"el-upload-list__item-actions"
>
<span
v-if=
"
file.name.indexOf('png') >= 0 ||
file.name.indexOf('jpg') >= 0 ||
file.name.indexOf('jpeg') >= 0 ||
file.name.indexOf('pdf') >= 0
"
class=
"el-upload-list__item-preview"
@
click=
"handlePictureCardPreview(file)"
>
<i
class=
"el-icon-zoom-in"
></i>
</span>
<span
v-if=
"!disabled"
class=
"el-upload-list__item-delete"
@
click=
"handleDownload(file)"
>
<i
class=
"el-icon-download"
></i>
</span>
<!-- <span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleRemove(file)"
>
<i class="el-icon-delete"></i>
</span> -->
</span>
</div>
</div>
</el-upload>
</el-form-item>
</div>
<div
class=
"hengLine"
></div>
<div
class=
"titles"
style=
"width: 90px"
>
警犬技术人员信息
</div>
<div
class=
"divBoxClass"
>
<el-form-item
label=
"身份证号码"
class=
"elItemClass jssfzhClass"
prop=
"jsrysfz"
>
<el-input
disabled
v-model
.
trim=
"detailInfo.jsrysfz"
:clearable=
"true"
placeholder=
"请输入身份证号码"
class=
"itemSfzh"
></el-input>
</el-form-item>
<el-form-item
label=
"姓名"
class=
"elItemClass"
prop=
"personName"
>
<el-input
v-model
.
trim=
"detailInfo.jsrymc"
:disabled=
"true"
placeholder=
"输入身份证号提取名称"
></el-input>
</el-form-item>
<el-form-item
label=
"归属单位"
class=
"elItemClass"
prop=
"gsdwGajgjgdm"
>
<el-input
v-model
.
trim=
"detailInfo.trainingUnitName"
:disabled=
"true"
placeholder=
"输入身份证号提取归属单位"
></el-input>
</el-form-item>
<el-form-item
label=
"归属警种"
class=
"elItemClass"
prop=
"policeCategory"
>
<el-select
clearable
disabled
placeholder=
"请选择归属警种"
v-model=
"detailInfo.policeCategory"
>
<el-option
v-for=
"(item, index) in gsjzOptions"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
</div>
<div
class=
"hengLine"
></div>
<div
class=
"titles"
style=
"width: 182px"
>
警犬训练考核
</div>
<div
class=
"divBoxClass"
>
<el-form-item
label=
"评定单位"
class=
"elItemClass"
prop=
"checkUnitName"
>
<lazy-select-tree-dialog
flagBiaoZhi=
"allUnit"
:sendId=
"detailInfo.checkUnitName"
:formData=
"detailInfo"
:currentItem=
"unitInfo"
@
clearSelectData=
"clearSelectData"
/>
</el-form-item>
<el-form-item
label=
"主考人"
class=
"elItemClass"
prop=
"checkStaff"
>
<el-input
v-model
.
trim=
"detailInfo.checkStaff"
:clearable=
"true"
placeholder=
"请输入主考人"
></el-input>
</el-form-item>
<el-form-item
class=
"elItemClass sxjqClass"
v-for=
"(item, index) in kaoHeLists"
:key=
"index"
:prop=
"'propKaoHe' + index"
>
<
template
slot=
"label"
>
<span
class=
"labelNameClass"
>
评定科目
</span>
<span
class=
"yuandianClass"
></span>
<span
class=
"numClass"
>
{{
index
+
1
}}
</span>
</
template
>
<el-select
clearable
placeholder=
"评定科目"
class=
"itemSxjqClass"
v-model=
"item.zhuanye"
>
<el-option
v-for=
"(item, index) in zyfxOptions"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
>
</el-option>
</el-select>
<el-input
v-model
.
trim=
"item.fenshu"
placeholder=
"分数"
:clearable=
"true"
class=
"itemJqxphClass"
></el-input>
<div
class=
"conBtnClass"
title=
"增加评定科目"
v-if=
"index === 0"
@
click=
"addKaoHe"
>
+
</div>
<div
class=
"conBtnClass"
title=
"删除评定科目"
v-if=
"index > 0"
@
click=
"removeKaoHe(index)"
>
-
</div>
</el-form-item>
<el-form-item
label=
"评定日期"
class=
"elItemClass elDateClass"
prop=
"checkDate"
>
<el-date-picker
v-model=
"detailInfo.checkDate"
type=
"date"
value-format=
"yyyy-MM-dd"
align=
"right"
unlink-panels
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"评定等级"
class=
"elItemClass elDateClass"
prop=
"pdtraininglevelid"
>
<el-select
clearable
placeholder=
"请选择评定等级"
v-model=
"detailInfo.pdtraininglevelid"
>
<el-option
v-for=
"(item, index) in gzqdjOptions"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
</div>
<div
class=
"elBtns"
>
<el-button
size=
"small"
class=
"btnStylePub"
@
click=
"goBack"
>
返回
</el-button
>
<el-button
type=
"warning"
size=
"small"
class=
"btnStylePub"
@
click=
"saveData(true)"
v-if=
"
userInfoJson.grade != 'B' &&
detailInfo.spstatus != '01' &&
detailInfo.spstatus != '02'
"
>
提请审批
</el-button
>
<el-button
type=
"primary"
size=
"small"
style=
"margin-right: 0 !important"
class=
"btnStylePub"
@
click=
"saveData(false)"
>
保存
</el-button
>
</div>
</el-form>
</div>
<el-image
style=
"width: 0px; height: 0px; position: absolute"
src=
"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
:preview-src-list=
"[dialogImageUrl]"
ref=
"elImage"
>
</el-image>
</div>
</template>
<
script
>
import
{
awaitPdWorkExtract
,
addJobDog
,
dogAdd
,
editJobDog
,
getJobDogDetail
,
addSp
,
}
from
"@/api/menuDataApi/jobDogManageApi.js"
;
import
{
fileUrlDetail
,
deleteFileByXxzjbh
,
}
from
"@/api/menuDataApi/poDogInfoManageApi.js"
;
import
{
getJsonDataApi
}
from
"@/utils/getJsonData.js"
;
import
moment
from
"moment"
;
import
LazySelectTreeDialog
from
"@c/lazy_treeCode_components.vue"
;
export
default
{
name
:
"jobDogManageEdit"
,
components
:
{
LazySelectTreeDialog
,
},
data
()
{
return
{
dogId
:
""
,
updatepdtraininglevelidflag
:
null
,
disabled
:
false
,
dialogImageUrl
:
""
,
phIndex
:
0
,
gsjzOptions
:
[],
fileList
:
[],
jyjqOptions
:
[],
genderOptions
:
[],
fileList2
:
[],
loading
:
false
,
routeName
:
""
,
detailInfo
:
{
chipCode
:
""
,
name
:
""
,
trainingLevelId
:
""
,
trainingUnit
:
""
,
checkUnitName
:
""
,
unitCodeName
:
""
,
checkStaff
:
""
,
refreshmentKssj
:
""
,
refreshmentJssj
:
""
,
dateArr
:
[],
trainCount
:
""
,
remark
:
""
,
xxdjryXm
:
""
,
xxdjryGmsfhm
:
""
,
xxdjdwGajgmc
:
""
,
xxdjdwGajgjgdm
:
""
,
djsj
:
""
,
},
workingDogClassificationId
:
[],
kaoHeLists
:
[
{
zhuanye
:
""
,
fenshu
:
""
,
},
],
rules
:
{
trainingUnit
:
[
{
required
:
true
,
message
:
"输入芯片号提取归属单位"
,
trigger
:
"blur"
,
},
],
checkUnitName
:
[
{
required
:
true
,
message
:
"请选择评定单位"
,
trigger
:
"change"
,
},
],
checkStaff
:
[
{
required
:
true
,
message
:
"请输入主考人"
,
trigger
:
"blur"
},
],
chipCode
:
[
{
required
:
true
,
message
:
"请输入芯片号"
,
trigger
:
"blur"
},
],
checkDate
:
[
{
required
:
true
,
message
:
"请选择评定日期"
,
trigger
:
"blur"
},
],
pdtraininglevelid
:
[
{
required
:
true
,
message
:
"请选择评定等级"
,
trigger
:
"blur"
},
],
dateArr
:
[
{
type
:
"array"
,
required
:
true
,
message
:
"请选择培训日期"
,
trigger
:
"change"
,
},
],
trainCount
:
[
{
required
:
true
,
message
:
"请选择培训次数"
,
trigger
:
"change"
,
},
],
xxdjryXm
:
[
{
required
:
true
,
message
:
"采集人姓名必填"
,
trigger
:
"blur"
},
],
xxdjryGmsfhm
:
[
{
required
:
true
,
message
:
"采集人身份证号码必填"
,
trigger
:
"blur"
},
],
xxdjdwGajgmc
:
[
{
required
:
true
,
message
:
"采集人单位名称必填"
,
trigger
:
"blur"
},
],
xxdjdwGajgjgdm
:
[
{
required
:
true
,
message
:
"采集人单位代码必填"
,
trigger
:
"blur"
},
],
djsj
:
[{
required
:
true
,
message
:
"采集时间必填"
,
trigger
:
"blur"
}],
},
unitInfo
:
{
name
:
"评定单位:"
,
id
:
"checkUnitName"
,
type
:
"lazyCodeTreeDialog"
,
value
:
""
,
prop
:
"checkEmpty"
,
placeholder
:
"请选择评定单位"
,
col
:
"2"
,
disabled
:
false
,
codeTree
:
"CODE_QGUNIT"
,
codeOptions
:
[],
},
userInfoJson
:
{},
gzqdjOptions
:
[],
trainCountOption
:
[],
zyfxOptions
:
[],
};
},
async
mounted
()
{
let
userInfo
=
window
.
sessionStorage
.
getItem
(
"userInfo"
);
if
(
userInfo
)
this
.
userInfoJson
=
JSON
.
parse
(
userInfo
);
// 判断是新增/编辑页面
this
.
routeName
=
this
.
$route
.
name
||
""
;
if
(
this
.
routeName
===
"jobDogManageEdit"
)
{
// 编辑
let
xxzjbh
=
this
.
$route
.
query
.
xxzjbh
||
""
;
this
.
getDetail
(
xxzjbh
);
}
else
{
// 新增
this
.
detailInfo
.
xxdjryXm
=
this
.
userInfoJson
.
userName
||
""
;
this
.
detailInfo
.
xxdjryGmsfhm
=
this
.
userInfoJson
.
identitycard
||
""
;
this
.
detailInfo
.
xxdjdwGajgmc
=
this
.
userInfoJson
.
unitname
||
""
;
this
.
detailInfo
.
xxdjdwGajgjgdm
=
this
.
userInfoJson
.
unitcode
||
""
;
this
.
detailInfo
.
djsj
=
moment
().
format
(
"YYYY-MM-DD HH:mm:ss"
);
}
this
.
genderOptions
=
await
getJsonDataApi
(
"CODE_DOG_GENDER"
);
this
.
gzqdjOptions
=
await
getJsonDataApi
(
"CODE_GZQDJ"
);
this
.
trainCountOption
=
await
getJsonDataApi
(
"CODE_TRAINCOUNT"
);
this
.
jyjqOptions
=
await
getJsonDataApi
(
"CODE_SPECIES"
);
this
.
zyfxOptions
=
await
getJsonDataApi
(
"CODE_BASEDATA"
);
this
.
gsjzOptions
=
await
getJsonDataApi
(
"CODE_POLICECATEGORY"
);
},
methods
:
{
tqsp
()
{
let
self
=
this
;
this
.
$refs
.
detailInfoRef
.
validate
((
result
)
=>
{
if
(
result
)
{
var
spType
;
if
(
this
.
userInfoJson
)
{
if
(
this
.
userInfoJson
.
grade
==
"S"
)
{
spType
=
"03"
;
}
else
if
(
this
.
userInfoJson
.
grade
==
"D"
)
{
spType
=
"02"
;
}
else
if
(
this
.
userInfoJson
.
grade
==
"X"
)
{
spType
=
"01"
;
}
}
addSp
({
orderXxzjbh
:
this
.
detailInfo
.
orderXxzjbh
,
fxDogXxzjbh
:
this
.
$route
.
query
.
xxzjbh
,
glxxzjbhSource
:
"01"
,
spType
:
"01"
,
// spType: spType,
}).
then
((
res
)
=>
{
if
(
res
.
success
)
{
self
.
$alert
(
"提请审核通过"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
callback
:
(
action
)
=>
{
window
.
location
.
reload
();
window
.
open
(
"about:blank"
,
"_top"
).
close
();
self
.
$router
.
go
(
-
1
);
//返回上一层
},
});
}
});
}
});
},
handlePictureCardPreview
(
file
)
{
if
(
file
.
name
.
indexOf
(
"png"
)
>=
0
||
file
.
name
.
indexOf
(
"jpg"
)
>=
0
||
file
.
name
.
indexOf
(
"jpeg"
)
>=
0
)
{
let
url
=
file
.
url
;
this
.
dialogImageUrl
=
url
;
this
.
$refs
.
elImage
.
clickHandler
();
}
else
{
if
(
file
.
xxzjbh
)
{
fileUrlDetail
({
xxzjbh
:
file
.
xxzjbh
}).
then
((
res
)
=>
{
let
blob
=
new
Blob
([
res
],
{
type
:
"application/pdf"
,
});
const
pdfSrc
=
window
.
URL
.
createObjectURL
(
blob
);
window
.
open
(
pdfSrc
,
"_blank"
);
});
}
else
{
window
.
open
(
file
.
url
,
"_blank"
);
}
}
},
saveAs
(
blob
,
filename
)
{
if
(
window
.
navigator
.
msSaveOrOpenBlob
)
{
navigator
.
msSaveBlob
(
blob
,
filename
);
}
else
{
const
anchor
=
document
.
createElement
(
"a"
);
const
body
=
document
.
querySelector
(
"body"
);
anchor
.
href
=
window
.
URL
.
createObjectURL
(
blob
);
anchor
.
download
=
filename
;
anchor
.
style
.
display
=
"none"
;
body
.
appendChild
(
anchor
);
anchor
.
click
();
body
.
removeChild
(
anchor
);
window
.
URL
.
revokeObjectURL
(
anchor
.
href
);
}
},
handleDownload
(
file
)
{
if
(
file
.
url
)
{
const
xhr
=
new
XMLHttpRequest
();
xhr
.
open
(
"GET"
,
file
.
url
,
true
);
xhr
.
responseType
=
"blob"
;
xhr
.
onload
=
()
=>
{
if
(
xhr
.
status
===
200
)
{
this
.
saveAs
(
xhr
.
response
,
file
.
name
);
}
};
xhr
.
send
();
}
else
if
(
file
.
xxzjbh
)
{
fileUrlDetail
({
xxzjbh
:
file
.
xxzjbh
}).
then
((
res
)
=>
{
let
blob
=
new
Blob
([
res
],
{
type
:
"application/vnd.ms-excel"
,
});
// 组装a标签
let
elink
=
document
.
createElement
(
"a"
);
// 设置下载文件名
elink
.
download
=
file
.
name
;
elink
.
style
.
display
=
"none"
;
elink
.
href
=
URL
.
createObjectURL
(
blob
);
document
.
body
.
appendChild
(
elink
);
elink
.
click
();
document
.
body
.
removeChild
(
elink
);
});
}
},
fdPhoto
(
file
)
{
let
url
=
file
.
url
;
this
.
dialogImageUrl
=
url
;
this
.
$refs
.
elImage
.
clickHandler
();
},
photoChange
(
val
)
{
this
.
phIndex
=
val
;
},
resetPerNameAndUnitName
()
{
this
.
detailInfo
.
personName
=
""
;
this
.
detailInfo
.
gsdwGajgjgdm
=
""
;
},
fileChange
(
file
,
fileList
)
{
let
h
=
[
"png"
,
"jpg"
,
"jpeg"
];
this
.
fileList
=
fileList
.
map
((
e
)
=>
{
let
index
=
h
.
findIndex
((
j
)
=>
e
.
name
.
indexOf
(
j
)
>=
0
);
if
(
index
<
0
)
{
e
.
url2
=
require
(
"@/assets/img/excel.png"
);
}
else
{
e
.
url2
=
e
.
url
;
}
return
e
;
});
},
fileChange2
(
file
,
fileList
)
{
this
.
fileList2
=
fileList
;
this
.
$set
(
this
.
detailInfo
,
"file2"
,
fileList
);
},
resetRelationField
()
{
this
.
detailInfo
.
name
=
""
;
this
.
detailInfo
.
trainingLevelId
=
""
;
this
.
detailInfo
.
trainingUnit
=
""
;
},
goBack
()
{
this
.
$router
.
push
({
name
:
"jobDogManage"
});
},
clearSelectData
()
{
this
.
detailInfo
.
checkUnitName
=
""
;
this
.
detailInfo
.
unitCodeName
=
""
;
},
handleTiQu
(
flag
)
{
this
.
$refs
.
detailInfoRef
.
validateField
(
"chipCode"
,
(
result
)
=>
{
if
(
!
result
)
{
let
params
=
{
chipCode
:
this
.
detailInfo
.
chipCode
,
};
awaitPdWorkExtract
(
params
)
.
then
((
res
)
=>
{
if
(
res
.
code
===
200
&&
res
.
success
&&
res
.
data
&&
res
.
data
.
data
)
{
let
datas
=
res
.
data
.
data
;
if
(
datas
.
trainingUnitName
)
datas
.
trainingUnit
=
datas
.
trainingUnitName
;
if
(
datas
.
checkUnit
)
{
datas
.
unitCodeName
=
datas
.
checkUnit
;
}
else
{
datas
.
unitCodeName
=
""
;
}
// 处理培训日期
datas
.
dateArr
=
[];
if
(
datas
.
refreshmentKssj
&&
datas
.
refreshmentJssj
)
{
datas
.
dateArr
=
[
datas
.
refreshmentKssj
,
datas
.
refreshmentJssj
,
];
}
// 处理专业方向和分数
let
workArr
=
[];
let
scoreArr
=
[];
let
workDog
=
[];
if
(
datas
.
trainSubject
)
{
workArr
=
datas
.
trainSubject
.
split
(
"#"
)
||
[];
}
if
(
datas
.
trainSubjectGrade
)
{
scoreArr
=
datas
.
trainSubjectGrade
.
split
(
"#"
)
||
[];
}
if
(
datas
.
tbStDogFile2
)
{
let
arr
=
datas
.
tbStDogFile2
.
map
((
e
)
=>
{
e
.
name
=
e
.
filename
;
e
.
url
=
e
.
zpnr
;
return
e
;
});
this
.
$set
(
this
.
detailInfo
,
"file2"
,
arr
);
this
.
fileList2
=
arr
;
}
if
(
datas
.
tbStDogFile1
)
{
let
arr
=
datas
.
tbStDogFile1
.
map
((
e
)
=>
{
e
.
name
=
e
.
filename
;
if
(
e
.
zpnr
)
{
e
.
url
=
e
.
zpnr
;
e
.
url2
=
e
.
zpnr
;
}
else
{
e
.
url2
=
require
(
"@/assets/img/excel.png"
);
}
return
e
;
});
this
.
$set
(
this
.
detailInfo
,
"file1"
,
arr
);
this
.
fileList
=
arr
;
}
if
(
datas
.
workingDogClassificationId
)
{
workDog
=
datas
.
workingDogClassificationId
.
split
(
"#"
)
||
[];
if
(
workDog
&&
workDog
.
length
>
0
)
workDog
.
pop
();
workDog
.
forEach
((
workItem
,
workIndex
)
=>
{
this
.
workingDogClassificationId
.
push
({
zhuanye
:
""
,
fenshu
:
""
,
});
this
.
workingDogClassificationId
[
workIndex
].
fenshu
=
workItem
;
});
}
if
(
workArr
&&
scoreArr
&&
workArr
.
length
&&
scoreArr
.
length
&&
workArr
.
length
===
scoreArr
.
length
)
{
for
(
let
i
=
0
;
i
<
workArr
.
length
-
1
;
i
++
)
{
this
.
kaoHeLists
.
push
({
zhuanye
:
""
,
fenshu
:
""
,
});
}
workArr
.
forEach
((
workItem
,
workIndex
)
=>
{
this
.
kaoHeLists
[
workIndex
].
zhuanye
=
workItem
;
});
scoreArr
.
forEach
((
scoreItem
,
scoreIndex
)
=>
{
this
.
kaoHeLists
[
scoreIndex
].
fenshu
=
scoreItem
;
});
}
this
.
updatepdtraininglevelidflag
=
datas
.
updatepdtraininglevelidflag
;
if
(
datas
.
trainingLevelId
)
{
this
.
gzqdjOptions
=
this
.
gzqdjOptions
.
filter
(
(
e
)
=>
parseInt
(
e
.
id
)
<=
parseInt
(
datas
.
trainingLevelId
)
);
}
this
.
detailInfo
=
datas
;
this
.
dogId
=
datas
.
dogId
;
this
.
loading
=
false
;
if
(
flag
===
"click"
)
{
this
.
$message
({
message
:
"提取成功"
,
type
:
"success"
,
duration
:
3000
,
});
}
return
;
}
if
(
flag
===
"click"
)
{
this
.
detailInfo
=
{};
this
.
loading
=
false
;
this
.
$message
({
message
:
res
.
message
,
type
:
"warning"
,
duration
:
3000
,
});
}
this
.
resetRelationField
();
})
.
catch
(()
=>
{
if
(
flag
===
"click"
)
{
this
.
$message
({
message
:
"提取失败"
,
type
:
"warning"
,
duration
:
3000
,
});
}
this
.
resetRelationField
();
});
}
});
},
addKaoHe
()
{
this
.
kaoHeLists
.
push
({
zhuanye
:
""
,
fenshu
:
""
,
});
},
removeKaoHe
(
index
)
{
this
.
kaoHeLists
.
splice
(
index
,
1
);
},
updateKaoHeRules
(
val
)
{
if
(
val
?.
length
)
{
val
.
forEach
((
item
,
index
)
=>
{
this
.
rules
[
`propKaoHe
${
index
}
`
]
=
[
{
required
:
true
,
validator
:
(
rule
,
value
,
callback
)
=>
{
let
myreg
=
/^
([
0-9
]{1,2}
$
)
|
(
^
[
0-9
]{1,2}\.[
0-9
]{1,2}
$
)
|100$/
;
let
zhuanye
=
item
.
zhuanye
||
""
;
let
fenshu
=
item
.
fenshu
||
""
;
if
(
!
zhuanye
)
{
callback
(
new
Error
(
`请选择评定科目`
));
}
else
if
(
!
fenshu
)
{
callback
(
new
Error
(
`请输入分数`
));
}
else
if
(
!
myreg
.
test
(
fenshu
))
{
callback
(
new
Error
(
`分数输入有误,0-100之间且小数位最多2位`
));
}
else
{
callback
();
}
},
trigger
:
"change"
,
},
];
});
}
},
getDetail
(
xxzjbh
)
{
let
params
=
{
xxzjbh
,
};
this
.
loading
=
true
;
getJobDogDetail
(
params
)
.
then
((
res
)
=>
{
if
(
res
.
code
===
200
&&
res
.
success
&&
res
.
data
&&
res
.
data
.
data
)
{
let
datas
=
res
.
data
.
data
;
if
(
datas
.
trainingUnitName
)
datas
.
trainingUnit
=
datas
.
trainingUnitName
;
if
(
datas
.
checkUnit
)
{
datas
.
unitCodeName
=
datas
.
checkUnit
;
}
else
{
datas
.
unitCodeName
=
""
;
}
// 处理培训日期
datas
.
dateArr
=
[];
if
(
datas
.
refreshmentKssj
&&
datas
.
refreshmentJssj
)
{
datas
.
dateArr
=
[
datas
.
refreshmentKssj
,
datas
.
refreshmentJssj
];
}
// 处理专业方向和分数
let
workArr
=
[];
let
scoreArr
=
[];
let
workDog
=
[];
if
(
datas
.
trainSubject
)
{
workArr
=
datas
.
trainSubject
.
split
(
"#"
)
||
[];
}
if
(
datas
.
trainSubjectGrade
)
{
scoreArr
=
datas
.
trainSubjectGrade
.
split
(
"#"
)
||
[];
}
if
(
datas
.
tbStDogFile2
)
{
// fileUrlDetail({xxzjbh: '82454b67bb984470afcdb5bd547280e0'}).then(res => {
// console.log(222,res)
// })
let
arr
=
datas
.
tbStDogFile2
.
map
((
e
)
=>
{
e
.
name
=
e
.
filename
;
e
.
url
=
e
.
zpnr
;
return
e
;
});
this
.
$set
(
this
.
detailInfo
,
"file2"
,
arr
);
this
.
fileList2
=
arr
;
}
if
(
datas
.
tbStDogFile1
)
{
let
arr
=
datas
.
tbStDogFile1
.
map
((
e
)
=>
{
e
.
name
=
e
.
filename
;
if
(
e
.
zpnr
)
{
e
.
url
=
e
.
zpnr
;
e
.
url2
=
e
.
zpnr
;
}
else
{
e
.
url2
=
require
(
"@/assets/img/excel.png"
);
}
return
e
;
});
this
.
$set
(
this
.
detailInfo
,
"file1"
,
arr
);
this
.
fileList
=
arr
;
}
if
(
datas
.
workingDogClassificationId
)
{
workDog
=
datas
.
workingDogClassificationId
.
split
(
"#"
)
||
[];
if
(
workDog
&&
workDog
.
length
>
0
)
workDog
.
pop
();
workDog
.
forEach
((
workItem
,
workIndex
)
=>
{
this
.
workingDogClassificationId
.
push
({
zhuanye
:
""
,
fenshu
:
""
,
});
this
.
workingDogClassificationId
[
workIndex
].
fenshu
=
workItem
;
});
}
if
(
workArr
&&
scoreArr
&&
workArr
.
length
&&
scoreArr
.
length
&&
workArr
.
length
===
scoreArr
.
length
)
{
for
(
let
i
=
0
;
i
<
workArr
.
length
-
1
;
i
++
)
{
this
.
kaoHeLists
.
push
({
zhuanye
:
""
,
fenshu
:
""
,
});
}
workArr
.
forEach
((
workItem
,
workIndex
)
=>
{
this
.
kaoHeLists
[
workIndex
].
zhuanye
=
workItem
;
});
scoreArr
.
forEach
((
scoreItem
,
scoreIndex
)
=>
{
this
.
kaoHeLists
[
scoreIndex
].
fenshu
=
scoreItem
;
});
}
this
.
updatepdtraininglevelidflag
=
datas
.
updatepdtraininglevelidflag
;
this
.
detailInfo
=
datas
;
this
.
loading
=
false
;
return
;
}
this
.
detailInfo
=
{};
this
.
loading
=
false
;
this
.
$message
({
message
:
"查询失败,请稍后再试"
,
type
:
"warning"
});
})
.
catch
((
error
)
=>
{
this
.
detailInfo
=
{};
this
.
loading
=
false
;
});
},
saveData
(
boo
)
{
this
.
$refs
.
detailInfoRef
.
validate
((
result
)
=>
{
if
(
result
)
{
// 处理专业方向和分数
let
trainSubject
=
""
;
let
trainSubjectGrade
=
""
;
this
.
kaoHeLists
.
forEach
((
item
)
=>
{
if
(
item
.
zhuanye
)
{
trainSubject
=
trainSubject
+
item
.
zhuanye
+
"#"
;
}
if
(
item
.
fenshu
)
{
trainSubjectGrade
=
trainSubjectGrade
+
item
.
fenshu
+
"#"
;
}
});
if
(
trainSubject
)
{
trainSubject
=
trainSubject
.
substr
(
0
,
trainSubject
.
length
-
1
);
}
if
(
trainSubjectGrade
)
{
trainSubjectGrade
=
trainSubjectGrade
.
substr
(
0
,
trainSubjectGrade
.
length
-
1
);
}
let
params
=
{
chipCode
:
this
.
detailInfo
.
chipCode
,
checkUnit
:
this
.
detailInfo
.
unitCodeName
,
checkStaff
:
this
.
detailInfo
.
checkStaff
,
refreshmentKssj
:
this
.
detailInfo
.
dateArr
[
0
],
refreshmentJssj
:
this
.
detailInfo
.
dateArr
[
1
],
trainCount
:
this
.
detailInfo
.
trainCount
,
trainSubject
,
trainSubjectGrade
,
remark
:
this
.
detailInfo
.
remark
,
xxdjryXm
:
this
.
detailInfo
.
xxdjryXm
,
xxdjryGmsfhm
:
this
.
detailInfo
.
xxdjryGmsfhm
,
xxdjdwGajgmc
:
this
.
detailInfo
.
xxdjdwGajgmc
,
xxdjdwGajgjgdm
:
this
.
detailInfo
.
xxdjdwGajgjgdm
,
checkDate
:
this
.
detailInfo
.
checkDate
,
pdtraininglevelid
:
this
.
detailInfo
.
pdtraininglevelid
,
djsj
:
this
.
detailInfo
.
djsj
,
};
if
(
this
.
routeName
===
"jobDogManageEdit"
)
{
this
.
editParams
(
params
,
boo
);
}
else
{
this
.
addParams
(
params
);
}
}
});
},
editParams
(
params
,
boo
)
{
let
self
=
this
;
let
obj
=
{
xxzjbh
:
this
.
$route
.
query
.
xxzjbh
,
checkUnit
:
params
.
checkUnit
,
//评定单位
checkStaff
:
params
.
checkStaff
,
//考核人员
checkDate
:
params
.
checkDate
,
//评定日期
pdtraininglevelid
:
params
.
pdtraininglevelid
,
//评定日期
trainSubject
:
params
.
trainSubject
,
//培训科目(多个以#号连接)
trainSubjectGrade
:
params
.
trainSubjectGrade
,
//对应分数(多个以#连接)
};
this
.
loading
=
true
;
editJobDog
(
obj
)
.
then
((
res
)
=>
{
if
(
res
.
code
===
200
&&
res
.
success
)
{
if
(
boo
)
{
this
.
loading
=
false
;
self
.
tqsp
();
return
;
}
else
{
this
.
$message
({
message
:
"保存成功"
,
type
:
"success"
,
duration
:
1000
,
});
this
.
loading
=
false
;
this
.
goBack
();
return
;
}
}
this
.
loading
=
false
;
this
.
$message
({
message
:
res
.
message
,
type
:
"warning"
,
duration
:
1000
,
});
})
.
catch
((
e
)
=>
{
console
.
log
(
e
);
this
.
loading
=
false
;
this
.
$message
({
message
:
"更新失败"
,
type
:
"warning"
,
duration
:
1000
,
});
});
},
addParams
(
params
)
{
let
obj
=
{
dogId
:
this
.
dogId
,
pdtraininglevelid
:
params
.
pdtraininglevelid
,
//评定等级
checkUnit
:
params
.
checkUnit
,
//评定单位
checkStaff
:
params
.
checkStaff
,
//考核人员
checkDate
:
params
.
checkDate
,
//评定日期
trainSubject
:
params
.
trainSubject
,
//培训科目(多个以#号连接)
trainSubjectGrade
:
params
.
trainSubjectGrade
,
//对应分数(多个以#连接)
};
this
.
loading
=
true
;
dogAdd
(
obj
)
.
then
((
res
)
=>
{
if
(
res
.
code
===
200
&&
res
.
success
)
{
this
.
$message
({
message
:
"保存成功"
,
type
:
"success"
,
duration
:
1000
,
});
this
.
loading
=
false
;
this
.
goBack
();
return
;
}
this
.
loading
=
false
;
this
.
$message
({
message
:
res
.
message
,
type
:
"warning"
,
duration
:
1000
,
});
})
.
catch
((
e
)
=>
{
console
.
log
(
e
);
this
.
loading
=
false
;
this
.
$message
({
message
:
"更新失败"
,
type
:
"warning"
,
duration
:
1000
,
});
});
},
},
watch
:
{
kaoHeLists
:
{
deep
:
true
,
immediate
:
true
,
handler
(
val
)
{
this
.
updateKaoHeRules
(
val
);
},
},
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
@import
"../../../assets/styles/detailContent.scss"
;
/
deep
/
.el-upload--picture-card
{
display
:
none
!important
;
}
.jssfzhClass
{
/deep/
.el-form-item__label
{
width
:
100%
;
text-align
:
left
;
}
.itemSfzh
{
width
:
calc
(
100%
-
66px
);
margin-right
:
10px
;
}
}
.sxjqClass
{
/deep/
.el-form-item__label
{
width
:
100%
;
text-align
:
left
;
}
/
deep
/
.el-form-item__label
:before
{
vertical-align
:
middle
;
}
/
deep
/
.el-form-item__content
{
position
:
relative
;
}
.labelNameClass
{
display
:
inline-block
;
vertical-align
:
middle
;
margin-right
:
8px
;
}
.yuandianClass
{
display
:
inline-block
;
width
:
6px
;
height
:
6px
;
border-radius
:
50%
;
background
:
#2c5de5
;
vertical-align
:
middle
;
margin-right
:
3px
;
}
.numClass
{
font-family
:
DIN
;
display
:
inline-block
;
color
:
#2c5de5
;
font-size
:
14px
;
vertical-align
:
middle
;
}
.itemSxjqClass
{
width
:
41%
!important
;
margin-right
:
5%
;
}
.itemJqxphClass
{
width
:
41%
;
margin-right
:
5%
;
}
.itemJqxphClass2
{
width
:
87%
;
margin-right
:
5%
;
}
.conBtnClass
{
display
:
inline-block
;
width
:
16px
;
height
:
16px
;
border-radius
:
50%
;
border
:
1px
solid
#2c5de5
;
line-height
:
12px
;
text-align
:
center
;
color
:
#2c5de5
;
cursor
:
pointer
;
position
:
absolute
;
right
:
0
;
bottom
:
12px
;
}
}
</
style
>
src/views/jobDogManage/index.vue
View file @
543350c3
...
...
@@ -94,22 +94,22 @@
>
</div>
<div
class=
"rightC"
>
<
!--
<
el-button
<el-button
icon=
"el-icon-plus"
size=
"small"
type=
"primary"
plain
class=
"btnStylePub btnStyle1"
@
click=
"addData"
>
新增
</el-button>
-->
<el-button
>
新增
</el-button>
<
!--
<
el-button
size=
"small"
icon=
"el-icon-plus"
type=
"warning"
class=
"btnStylePub btnStyle2"
@
click=
"batchAdd"
>
批量新增
</el-button
>
>
-->
<el-button
size=
"small"
icon=
"el-icon-upload2"
...
...
src/views/jobDogRefreshment/components/jobDogManageSp.vue
View file @
543350c3
...
...
@@ -618,6 +618,7 @@ export default {
{
title
:
"考核单位"
,
col
:
"3"
,
id
:
"checkUnitName"
},
{
title
:
"主考人"
,
col
:
"3"
,
id
:
"checkStaff"
},
{
title
:
"考核日期"
,
col
:
"3"
,
id
:
"checkDate"
},
{
title
:
"评定等级"
,
col
:
"3"
,
id
:
"pdtraininglevelidStr"
},
{
title
:
"考核科目及成绩"
,
col
:
"5"
,
...
...
src/views/jobDogRefreshment/index.vue
View file @
543350c3
...
...
@@ -88,14 +88,14 @@
class=
"btnStylePub btnStyle1"
@
click=
"addData"
>
新增
</el-button>
-->
<el-button
<
!--
<
el-button
size=
"small"
icon=
"el-icon-plus"
type=
"warning"
class=
"btnStylePub btnStyle2"
@
click=
"batchAdd"
>
批量新增
</el-button
>
>
-->
<el-button
size=
"small"
icon=
"el-icon-upload2"
...
...
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