Commit 543350c3 by liyuhang19990520

警犬

parent 977179ae
No preview for this file type
......@@ -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)
// 警犬复训审批查询
......
......@@ -202,7 +202,7 @@ export default [
{
path: 'jobDogManageAdd',
name: 'jobDogManageAdd',
component: () => import('@/views/jobDogManage/components/jobDogManageEdit2.vue'),
component: () => import('@/views/jobDogManage/components/jobDogManageEdit3.vue'),
meta: {
title: '工作犬复训管理-新增',
// 编辑新增页面此字段务必设置为true
......
......@@ -251,7 +251,7 @@ export const getGzqfxglAllColumns = () => {
},
{
label: "工作犬等级",
prop: "trainingLevelId",
prop: "trainingLevelIdStr",
},
{
label: "归属单位",
......
......@@ -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;
......
<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>
......@@ -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"
......
......@@ -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",
......
......@@ -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"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment