嘉禾二期设备管理
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

504 lines
14 KiB

<template>
<!-- 报废单审批及处理 -->
<basic-container>
<div v-loading="pageLoading" style="min-height: 750px">
<el-form ref="form" :model="form" label-width="140px"
label-position="top">
<div class="header">
<img
:src="icon"
alt="..."
style="transform: translateY(4px); margin-right: 10px"
/>
<span class="header-text">仪器设备报废申报单</span>
</div>
<!-- 第一组 -->
<el-main
style="width: 100%; height: 100%; margin-left: 20px; margin-top: 30px"
>
<div class="add_all">
<h1
style="
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 20px;
"
>
<span
style="
border-left: 4px solid blue;
margin-top: -20px;
height: 15px;
display: inline-block;
transform: translateY(2px);
"
>
</span
>&ensp;<b>报修基本信息</b>
</h1>
</div>
<el-row>
<el-col :span="6">
<el-form-item label="设备及标准物名称">
<el-input v-model="form.name" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备员">
<el-input v-model="form.equipmentName" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="发起日期">
<el-date-picker
type="date"
placeholder="选择日期"
v-model="form.createTime"
style="width: 100%"
readonly
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备及标准物编号">
<el-input v-model="form.code" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="规格型号">
<el-input v-model="form.model" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="购置日期">
<el-date-picker
type="date"
placeholder="选择日期"
v-model="form.purchaseTime"
style="width: 100%"
readonly
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="处理情况">
<el-input
v-model="form.handling"
placeholder="请输入处理情况"
:readonly="flag"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="金额(元)">
<el-input-number
v-model="form.money"
controls-position="right"
placeholder="请输入金额"
:min="0"
:disabled="flag"
style="width:74%"
></el-input-number>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="23">
<el-form-item label="报废原因及技术状况" label-width="100px">
<el-input
type="textarea"
v-model="form.reasonAndState"
placeholder="请输入报废原因及技术状况"
:rows="3"
:readonly="flag"
></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 第二组 -->
<div class="add_all" v-if="this.status !== 0">
<h1
style="
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 20px;
"
>
<span
style="
border-left: 4px solid blue;
margin-top: -20px;
height: 15px;
display: inline-block;
transform: translateY(2px);
"
>
</span
>&ensp;<b>报废申请表确认</b>
</h1>
</div>
<el-row v-if="this.status !== 0">
<el-col :span="6">
<el-form-item label="部门负责人">
<el-input v-model="form.applyDeptUserName" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="确认时间">
<el-input v-model="form.applyDate" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 第三组 -->
<div class="add_all" v-if="this.status">
<h1
style="
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 20px;
"
>
<span
style="
border-left: 4px solid blue;
margin-top: -20px;
height: 15px;
display: inline-block;
transform: translateY(2px);
"
>
</span
>&ensp;<b>报废申请表审核</b>
</h1>
</div>
<el-row>
<template v-if="this.status > 1">
<el-col :span="6">
<el-form-item label="技术负责人姓名" label-width="100px">
<el-input
v-model="form.businessOfficeName"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="审核时间">
<el-date-picker
type="date"
placeholder="选择日期"
v-model="form.reviewDate"
style="width: 100%"
readonly
></el-date-picker>
</el-form-item>
</el-col>
</template>
</el-row>
<el-row>
<el-col :span="23" v-if="this.status">
<el-form-item label="审核意见" >
<el-input
placeholder="请输入审核意见"
type="textarea"
v-model="form.reviewComments"
:rows="3"
></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 第四组 -->
<div class="add_all" v-if="this.status > 1">
<h1
style="
font-size: 16px;
font-weight: 500;
color: rgba(0, 0, 0, 0.85);
line-height: 20px;
"
>
<span
style="
border-left: 4px solid blue;
margin-top: -20px;
height: 15px;
display: inline-block;
transform: translateY(2px);
"
>
</span
>&ensp;<b>报废申请表审批</b>
</h1>
</div>
<el-row>
<template v-if="this.status > 2">
<el-col :span="6">
<el-form-item label="中心主任姓名" label-width="100px">
<el-input
v-model="form.centerDirectorName"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="审批时间">
<el-date-picker
type="date"
placeholder="选择日期"
v-model="form.approvalDate"
style="width: 100%"
readonly
></el-date-picker>
</el-form-item>
</el-col>
</template>
<el-col :span="23" v-if="this.status > 1">
<el-form-item label="审批意见" label-width="100px">
<el-input
type="textarea"
v-model="form.approvalComments"
:rows="3"
></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 第五组 -->
<el-row>
<el-col span="23">
<el-form-item label="备注" label-width="100px">
<el-input
type="textarea"
v-model="form.remark"
:rows="3"
placeholder="请输入备注"
:readonly="flag"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-main>
</el-form>
<div class="footer">
<el-button class="cus-cencel" @click="back" size="small">返回</el-button>
<el-button
type="primary"
class="cus-confirm"
@click="submit"
size="small"
:loading="subLoading"
>提交</el-button
>
</div>
</div>
</basic-container>
</template>
<script>
import { mapGetters } from "vuex";
// import { getUserInfo } from "@/api/system/user"; //权限判定
import { confirmUpdate, add } from "@/api/lims/confirm";
export default {
data() {
return {
icon: require("@/assets/img/weituodan.png"),
form: {
//设备名称
name: "",
//仪器编号
code: "",
//仪器设备类型
type: "",
//型号
model: "",
//确认时间
applyDate: "",
//申请日期
createTime: "",
//制造商
manufacturer: "",
//申请人
equipmentName: "",
//故障现象及用户要求
reasonAndState: "",
//申请维修部门
name: "",
//部门负责人
applyDeptUserName: "",
//业务室姓名
businessOfficeName: "",
//审核时间
reviewDate: "",
//审核意见
reviewComments: "",
//中心主任姓名
centerDirectorName: "",
//审批时间
approvalDate: "",
//审批意见
approvalComments: "",
//维修人
maintainer: "",
//维修时间
maintainerDate: "",
//维修记录
maintenanceRecord: "",
//验收人
acceptedName: "",
//验收时间
acceptedDate: "",
//用户意见
userComments: "",
//备注
remark: "",
// 购置日期
purchaseTime: "",
// 处理情况
handling: "",
// 金额
money: "",
},
//状态
status: 0,
//当前行id
id: "",
instrumentId: "",
flag: false,
subLoading: false,
};
},
created() {
// 渲染表单
this.fromList();
// // 获取用户信息
// this.getUserInfoList()
},
computed: {
...mapGetters(["userInfo"]),
},
methods: {
back() {
if (this.$route.query.flag === 1) {
this.$router.push("/limsConfig/equipmentManage");
} else {
this.$router.push("/repair/confirm");
}
},
/**
* 费用变动
*/
changeCost() {
this.form.totalCost =
Number(this.form.laborCost) + Number(this.form.materialCost);
},
/**
* 取当前用户的的信息
*/
// async getUserInfoList(){
// const { data: { data: { id, name, deptName } } } = await getUserInfo();
// // 申请人id
// this.form.applyUser = id
// //申请人
// this.form.applyUserName = name
// //验收人
// this.form.acceptedName = name
// //申请维修部门
// this.form.name = deptName
// },
/**
* 渲染表单
*/
fromList() {
let { row } = this.$route.query;
row = JSON.parse(row);
for (const key in this.form) {
this.form[key] = row[key];
}
// 特殊属性的给默认值
// this.form.workingHours = 0;
// this.form.laborCost = 0;
// this.form.materialCost = 0;
// this.form.totalCost = 0;
this.status = row.status;
if (this.$route.query.flag === 1) {
this.instrumentId = row.id;
} else {
this.flag = true;
this.id = row.id;
this.instrumentId = row.instrumentId;
}
this.form.equipmentName = this.userInfo.real_name;
},
/**
* 按钮报修单提交
*/
submit() {
this.subLoading = true;
if (this.$route.query.flag === 1) {
let params = {
status: this.status + 1,
instrumentId: String(this.instrumentId),
...this.form,
money: String(this.form.money),
};
add(params)
.then((res) => {
this.$message.success("提交成功");
this.subLoading = false;
})
.catch((err) => {
this.$message.error("提交失败");
this.subLoading = false;
});
} else {
let params = {
status: this.status + 1,
...this.form,
instrumentId: this.instrumentId,
money: String(this.form.money),
id: this.id,
};
confirmUpdate(params)
.then((res) => {
this.$message.success("确认成功");
})
.catch((err) => {
this.$message.error("确认失败");
this.subLoading = false;
});
}
const tag = this.$store.getters.tagList.find(
(item) => item.value === this.$route.fullPath
);
this.$store.commit("DEL_TAG", tag);
this.$router.push({ path: "/repair/confirm" });
},
},
};
</script>
<style scoped lang="scss">
.header {
padding-top: 20px;
margin-bottom: 40px;
box-sizing: border-box;
.header-text {
font-weight: 700;
font-size: 22px;
}
}
/deep/ .el-input__inner {
width: 300px !important;
}
.footer {
margin: 40px 0;
display: flex;
justify-content: center;
}
</style>