<template>
|
<div class="home-container">
|
<el-dialog v-model="showDialog" title="修改申报" @close="clearFile()" width="80%" :close-on-click-modal="false">
|
<el-form :model="form" label-width="180px" :rules="applyRules" ref="ruleFormRef">
|
<div class="homeCard">
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="作业申请单位" prop="applyDepId">
|
<el-cascader style="width: 100%" v-model="form.applyDepId" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="受限空间名称" prop="workDetail.csName">
|
<el-input
|
v-model="form.workDetail.csName"
|
:autosize="{ minRows: 1 }"
|
type="textarea"
|
placeholder="请输入受限空间名称"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="原有介质名称" prop="workDetail.csOriginalName">
|
<el-input
|
v-model="form.workDetail.csOriginalName"
|
:autosize="{ minRows: 1 }"
|
type="textarea"
|
placeholder="请输入受限空间原有介质名称"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="作业内容" prop="workContent">
|
<el-input
|
v-model="form.workContent"
|
:autosize="{ minRows: 1 }"
|
type="textarea"
|
placeholder="请输入作业内容"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="作业人" prop="operatorUids">
|
<el-select v-model="form.operatorUids" filterable multiple clearable>
|
<el-option
|
v-for="item in lists.spList.opList"
|
:key="item.uid"
|
:label="item.realName"
|
:value="item.uid"
|
/>
|
</el-select>
|
<!-- <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>-->
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="作业地点" prop="workLocation">
|
<el-input
|
v-model="form.workLocation"
|
:autosize="{ minRows: 1 }"
|
type="textarea"
|
placeholder="请输入作业地点"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="作业单位" prop="workDepId">
|
<el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="lists.departList" :show-all-levels="false"/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="作业负责人" prop="headUids">
|
<el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>
|
<el-option
|
v-for="item in lists.workerList"
|
:key="item.uid"
|
:label="item.username"
|
:value="item.uid"
|
/>
|
</el-select>
|
<!-- <el-cascader style="width: 100%" v-model="form.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="分析人" prop="analystUids">
|
<el-select v-model="form.analystUids" filterable multiple clearable>
|
<el-option
|
v-for="item in lists.workerList"
|
:key="item.uid"
|
:label="item.username"
|
:value="item.uid"
|
/>
|
</el-select>
|
<!-- <el-cascader style="width: 100%" v-model="form.analystUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'分析人')" :show-all-levels="false"/>-->
|
</el-form-item>
|
</el-col>
|
<el-col :span="12" class="valueSelect">
|
<el-form-item label="关联其他特殊作业">
|
<el-select v-model="form.involveOtherWork" multiple clearable :teleported="false" @click="openWorkSelect">
|
<el-option v-for="item in lists.otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="监护人" prop="guardianUids">
|
<el-select v-model="form.guardianUids" multiple filterable clearable>
|
<el-option
|
v-for="item in lists.spList.jhList"
|
:key="item.uid"
|
:label="item.realName"
|
:value="item.uid"
|
/>
|
</el-select>
|
<!-- <el-cascader style="width: 100%" v-model="form.guardianUids" :options="lists.spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>-->
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="绑定执法仪" prop="cameraIds">
|
<el-select v-model="form.cameraIds" multiple clearable>
|
<el-option
|
v-for="item in lists.deviceList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<!-- <el-col :span="12">-->
|
<!-- <el-form-item label="动火作业实施时间" prop="expStartTime">-->
|
<!-- <el-date-picker-->
|
<!-- v-model="form.expStartTime"-->
|
<!-- format="YYYY-MM-DD HH:mm"-->
|
<!-- value-format="YYYY-MM-DD HH:mm:00"-->
|
<!-- type="datetimerange"-->
|
<!-- range-separator="至"-->
|
<!-- start-placeholder="开始时间"-->
|
<!-- end-placeholder="结束时间"-->
|
<!-- />-->
|
<!-- </el-form-item>-->
|
<!-- </el-col>-->
|
<el-col :span="12">
|
<el-form-item label="预计(整体)开始时间" prop="expStartTime">
|
<el-date-picker
|
v-model="form.expStartTime"
|
format="YYYY-MM-DD HH:mm"
|
value-format="YYYY-MM-DD HH:mm:00"
|
type="datetime"
|
style="width: 100%"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="预计(整体)完成时间" prop="expEndTime">
|
<el-date-picker
|
v-model="form.expEndTime"
|
format="YYYY-MM-DD HH:mm"
|
value-format="YYYY-MM-DD HH:mm:00"
|
type="datetime"
|
style="width: 100%"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="风险辨识" prop="riskIdentification">
|
<el-select v-model="form.riskIdentification" multiple clearable>
|
<el-option
|
v-for="item in lists.riskList"
|
:key="item.id"
|
:label="item.content"
|
:value="item.content"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="备注" prop="remark">
|
<el-input
|
v-model="form.remark"
|
:autosize="{ minRows: 1 }"
|
type="textarea"
|
placeholder="请输入作业备注"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row style="display: flex;justify-content: center">
|
<el-table :data="safetyMeasureBasicList" style="width: 90%" border v-loading="tabLoading">
|
<el-table-column type="index" label="序号" width="100px" align="center"/>
|
<el-table-column prop="measureContent" label="安全措施"/>
|
</el-table>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
|
<el-select v-model="form.safetyMeasureUids" filterable multiple clearable>
|
<el-option
|
v-for="item in lists.workerList"
|
:key="item.uid"
|
:label="item.username"
|
:value="item.uid"
|
/>
|
</el-select>
|
<!-- <el-cascader style="width: 100%" v-model="form.safetyMeasureUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>-->
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row style="display: flex;justify-content: center">
|
<el-table :data="form.approvalDepBasicList" style="width: 90%" border v-loading="tabLoading">
|
<el-table-column prop="content" label="审批签字项目" align="center"/>
|
<el-table-column prop="approvalType" label="是否必签" align="center">
|
<template #default="scope">
|
<el-form-item label="" prop="acceptUid" label-width="0">
|
<el-radio-group v-model="scope.row.approvalType">
|
<el-radio :label="0">所有必签</el-radio>
|
<el-radio :label="1">任一</el-radio>
|
<el-radio :label="2">非必签</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</template>
|
</el-table-column>
|
<el-table-column prop="approvalUids" label="审批人" align="center">
|
<template #default="scope">
|
<el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
|
<el-option
|
v-for="item in lists.workerList"
|
:key="item.uid"
|
:label="item.username"
|
:value="item.uid"
|
/>
|
</el-select>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="完工验收" prop="acceptUid">
|
<el-select v-model="form.acceptUid" filterable clearable>
|
<el-option
|
v-for="item in lists.workerList"
|
:key="item.uid"
|
:label="item.username"
|
:value="item.uid"
|
/>
|
</el-select>
|
<!-- <el-cascader style="width: 100%" v-model="form.acceptUid" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
|
<el-select v-model="form.startOrEndUids" filterable multiple clearable>
|
<el-option
|
v-for="item in lists.workerList"
|
:key="item.uid"
|
:label="item.username"
|
:value="item.uid"
|
/>
|
</el-select>
|
<!-- <el-cascader style="width: 100%" v-model="form.startOrEndUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>-->
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="最终审批人" prop="lastApprover">
|
<el-select v-model="form.lastApprover" filterable clearable>
|
<el-option
|
v-for="item in lists.workerList"
|
:key="item.uid"
|
:label="item.username"
|
:value="item.uid"
|
/>
|
</el-select>
|
<!-- <el-cascader style="width: 100%" v-model="form.lastApprover" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</div>
|
</el-form>
|
<div class="applyBtn">
|
<el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)" v-throttle>提交申报</el-button>
|
</div>
|
<work-select ref="workSelectRef" @refreshWorks="getSelected()"></work-select>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script lang="ts">
|
import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, onUnmounted} from 'vue';
|
import { storeToRefs } from 'pinia';
|
import { initBackEndControlRoutes } from '/@/router/backEnd';
|
import {useUserInfo} from "/@/stores/userInfo";
|
import { Session } from '/@/utils/storage';
|
import { Search, Edit } from '@element-plus/icons-vue'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
import type { FormInstance, FormRules } from 'element-plus'
|
import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
|
import workSelect from "/@/views/newSpecialWorkSystem/workTicket/zysq/components/workSelect.vue";
|
import {userApi} from "/@/api/systemManage/user";
|
interface stateType {
|
form: Object,
|
equipmentDialog: boolean,
|
showDialog: boolean
|
props1:{},
|
depProps:{},
|
safetyMeasureBasicList: []
|
tabLoading: boolean
|
}
|
export default defineComponent({
|
name: 'spaceDialog',
|
components: {workSelect},
|
props:['lists'],
|
setup(props: any, context: any) {
|
const userInfo = useUserInfo()
|
const { userInfos } = storeToRefs(userInfo);
|
const state = reactive<stateType>({
|
tabLoading: false,
|
showDialog: false,
|
equipmentDialog: false,
|
safetyMeasureBasicList: [],
|
form: {
|
id: null,
|
workType: 2,
|
workLevel: 0,
|
applyDepId: null,
|
seDepId: null,
|
expStartTime: '',
|
expEndTime: '',
|
operatorUids: [],
|
headUids: [],
|
analystUids: [],
|
guardianUids: [],
|
workDepId: null,
|
workContent: '',
|
workLocation: '',
|
riskIdentification: [],
|
involveOtherWork: [],
|
safetyMeasureUids: [],
|
approvalDepBasicList: [],
|
acceptUid: null,
|
lastApprover: null,
|
startOrEndUids: [],
|
cameraIds: [],
|
workDetail: {
|
csName: '',
|
csOriginalName: ''
|
},
|
remark: ''
|
},
|
props1:{
|
expandTrigger: 'hover',
|
label: 'depName',
|
value: 'depId',
|
emitPath: false
|
},
|
depProps:{
|
expandTrigger: 'hover',
|
label: 'depName',
|
value: 'depId',
|
checkStrictly: true,
|
emitPath: false
|
}
|
});
|
const ruleFormRef = ref<FormInstance>()
|
const applyRules = reactive<FormRules>({
|
applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
workDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
"workDetail.csName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
|
"workDetail.csOriginalName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
|
});
|
const workSelectRef = ref()
|
// 页面载入时执行方法
|
onMounted(() => {
|
getBasicData()
|
});
|
|
const openWorkSelect = ()=>{
|
workSelectRef.value.openDialog(state.form.involveOtherWork)
|
}
|
|
const getSelected = ()=>{
|
state.form.involveOtherWork = workSelectRef.value.selected
|
}
|
|
const openDialog = (row)=>{
|
Object.keys(state.form).forEach(key => {
|
if (row.hasOwnProperty(key)) {
|
state.form[key] = JSON.parse(JSON.stringify(row))[key];
|
}
|
})
|
state.form.operatorUids = row.operatorList.map(i=>i.userId)
|
state.form.headUids = row.headList.map(i=>i.userId)
|
state.form.analystUids = row.analystList.map(i=>i.userId)
|
state.form.guardianUids = row.guardianList.map(i=>i.userId)
|
state.form.involveOtherWork = row.otherWorkList.map(i=>i.otherWorkApplyId)
|
state.form.cameraIds = row.workApprovalDeviceList.map(i=>i.deviceId)
|
state.form.safetyMeasureUids = row.safetyMeasureList.map(i=>i.userId)
|
state.form.riskIdentification = row.riskIdentification.split(',')
|
state.form.approvalDepBasicList = row.approvalDepList.map((item)=>({
|
content: item.content,
|
approvalDepBasicId: item.approvalDepBasicId,
|
approvalUids: item.approvalPersonList.filter(j=>j.type == 5).map(i=>i.userId),
|
approvalType: item.approvalType
|
}))
|
state.form.acceptUid = row.acceptUser.userId
|
state.form.startOrEndUids = row.startOrEndList.map(i=>i.userId)
|
state.form.lastApprover = row.lastApprover.userId
|
state.showDialog = true
|
}
|
|
const clearFile = ()=>{
|
state.form = {
|
id: null,
|
workType: 2,
|
workLevel: 0,
|
applyDepId: null,
|
seDepId: null,
|
expStartTime: '',
|
expEndTime: '',
|
operatorUids: [],
|
headUids: [],
|
analystUids: [],
|
guardianUids: [],
|
workDepId: null,
|
workContent: '',
|
workLocation: '',
|
riskIdentification: [],
|
involveOtherWork: [],
|
safetyMeasureUids: [],
|
approvalDepBasicList: [],
|
acceptUid: null,
|
lastApprover: null,
|
startOrEndUids: [],
|
cameraIds: [],
|
workDetail: {
|
csName: '',
|
csOriginalName: ''
|
},
|
remark: ''
|
}
|
state.showDialog = false
|
}
|
|
const findParent = ()=>{
|
state.form.seDepId = findTopLevelId(props.lists.departList2,state.form.applyDepId)
|
}
|
|
function findTopLevelId(tree, targetId) {
|
let topLevelId = null;
|
function findIdRecursive(node) {
|
if (node.id === targetId) {
|
topLevelId = node.id;
|
return true;
|
}
|
if (node.children) {
|
for (const child of node.children) {
|
if (findIdRecursive(child)) {
|
topLevelId = node.id;
|
return true;
|
}
|
}
|
}
|
return false;
|
}
|
tree.forEach(node => findIdRecursive(node));
|
return topLevelId;
|
}
|
|
// 获取基础数据
|
const getBasicData = async ()=>{
|
state.tabLoading = true
|
const res = await workApplyApi().getFormData(2)
|
if (res.data.code === '200') {
|
state.safetyMeasureBasicList = JSON.parse(JSON.stringify(res.data.data.safetyMeasureBasicList))
|
if(res.data.data.approvalDepBasicList && res.data.data.approvalDepBasicList.length>0){
|
state.form.approvalDepBasicList = res.data.data.approvalDepBasicList.map(({id,content})=>({
|
content,
|
approvalDepBasicId: id,
|
approvalUids: [],
|
approvalType: null
|
}))
|
}else{
|
state.form.approvalDepBasicList = []
|
}
|
} else {
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg
|
});
|
}
|
state.tabLoading = false
|
};
|
|
const getStartEndIds = (value)=>{
|
state.form.startOrEndUids = state.form.headUids
|
state.form.approvalDepBasicList[0].approvalUids = state.form.headUids
|
}
|
|
const getSafetyIds = ()=>{
|
state.form.safetyMeasureUids = state.form.guardianUids
|
}
|
|
const isFirstRow = (index)=> {
|
return index === 0;
|
}
|
|
const transform2Arr = (arr: Array<any>)=>{
|
return arr.map((i)=>{
|
return {
|
uid: i,
|
certificate: '',
|
certExpiredAt: '',
|
certTypeName: ''
|
}
|
})
|
}
|
|
const transform2Obj = (id:any)=>{
|
return {
|
uid: id,
|
certificate: '',
|
certExpiredAt: '',
|
certTypeName: ''
|
}
|
}
|
|
const submitForm = async (formEl: FormInstance | undefined) => {
|
if (!formEl) return
|
await formEl.validate(async (valid, fields) => {
|
if (valid) {
|
for(let i of state.form.approvalDepBasicList){
|
if(i.approvalUids.length == 0){
|
ElMessage({
|
type: 'warning',
|
message: '部分审批人未配置'
|
});
|
return
|
}
|
}
|
// if(Array.isArray(state.form.involveOtherWork)){
|
// state.form.involveOtherWork = state.form.involveOtherWork.join(',')
|
// }
|
state.form.riskIdentification = state.form.riskIdentification.join(',')
|
const {...data} = state.form
|
data.operatorUids = transform2Arr(data.operatorUids)
|
data.headUids = transform2Arr(data.headUids)
|
// data.analystUids = transformArr(data.analystUids)
|
data.guardianUids = transform2Arr(data.guardianUids)
|
data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids)
|
data.startOrEndUids = transform2Arr(data.startOrEndUids)
|
data.acceptUid = transform2Obj(data.acceptUid)
|
data.lastApprover = transform2Obj(data.lastApprover)
|
const res = await workApplyApi().modSpaceApply(data)
|
if (res.data.code === '200') {
|
ElMessage({
|
type: 'success',
|
message: '提交成功!'
|
});
|
formEl.resetFields()
|
state.form.guardianUids = []
|
state.form.involveOtherWork = []
|
getBasicData()
|
clearFile()
|
context.emit('refresh')
|
} else {
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg
|
});
|
// state.form.involveOtherWork = state.form.involveOtherWork.split(',')
|
state.form.riskIdentification = state.form.riskIdentification.split(',')
|
}
|
} else {
|
console.log('error submit!', fields)
|
ElMessage({
|
type: 'warning',
|
message: '有表单内容未完成,请再次检查完善'
|
})
|
}
|
})
|
}
|
|
// 折线图
|
const renderMenu = async (value: string) => {
|
Session.set('projectId',value)
|
userInfos.value.projectId = value
|
await initBackEndControlRoutes();
|
};
|
return {
|
renderMenu,
|
getBasicData,
|
getStartEndIds,
|
getSafetyIds,
|
isFirstRow,
|
submitForm,
|
findParent,
|
openWorkSelect,
|
getSelected,
|
openDialog,
|
clearFile,
|
workSelectRef,
|
Search,
|
ruleFormRef,
|
applyRules,
|
...toRefs(state),
|
};
|
},
|
});
|
</script>
|
|
<style scoped lang="scss">
|
.home-container {
|
width: 100%;
|
height: 100vh;
|
overflow: hidden;
|
overflow-y: scroll;
|
&::-webkit-scrollbar{
|
width: 0;
|
background-color: transparent;
|
}
|
.homeCard{
|
width: 100%;
|
padding: 20px;
|
box-sizing: border-box;
|
background: #fff;
|
border-radius: 4px;
|
margin-bottom: 20px;
|
}
|
.applyBtn{
|
width: 100%;
|
background: #fff;
|
padding: 20px 0;
|
box-shadow: 0 -3px 8px rgba(150,150,150,.1);
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
}
|
.el-row{
|
margin-bottom: 20px;
|
}
|
.el-row:last-child {
|
margin-bottom: 0;
|
}
|
.el-input{
|
width: 100% !important;
|
}
|
.el-date-editor::v-deep{
|
width: 100%;
|
}
|
.el-select{
|
width: 100%;
|
}
|
.el-cascader{
|
width: 100% !important;
|
}
|
}
|
.valueSelect{
|
::v-deep(.el-popper){
|
display: none !important;
|
}
|
}
|
.tab-i{
|
margin-bottom: 15px;
|
|
&:last-of-type{
|
margin-bottom: 0;
|
}
|
::v-deep(.el-form-item){
|
.el-form-item__label{
|
margin-bottom: 4px;
|
}
|
}
|
}
|
</style>
|