|
|
@@ -11,7 +11,9 @@
|
|
|
info.beCheckedOrgName
|
|
|
}}</el-descriptions-item>
|
|
|
<el-descriptions-item label="检查角色"
|
|
|
- >{{ info.checkRoleNames }}
|
|
|
+ >{{
|
|
|
+ info.checkRoles ? info.checkRoles.map((r) => r.name).join(",") : ""
|
|
|
+ }}
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item label="开始日期"
|
|
|
>{{ dayjs(info.planStartTime).format("YYYY-MM-DD") }}
|
|
|
@@ -27,7 +29,9 @@
|
|
|
style="width: 80%; margin-top: -8px"
|
|
|
placeHolder="请输入检查组成员"
|
|
|
v-model="info.checkTeam"
|
|
|
+ v-if="isRegister"
|
|
|
></el-input>
|
|
|
+ <span>{{ info.checkTeam }}</span>
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item label="检查状态"
|
|
|
>{{ dayjs(info.planStartTime).format("YYYY-MM-DD") }}
|
|
|
@@ -35,7 +39,11 @@
|
|
|
</el-descriptions>
|
|
|
<div>
|
|
|
<span style="margin-right: 20px">巡检区域</span>
|
|
|
- <el-button type="primary" size="mini" @click="onAddPoint()"
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ @click="onAddPoint()"
|
|
|
+ v-if="isRegister"
|
|
|
>新增检查内容</el-button
|
|
|
>
|
|
|
</div>
|
|
|
@@ -52,14 +60,23 @@
|
|
|
<span class="pointName"
|
|
|
><i class="circle" /> {{ point.pointName }}</span
|
|
|
>
|
|
|
- <el-radio-group v-model="point.status">
|
|
|
+ <el-radio-group v-model="point.status" v-if="isRegister">
|
|
|
<el-radio :label="0">正常</el-radio>
|
|
|
<el-radio :label="1">异常</el-radio>
|
|
|
</el-radio-group>
|
|
|
+ <span v-else>
|
|
|
+ <span v-if="point.status === 0">
|
|
|
+ <i class="circle" style="background-color: #1890ff" />
|
|
|
+ <label style="color: #1890ff"> 正常</label> </span
|
|
|
+ ><span v-else>
|
|
|
+ <i class="circle" style="background-color: #f5222d" />
|
|
|
+ <label style="color: #f5222d"> 异常</label>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
<el-button
|
|
|
type="danger"
|
|
|
size="mini"
|
|
|
- v-if="point.isAdd"
|
|
|
+ v-if="point.isAdd && isRegister"
|
|
|
style="margin-left: 50px"
|
|
|
@click="onDeletePoint(area, item, point)"
|
|
|
>移除</el-button
|
|
|
@@ -71,6 +88,7 @@
|
|
|
:model="point"
|
|
|
:rules="exceptionRules"
|
|
|
label-width="100px"
|
|
|
+ v-if="isRegister"
|
|
|
>
|
|
|
<el-form-item label="情况描述" prop="remark">
|
|
|
<el-input
|
|
|
@@ -105,6 +123,28 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
+ <el-descriptions v-else :column="1">
|
|
|
+ <el-descriptions-item label="情况描述">{{
|
|
|
+ point.remark
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="整改期限">{{
|
|
|
+ getLabel(
|
|
|
+ dict.type.rectification_deadline,
|
|
|
+ point.rectificationDeadline
|
|
|
+ )
|
|
|
+ }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="整改图片">
|
|
|
+ <div class="imageList">
|
|
|
+ <el-image
|
|
|
+ style="width: 100px; height: 100px"
|
|
|
+ v-if="point.imgData"
|
|
|
+ v-for="url in point.imgData"
|
|
|
+ :src="url"
|
|
|
+ :preview-src-list="point.imgData.map((d) => d.imgPath)"
|
|
|
+ >
|
|
|
+ </el-image></div
|
|
|
+ ></el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -114,28 +154,34 @@
|
|
|
|
|
|
<div class="dialog-footer">
|
|
|
<el-button @click="dialogVisible = false">取消</el-button>
|
|
|
- <el-button @click="onGrant">授权</el-button>
|
|
|
- <el-button @click="onSave">保存</el-button>
|
|
|
- <el-button type="primary" @click="onSubmit()">提交</el-button>
|
|
|
+ <el-button @click="onGrant" v-if="isRegister && info.status != 3"
|
|
|
+ >授权</el-button
|
|
|
+ >
|
|
|
+ <el-button @click="onSave" v-if="isRegister">保存</el-button>
|
|
|
+ <el-button type="primary" @click="onSubmit()" v-if="isRegister"
|
|
|
+ >提交</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
<SelectPoint
|
|
|
ref="SelectPoint"
|
|
|
:orgType="info.beCheckOrgType"
|
|
|
@select="onSelectPoint"
|
|
|
></SelectPoint>
|
|
|
- <UserSelector ref ="UserSelector"
|
|
|
- @select="onUserSelect"
|
|
|
- :selectLimit="1"
|
|
|
+ <UserSelector
|
|
|
+ ref="UserSelector"
|
|
|
+ @select="onUserSelect"
|
|
|
+ :selectLimit="1"
|
|
|
></UserSelector>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
+import { mapGetters } from "vuex";
|
|
|
import * as api from "@/api/safetycheck/register.js";
|
|
|
import dayjs from "dayjs";
|
|
|
import SelectPoint from "../../ruleManager/dialog.select.point.vue";
|
|
|
import imgUpload from "@/components/ImageUpload/index.vue";
|
|
|
-import UserSelector from "@/components/userSelector/index.vue"
|
|
|
-
|
|
|
+import UserSelector from "@/components/userSelector/index.vue";
|
|
|
+import { getLabel } from "@/views/commonOption.js";
|
|
|
export default {
|
|
|
name: "safetyCheckRegister",
|
|
|
data() {
|
|
|
@@ -146,18 +192,55 @@ export default {
|
|
|
rectificationDeadline: [{ required: true, message: "请选择整改期限" }],
|
|
|
},
|
|
|
pointIdsWhenAdd: [],
|
|
|
+ mode: null,
|
|
|
};
|
|
|
},
|
|
|
- dicts: ["rectification_deadline","sys_user_is_lock"],
|
|
|
- components: { SelectPoint, imgUpload,UserSelector },
|
|
|
+ dicts: ["rectification_deadline", "sys_user_is_lock"],
|
|
|
+ components: { SelectPoint, imgUpload, UserSelector },
|
|
|
+ computed: {
|
|
|
+ ...mapGetters(["orgId", "roleList", "userId"]),
|
|
|
+ isRegister() {
|
|
|
+ return this.mode === "register";
|
|
|
+ },
|
|
|
+ },
|
|
|
mounted() {
|
|
|
let id = this.$route.params.taskId;
|
|
|
+ let mode = this.$route.query.mode;
|
|
|
+ if (!mode) {
|
|
|
+ mode = "info";
|
|
|
+ }
|
|
|
+ this.mode = mode;
|
|
|
+
|
|
|
api.info(id).then((r) => {
|
|
|
- this.info = r.data;
|
|
|
+ if (this.mode != "register") {
|
|
|
+ this.info = r.data;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (r.data.status == 3) {
|
|
|
+ this.mode == "info";
|
|
|
+ this.info = r.data;
|
|
|
+ this.$message.info("任务已完成,将显示详情");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ let userRoleIds = this.roleList.map((r) => r.id);
|
|
|
+ let taskRoleIds = r.data.checkRoles.map((r) => r.id);
|
|
|
+
|
|
|
+ if (
|
|
|
+ (r.data.checkOrgId == this.orgId &&
|
|
|
+ userRoleIds.find((ur) => taskRoleIds.includes(ur))) ||
|
|
|
+ r.data.grantUserId == this.userId
|
|
|
+ ) {
|
|
|
+ this.info = r.data;
|
|
|
+ } else {
|
|
|
+ this.$message.warning("用户不能执行该任务");
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
methods: {
|
|
|
dayjs,
|
|
|
+ getLabel,
|
|
|
onAddPoint() {
|
|
|
this.pointIdsWhenAdd = [];
|
|
|
this.info.checkList.forEach((a) => {
|
|
|
@@ -239,24 +322,27 @@ export default {
|
|
|
.split(",")
|
|
|
.map((img) => ({ id: null, imgPath: img }));
|
|
|
},
|
|
|
- onUserSelect(selected){
|
|
|
- if(!selected || selected.length===0){
|
|
|
- this.$message.warning("请选择要授权的人员")
|
|
|
- return;
|
|
|
- }
|
|
|
+ onUserSelect(selected) {
|
|
|
+ if (!selected || selected.length === 0) {
|
|
|
+ this.$message.warning("请选择要授权的人员");
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- api.grant({planId:this.info.planId,
|
|
|
- beCheckedOrgId:this.info.beCheckedOrgId,
|
|
|
- taskId:this.info.id,
|
|
|
- ymdDate:this.info.ymdDate,
|
|
|
- userId:selected[0].id
|
|
|
- }).then(r=>{
|
|
|
- this.$message.info("授权成功")
|
|
|
+ api
|
|
|
+ .grant({
|
|
|
+ planId: this.info.planId,
|
|
|
+ beCheckedOrgId: this.info.beCheckedOrgId,
|
|
|
+ taskId: this.info.id,
|
|
|
+ ymdDate: this.info.ymdDate,
|
|
|
+ userId: selected[0].id,
|
|
|
})
|
|
|
- //调用授权
|
|
|
+ .then((r) => {
|
|
|
+ this.$message.info("授权成功");
|
|
|
+ });
|
|
|
+ //调用授权
|
|
|
},
|
|
|
onGrant() {
|
|
|
- this.$refs.UserSelector.show();
|
|
|
+ this.$refs.UserSelector.show();
|
|
|
},
|
|
|
onSave() {
|
|
|
this.info.isSubmit = 0;
|
|
|
@@ -279,8 +365,8 @@ export default {
|
|
|
}
|
|
|
if (isOk) {
|
|
|
this.info.isSubmit = 1;
|
|
|
- api.submit(this.info).then(r=>{
|
|
|
- this.$message.info("提交成功");
|
|
|
+ api.submit(this.info).then((r) => {
|
|
|
+ this.$message.info("提交成功");
|
|
|
});
|
|
|
}
|
|
|
},
|