|
|
@@ -3,7 +3,7 @@
|
|
|
<div class="app-container">
|
|
|
<el-form
|
|
|
ref="point_baseInfo"
|
|
|
- :model="info"
|
|
|
+ :model="taskInfo"
|
|
|
:rules="baseInfoRules"
|
|
|
label-width="120px"
|
|
|
>
|
|
|
@@ -11,7 +11,7 @@
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="任务名称" prop="taskName">
|
|
|
<el-input
|
|
|
- v-model="info.taskName"
|
|
|
+ v-model="taskInfo.taskName"
|
|
|
placeholder="请输入任务名称"
|
|
|
maxlength="50"
|
|
|
></el-input> </el-form-item
|
|
|
@@ -19,7 +19,7 @@
|
|
|
<el-col :span="6"
|
|
|
><el-form-item label="检查主体" prop="checkOrgId">
|
|
|
<orgDropDown
|
|
|
- v-model="info.checkOrgId"
|
|
|
+ v-model="taskInfo.checkOrgId"
|
|
|
placeholder="选择检查主体"
|
|
|
@select="onCheckOrgSelect"
|
|
|
orgTreeType="org"
|
|
|
@@ -28,7 +28,7 @@
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="检查人员" prop="checkRoleId">
|
|
|
<el-select
|
|
|
- v-model="info.checkRoleId"
|
|
|
+ v-model="taskInfo.checkRoleId"
|
|
|
placeholder="请选择检查人员"
|
|
|
style="width: 100%"
|
|
|
clearable
|
|
|
@@ -46,7 +46,7 @@
|
|
|
<el-col :span="6">
|
|
|
<el-form-item label="受检机构" prop="beCheckedOrgId">
|
|
|
<orgDropDown
|
|
|
- v-model="info.beCheckedOrgId"
|
|
|
+ v-model="taskInfo.beCheckedOrgId"
|
|
|
placeholder="选择受检机构"
|
|
|
@select="onBecheckOrgSelect"
|
|
|
orgTreeType="org"
|
|
|
@@ -58,7 +58,7 @@
|
|
|
<el-input
|
|
|
style="width: 100%"
|
|
|
placeHolder="请输入检查组成员"
|
|
|
- v-model="info.checkTeam"
|
|
|
+ v-model="taskInfo.checkTeam"
|
|
|
maxlength="100"
|
|
|
clearable
|
|
|
></el-input> </el-form-item
|
|
|
@@ -67,7 +67,7 @@
|
|
|
<el-form-item label="检查日期" prop="planStartTime">
|
|
|
<el-date-picker
|
|
|
style="width: 100%"
|
|
|
- v-model="info.planStartTime"
|
|
|
+ v-model="taskInfo.planStartTime"
|
|
|
type="date"
|
|
|
placeholder="选择检查日期"
|
|
|
clearable
|
|
|
@@ -78,7 +78,6 @@
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
<div style="margin-left: 42px">
|
|
|
- <span style="margin-right: 20px">检查区域</span>
|
|
|
<el-button type="primary" size="mini" @click="onAddPoint()"
|
|
|
>选择检查内容</el-button
|
|
|
>
|
|
|
@@ -86,26 +85,48 @@
|
|
|
<div class="content">
|
|
|
<div
|
|
|
class="area_content"
|
|
|
- v-for="area in info.checkList"
|
|
|
- :key="area.areaId"
|
|
|
+ style="font-weight: 700; background-color: white"
|
|
|
>
|
|
|
+ <div style="background-color: inherit">检查手册</div>
|
|
|
<div>
|
|
|
- {{ area.areaName }}
|
|
|
+ <div class="safetycheck_item">
|
|
|
+ <div style="padding-left: 10px; display: flex">
|
|
|
+ <div class="name namePadding" style="text-align: center">
|
|
|
+ 检查内容
|
|
|
+ </div>
|
|
|
+ <div class="point_areaname">检查区域</div>
|
|
|
+ <div class="point_btn" style="text-align: center">检查结果</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="area_content"
|
|
|
+ v-for="rule in taskInfo.checkList"
|
|
|
+ :key="rule.ruleId"
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ {{ rule.ruleName }}
|
|
|
</div>
|
|
|
<div>
|
|
|
<div
|
|
|
class="safetycheck_item"
|
|
|
- v-for="(item, index) in area.itemList"
|
|
|
+ v-for="(item, index) in rule.itemList"
|
|
|
:key="item.itemId"
|
|
|
>
|
|
|
<div
|
|
|
- style="background-color: #d1e0f1 !important; padding-left: 10px"
|
|
|
+ style="
|
|
|
+ background-color: #d1e0f1 !important;
|
|
|
+ padding-left: 10px;
|
|
|
+ display: flex;
|
|
|
+ "
|
|
|
>
|
|
|
<div class="name namePadding">
|
|
|
- {{ arabicToChinese(index + 1) }}、{{ item.itemName }}
|
|
|
+ 检查项:{{ arabicToChinese(index + 1) }}、{{ item.itemName }}
|
|
|
</div>
|
|
|
+ <div class="point_areaname"></div>
|
|
|
+ <!-- <div class="namePadding" style="padding-left:20px;">检查结果</div> -->
|
|
|
</div>
|
|
|
-
|
|
|
<div
|
|
|
class="safetycheck_point"
|
|
|
v-for="(point, pIndex) in item.pointList"
|
|
|
@@ -114,7 +135,7 @@
|
|
|
<div class="pointContent name">
|
|
|
<div class="pointName namePadding">
|
|
|
<div class="text_nbsp">
|
|
|
- {{ pIndex + 1 + ". " + point.pointName }}
|
|
|
+ {{ pIndex + 1 + "、" + point.pointName }}
|
|
|
</div>
|
|
|
<!-- <i class="circle" /> -->
|
|
|
</div>
|
|
|
@@ -131,10 +152,13 @@
|
|
|
style="width: 250px"
|
|
|
placeholder="请输入情况描述"
|
|
|
maxlength="255"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="整改期限" prop="rectificationDeadline">
|
|
|
+ ></el-input> </el-form-item
|
|
|
+ ><el-form-item
|
|
|
+ label="整改期限"
|
|
|
+ prop="rectificationDeadline"
|
|
|
+ >
|
|
|
<el-select
|
|
|
+ style="width: 250px"
|
|
|
v-model="point.rectificationDeadline"
|
|
|
placeholder="请选择整改期限"
|
|
|
>
|
|
|
@@ -146,6 +170,7 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+
|
|
|
<el-form-item label="异常图片" prop="image">
|
|
|
<imgUpload
|
|
|
type="more"
|
|
|
@@ -160,21 +185,24 @@
|
|
|
</el-form>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="point_areaname">
|
|
|
+ {{ point.areaName }}
|
|
|
+ </div>
|
|
|
<div class="point_btn">
|
|
|
<el-radio-group
|
|
|
v-model="point.status"
|
|
|
- style="margin-top: 5px; margin-left: 20px"
|
|
|
+ style="margin-left: 20px"
|
|
|
>
|
|
|
<el-radio :label="0">正常</el-radio>
|
|
|
<el-radio :label="1">异常</el-radio>
|
|
|
</el-radio-group>
|
|
|
- <div>
|
|
|
+ <div style="margin-top: -5px">
|
|
|
<el-button
|
|
|
type="danger"
|
|
|
size="mini"
|
|
|
v-if="point.isAdd"
|
|
|
style="margin-left: 50px"
|
|
|
- @click="onDeletePoint(area, item, point)"
|
|
|
+ @click="onDeletePoint(rule, item, point)"
|
|
|
>删除</el-button
|
|
|
>
|
|
|
</div>
|
|
|
@@ -197,7 +225,7 @@
|
|
|
</div>
|
|
|
<SelectPoint
|
|
|
ref="SelectPoint"
|
|
|
- :orgType="[info.beCheckOrgType]"
|
|
|
+ :orgType="[taskInfo.beCheckOrgType]"
|
|
|
@select="onSelectPoint"
|
|
|
></SelectPoint>
|
|
|
</div>
|
|
|
@@ -216,7 +244,7 @@ export default {
|
|
|
name: "safetyCheckRegister",
|
|
|
data() {
|
|
|
return {
|
|
|
- info: {
|
|
|
+ taskInfo: {
|
|
|
taskName: null,
|
|
|
checkOrgId: null,
|
|
|
checkRoleId: null,
|
|
|
@@ -250,8 +278,8 @@ export default {
|
|
|
...mapGetters(["orgId", "roleList", "userId"]),
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.info.checkOrgId = this.orgId;
|
|
|
- this.info.checkRoleId = this.roleList[0].roleId;
|
|
|
+ this.taskInfo.checkOrgId = this.orgId;
|
|
|
+ this.taskInfo.checkRoleId = this.roleList[0].roleId;
|
|
|
},
|
|
|
methods: {
|
|
|
dayjs,
|
|
|
@@ -271,15 +299,15 @@ export default {
|
|
|
getNamesByOrgId(node.id).then((r) => {
|
|
|
this.roleOptions = r.data;
|
|
|
this.prevCheckOrgType = node.type;
|
|
|
- if (!this.roleOptions.find((op) => op.id == this.info.checkRoleId)) {
|
|
|
- this.info.checkRoleId = null;
|
|
|
+ if (!this.roleOptions.find((op) => op.id == this.taskInfo.checkRoleId)) {
|
|
|
+ this.taskInfo.checkRoleId = null;
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
onBecheckOrgSelect(node) {
|
|
|
if (node == null) {
|
|
|
this.prevBecheckedOrgType = null;
|
|
|
- this.info.checkList = [];
|
|
|
+ this.taskInfo.checkList = [];
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -287,21 +315,21 @@ export default {
|
|
|
return;
|
|
|
}
|
|
|
this.$refs["point_baseInfo"].clearValidate(["beCheckedOrgId"]);
|
|
|
- this.info.checkList = [];
|
|
|
+ this.taskInfo.checkList = [];
|
|
|
this.prevBecheckedOrgType = node.type;
|
|
|
- this.info.beCheckOrgType = node.type;
|
|
|
+ this.taskInfo.beCheckOrgType = node.type;
|
|
|
},
|
|
|
onAddPoint() {
|
|
|
- if (!this.info.beCheckedOrgId) {
|
|
|
+ if (!this.taskInfo.beCheckedOrgId) {
|
|
|
this.$message.info("请先选择受检机构");
|
|
|
return;
|
|
|
}
|
|
|
- if (!this.info.beCheckOrgType) {
|
|
|
+ if (!this.taskInfo.beCheckOrgType) {
|
|
|
this.$message.warning("受检机构的机构类型未知");
|
|
|
return;
|
|
|
}
|
|
|
this.pointIdsWhenAdd = [];
|
|
|
- this.info.checkList.forEach((a) => {
|
|
|
+ this.taskInfo.checkList.forEach((a) => {
|
|
|
a.itemList.forEach((i) => {
|
|
|
i.pointList.forEach((p) => {
|
|
|
this.pointIdsWhenAdd.push(p.pointId);
|
|
|
@@ -317,17 +345,17 @@ export default {
|
|
|
if (this.pointIdsWhenAdd.indexOf(p.id) >= 0) {
|
|
|
continue;
|
|
|
}
|
|
|
- let info = this.info;
|
|
|
- let area = info.checkList.find((a) => a.areaId === p.areaId);
|
|
|
- if (!area) {
|
|
|
- area = { areaId: p.areaId, areaName: p.areaName, itemList: [] };
|
|
|
- info.checkList.push(area);
|
|
|
+ let taskInfo = this.taskInfo;
|
|
|
+ let rule = taskInfo.checkList.find((a) => a.ruleId === p.ruleId);
|
|
|
+ if (!rule) {
|
|
|
+ rule = { ruleId: p.ruleId, ruleName: p.ruleName, itemList: [] };
|
|
|
+ taskInfo.checkList.push(rule);
|
|
|
}
|
|
|
|
|
|
- let item = area.itemList.find((i) => i.itemId == p.itemId);
|
|
|
+ let item = rule.itemList.find((i) => i.itemId == p.itemId);
|
|
|
if (!item) {
|
|
|
item = { itemId: p.itemId, itemName: p.itemName, pointList: [] };
|
|
|
- area.itemList.push(item);
|
|
|
+ rule.itemList.push(item);
|
|
|
}
|
|
|
|
|
|
let point = item.pointList.find((i) => i.pointId == p.id);
|
|
|
@@ -335,6 +363,8 @@ export default {
|
|
|
point = {
|
|
|
pointId: p.id,
|
|
|
pointName: p.pointName,
|
|
|
+ areaId:p.areaId,
|
|
|
+ areaName:p.areaName,
|
|
|
mustCheck: 1,
|
|
|
isAdd: 1,
|
|
|
status: 0,
|
|
|
@@ -355,7 +385,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- onDeletePoint(area, item, point) {
|
|
|
+ onDeletePoint(rule, item, point) {
|
|
|
if (point.isAdd === 0) {
|
|
|
this.$message.warning("不可删除计划的检查内容");
|
|
|
return;
|
|
|
@@ -367,13 +397,13 @@ export default {
|
|
|
}
|
|
|
|
|
|
if (item.pointList.length === 0) {
|
|
|
- index = area.itemList.indexOf(item);
|
|
|
- area.itemList.splice(index, 1);
|
|
|
+ index = rule.itemList.indexOf(item);
|
|
|
+ rule.itemList.splice(index, 1);
|
|
|
}
|
|
|
|
|
|
- if (area.itemList.length === 0) {
|
|
|
- index = this.info.checkList.indexOf(area);
|
|
|
- this.info.checkList.splice(index, 1);
|
|
|
+ if (rule.itemList.length === 0) {
|
|
|
+ index = this.taskInfo.checkList.indexOf(rule);
|
|
|
+ this.taskInfo.checkList.splice(index, 1);
|
|
|
}
|
|
|
},
|
|
|
onImageChanged(point, value) {
|
|
|
@@ -385,8 +415,8 @@ export default {
|
|
|
this.$tab.closePageAndPushPrev();
|
|
|
},
|
|
|
onSave() {
|
|
|
- this.info.isSubmit = 0;
|
|
|
- api.tempSubmit(this.info).then((r) => {
|
|
|
+ this.taskInfo.isSubmit = 0;
|
|
|
+ api.tempSubmit(this.taskInfo).then((r) => {
|
|
|
this.$message.info("保存成功");
|
|
|
});
|
|
|
},
|
|
|
@@ -409,9 +439,9 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
if (isOk) {
|
|
|
- this.info.isSubmit = 1;
|
|
|
- let data = { ...this.info };
|
|
|
- data.checkRoles = [{ id: this.info.checkRoleId }];
|
|
|
+ this.taskInfo.isSubmit = 1;
|
|
|
+ let data = { ...this.taskInfo };
|
|
|
+ data.checkRoles = [{ id: this.taskInfo.checkRoleId }];
|
|
|
api.tempSubmit(data).then((r) => {
|
|
|
this.$message.info("提交成功");
|
|
|
this.$tab.closePageAndPushPrev();
|
|
|
@@ -503,11 +533,32 @@ export default {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
}
|
|
|
+
|
|
|
+ ::v-deep .el-upload--picture-card {
|
|
|
+ width: 100px;
|
|
|
+ height: 100px;
|
|
|
+ line-height: 100px;
|
|
|
+ }
|
|
|
+
|
|
|
+ ::v-deep .el-upload-list--picture-card .el-upload-list__item{
|
|
|
+ width: 100px;
|
|
|
+ height: 100px;
|
|
|
+ line-height: 100px;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+.point_areaname {
|
|
|
+ padding-top: 10px;
|
|
|
+ width: 150px;
|
|
|
+ border-right: #b8bdc0 1px solid;
|
|
|
+ text-align: center;
|
|
|
+ display: inline-block !important;
|
|
|
+}
|
|
|
.point_btn {
|
|
|
- padding-top: 5px;
|
|
|
- width: 600px;
|
|
|
+ // flex-direction: column !important;
|
|
|
+ // justify-content: center;
|
|
|
+ padding-top:10px;
|
|
|
+ width: 450px;
|
|
|
}
|
|
|
|
|
|
.pointName {
|