<template>
|
<div class="system-add-user-container">
|
<el-dialog :title="title" v-model="isShowVideoDialog" width="50%">
|
<el-form :model="saftyForm" size="default" ref="userRef" :rules="saftyFormRules" label-width="120px">
|
<el-row :gutter="35">
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
<el-form-item label="编号" prop="orderNum">
|
<el-input v-model.trim="saftyForm.orderNum" placeholder="请输入编号" clearable type="number" :readonly="isDisabled"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
<el-form-item label="作业类型" prop="workType">
|
<el-select v-model="saftyForm.workType" :disabled="isDisabled">
|
<el-option
|
v-for="item in workTypeList"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
<el-form-item label="安全措施内容" prop="measureContent">
|
<el-input v-model.trim="saftyForm.measureContent" placeholder="带填空内容必须以“(#)”格式输入,如:现场配备灭火器(#)台,灭火毯(#)块。否则无法提交。" type="textarea" :autosize="{ minRows: 3 }" clearable :readonly="isDisabled"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
<el-form-item label="是否填空" prop="measureType">
|
<el-radio-group v-model="saftyForm.measureType" :disabled="isDisabled">
|
<el-radio :label="0">否</el-radio>
|
<el-radio :label="1">是</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20" v-if="saftyForm.measureType == 1">
|
<el-form-item label="填空数量" prop="blanks">
|
<el-input v-model.trim="saftyForm.blanks" placeholder="请输入填空数量" clearable type="number" :readonly="isDisabled"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="isShowVideoDialog = !isShowVideoDialog" size="default">取 消</el-button>
|
<el-button v-if="!isDisabled" type="primary" v-throttle @click="onSubmit" size="default">确 定</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script lang="ts">
|
import { reactive, toRefs, onMounted, defineComponent, ref } from 'vue';
|
import { ElMessageBox, ElMessage } from 'element-plus';
|
import { saftyApi } from '/@/api/systemManage/saftyManage';
|
|
// 定义接口来定义对象的类型
|
interface DeptData {}
|
interface sexData {}
|
interface UserState {
|
title: string;
|
isDisabled: boolean;
|
isShowVideoDialog: boolean;
|
saftyForm: {
|
orderNum: number | null;
|
workType: number | null;
|
measureContent: string | null;
|
measureType: number | null;
|
blanks: number | null;
|
};
|
saftyFormRules:{
|
|
},
|
departmentData: Array<DeptData>;
|
addProps:{}
|
workTypeList: Array<TypeList>
|
}
|
interface TypeList {
|
label: string,
|
value: number
|
}
|
export default defineComponent({
|
name: 'videoDialog',
|
setup(props, context) {
|
const userRef = ref()
|
const state = reactive<UserState>({
|
title: '',
|
isDisabled: false,
|
isShowVideoDialog: false,
|
saftyForm: {
|
orderNum: null,
|
workType: null,
|
measureContent: '',
|
measureType: null,
|
blanks: null
|
},
|
saftyFormRules:{
|
orderNum: [{ required: true, message: '请填写安全措施编号', trigger: 'blur' }],
|
workType: [{ required: true, message: '请选择作业类型', trigger: 'blur' }],
|
measureContent: [{ required: true, message: '请填写安全措施内容', trigger: 'blur' }],
|
measureType: [{ required: true, message: '请选择措施类型', trigger: 'blur' }],
|
blanks: [{ required: true, message: '请填写填空数量', trigger: 'blur' }]
|
},
|
departmentData: [], // 部门数据
|
addProps:{
|
expandTrigger: 'hover',
|
emitPath: false,
|
value: 'depId',
|
label: 'depName',
|
checkStrictly: true
|
},
|
workTypeList: [
|
{
|
label: "动火作业",
|
value: 1
|
},
|
{
|
label: "受限空间作业",
|
value: 2
|
},
|
{
|
label: "吊装作业",
|
value: 3
|
},
|
{
|
label: "动土作业",
|
value: 4
|
},
|
{
|
label: "断路作业",
|
value: 5
|
},
|
{
|
label: "高处作业",
|
value: 6
|
},
|
{
|
label: "临时用电作业",
|
value: 7
|
},
|
{
|
label: "盲板抽堵作业",
|
value: 8
|
},
|
{
|
label: "打开作业",
|
value: 9
|
}
|
]
|
});
|
// 打开弹窗
|
const openDialog = (type: string, value: any, departmentList: [], roleList: [], dutyList:[]) => {
|
state.isShowVideoDialog = true;
|
state.departmentData = departmentList;
|
if (type === '新增') {
|
state.title = '新增安全措施'
|
state.isDisabled = false
|
state.saftyForm = {
|
orderNum: null,
|
workType: null,
|
measureContent: '',
|
measureType: null,
|
blanks: null
|
};
|
} else if(type === '修改'){
|
state.title = '修改安全措施';
|
state.isDisabled = false
|
state.saftyForm = JSON.parse(JSON.stringify(value));
|
} else{
|
state.title = '查看安全措施';
|
state.isDisabled = true
|
state.saftyForm = JSON.parse(JSON.stringify(value));
|
}
|
};
|
|
// 新增修改
|
const onSubmit = async () => {
|
userRef.value.validate(async (valid:Boolean) => {
|
if(valid){
|
if(state.saftyForm.measureType == 0){
|
state.saftyForm.blanks = null
|
}
|
if (state.title === '新增安全措施') {
|
let res = await saftyApi().addSafty(state.saftyForm);
|
if (res.data.code === '200') {
|
ElMessage({
|
type: 'success',
|
message: '安全措施新增成功',
|
duration: 2000
|
});
|
state.isShowVideoDialog = false;
|
context.emit('getSaftyList');
|
} else {
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg
|
});
|
}
|
} else {
|
let res = await saftyApi().modSafty(state.saftyForm);
|
if (res.data.code === '200') {
|
ElMessage({
|
type: 'success',
|
message: '安全措施修改成功',
|
duration: 2000
|
});
|
state.isShowVideoDialog = false;
|
context.emit('getSaftyList');
|
} else {
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg
|
});
|
}
|
}
|
}else{
|
ElMessage({
|
type:'warning',
|
message:'请完善基本信息'
|
})
|
}
|
})
|
|
};
|
|
// 页面加载时
|
onMounted(() => {});
|
return {
|
userRef,
|
openDialog,
|
onSubmit,
|
...toRefs(state)
|
};
|
}
|
});
|
</script>
|