<!-- 搅拌站专属信息编辑 -->
|
<template>
|
<BaseSceneInfo ref="baseSceneInfo" :scene="scene" :formInfo="formInfo" :scene-type="sceneType">
|
<template #form-items>
|
<el-form
|
v-show="showStyle == 'form'"
|
:inline="false"
|
:model="formObj"
|
ref="formRef"
|
:rules="rules"
|
label-position="right"
|
label-width="150px"
|
>
|
<!-- <el-form-item label="运营状态" prop="mpStatus">
|
<el-select v-model="formObj.mpStatus" placeholder="运营状态">
|
<el-option
|
v-for="s in status"
|
:key="s.value"
|
:label="s.label"
|
:value="s.value"
|
/>
|
</el-select>
|
</el-form-item> -->
|
<el-form-item label="占地面积" prop="mpFloorSpace">
|
<el-input
|
clearable
|
v-model="formObj.mpFloorSpace"
|
placeholder="占地面积"
|
>
|
<template #append>㎡</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="规划面积" prop="mpPlanningArea">
|
<el-input
|
clearable
|
v-model="formObj.mpPlanningArea"
|
placeholder="规划面积"
|
>
|
<template #append>㎡</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="业主单位" prop="mpEmployerUnit">
|
<el-input
|
clearable
|
v-model="formObj.mpEmployerUnit"
|
placeholder="业主单位"
|
/>
|
</el-form-item>
|
<el-form-item label="业主单位联系人" prop="mpEmployerContacts">
|
<el-input
|
clearable
|
v-model="formObj.mpEmployerContacts"
|
placeholder="业主单位联系人"
|
/>
|
</el-form-item>
|
<el-form-item
|
label="业主单位联系电话"
|
prop="mpEmployerContactsTel"
|
class="input-with-select"
|
>
|
<el-input
|
clearable
|
type="tel"
|
v-model="formObj.mpEmployerContactsTel"
|
placeholder="业主单位联系电话"
|
>
|
<template #prepend>
|
<el-icon><Iphone /></el-icon>
|
</template>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="是否为绿色环保站厂" prop="mpGreenPlant">
|
<el-select
|
v-model="formObj.mpGreenPlant"
|
placeholder="是否为绿色环保站厂"
|
>
|
<el-option
|
v-for="s in [
|
{ value: false, label: '否' },
|
{ value: true, label: '是' }
|
]"
|
:key="s.value"
|
:label="s.label"
|
:value="s.value"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="是否为文明场站" prop="mpCivillyPlant">
|
<el-select
|
v-model="formObj.mpCivillyPlant"
|
placeholder="是否为文明场站"
|
>
|
<el-option
|
v-for="s in [
|
{ value: false, label: '否' },
|
{ value: true, label: '是' }
|
]"
|
:key="s.value"
|
:label="s.label"
|
:value="s.value"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
:disabled="!edit"
|
type="primary"
|
@click="onSubmit"
|
:loading="loading"
|
>提交</el-button
|
>
|
<el-button :disabled="!edit" @click="onReset">重置</el-button>
|
</el-form-item>
|
</el-form>
|
</template>
|
<template #description-items>
|
<el-descriptions
|
v-show="showStyle == 'descriptions'"
|
:column="2"
|
:size="fontSize"
|
direction="horizontal"
|
border
|
>
|
<template #title>
|
<el-text tag="h1">{{ title }}</el-text>
|
</template>
|
<template #extra>
|
<el-button
|
:size="fontSize"
|
type="primary"
|
@click="onSubmit"
|
:loading="loading"
|
>提交</el-button
|
>
|
<el-button
|
:size="fontSize"
|
:disabled="!edit && !ignoreEdit"
|
@click="onReset"
|
>重置</el-button
|
>
|
</template>
|
<el-descriptions-item label="占地面积"
|
><el-input
|
:size="fontSize"
|
clearable
|
v-model="formObj.mpFloorSpace"
|
placeholder="占地面积"
|
>
|
<template #append>㎡</template>
|
</el-input></el-descriptions-item
|
>
|
<el-descriptions-item label="规划面积"
|
><el-input
|
:size="fontSize"
|
clearable
|
v-model="formObj.mpPlanningArea"
|
placeholder="规划面积"
|
>
|
<template #append>㎡</template>
|
</el-input></el-descriptions-item
|
>
|
<el-descriptions-item label="业主单位">
|
<el-input
|
clearable
|
v-model="formObj.mpEmployerUnit"
|
placeholder="业主单位"
|
/>
|
</el-descriptions-item>
|
<el-descriptions-item label="业主单位联系人">
|
<el-input
|
clearable
|
v-model="formObj.mpEmployerContacts"
|
placeholder="业主单位联系人"
|
/>
|
</el-descriptions-item>
|
<el-descriptions-item
|
label="业主单位联系电话"
|
prop="mpEmployerContactsTel"
|
class="input-with-select"
|
:span="2"
|
>
|
<el-input
|
clearable
|
type="tel"
|
v-model="formObj.mpEmployerContactsTel"
|
placeholder="业主单位联系电话"
|
>
|
<template #prepend>
|
<el-icon><Iphone /></el-icon>
|
</template>
|
</el-input>
|
</el-descriptions-item>
|
|
<el-descriptions-item label="是否为绿色环保站厂">
|
<el-select
|
v-model="formObj.mpGreenPlant"
|
placeholder="是否为绿色环保站厂"
|
>
|
<el-option
|
v-for="s in [
|
{ value: false, label: '否' },
|
{ value: true, label: '是' }
|
]"
|
:key="s.value"
|
:label="s.label"
|
:value="s.value"
|
/>
|
</el-select>
|
</el-descriptions-item>
|
<el-descriptions-item label="是否为文明场站">
|
<el-select
|
v-model="formObj.mpCivillyPlant"
|
placeholder="是否为文明场站"
|
>
|
<el-option
|
v-for="s in [
|
{ value: false, label: '否' },
|
{ value: true, label: '是' }
|
]"
|
:key="s.value"
|
:label="s.label"
|
:value="s.value"
|
/>
|
</el-select>
|
</el-descriptions-item>
|
<el-descriptions-item label="施工地址" span="2"
|
><el-input
|
clearable
|
v-model="sceneObj.location"
|
placeholder="施工地址"
|
:size="fontSize"
|
/></el-descriptions-item>
|
<el-descriptions-item label="项目负责人"
|
><el-input
|
:size="fontSize"
|
clearable
|
v-model="sceneObj.contacts"
|
placeholder="项目负责人"
|
/></el-descriptions-item>
|
<el-descriptions-item label="项目负责人电话"
|
><el-input
|
:size="fontSize"
|
clearable
|
type="tel"
|
v-model="sceneObj.contactst"
|
placeholder="项目负责人电话"
|
>
|
<template #prepend>
|
<el-icon><Iphone /></el-icon>
|
</template> </el-input
|
></el-descriptions-item>
|
</el-descriptions>
|
</template>
|
</BaseSceneInfo>
|
</template>
|
<script setup>
|
import { reactive, ref, watch, computed } from 'vue';
|
import { useFormConfirm } from '@/composables/formConfirm';
|
import BaseSceneInfo from './BaseSceneInfo.vue';
|
const props = defineProps({
|
scene: Object,
|
//工地额外信息
|
formInfo: Object,
|
//场景类型:工地
|
sceneType: {
|
type: Number,
|
default: 1
|
},
|
// 展示样式 form:表单;descriptions:描述列表
|
showStyle: {
|
type: String,
|
default: 'descriptions'
|
// default:'form'
|
},
|
title: String
|
});
|
const fontSize = ref('small');
|
const emit = defineEmits([
|
'onSubmit',
|
'onCancel',
|
'update:scene',
|
'update:formInfo'
|
]);
|
const sceneObj = ref({});
|
const { formObj, formRef, edit, onSubmit, onReset } = useFormConfirm({
|
submit: {
|
do: submit
|
},
|
cancel: {
|
do: cancel
|
}
|
});
|
const ignoreEdit = computed(() => props.showStyle == 'descriptions');
|
|
const loading = ref(false);
|
const status = reactive([]);
|
const rules = reactive({});
|
|
const baseSceneInfo = ref(null);
|
function submit() {
|
return baseSceneInfo.value.submit()
|
}
|
|
function cancel() {
|
emit('onCancel');
|
}
|
|
watch(
|
() => props.formInfo,
|
(nValue) => {
|
if (nValue) {
|
formObj.value = nValue;
|
}
|
},
|
{ deep: false, immediate: true }
|
);
|
|
watch(
|
() => props.scene,
|
(nValue) => {
|
if (nValue) {
|
sceneObj.value = nValue;
|
}
|
},
|
{ deep: false, immediate: true }
|
);
|
</script>
|
|
<style>
|
/* .input-with-select .el-input-group__prepend {
|
background-color: var(--el-fill-color-blank);
|
} */
|
.sub-title {
|
font-size: var(--el-font-size-large);
|
margin-bottom: 20px;
|
margin-left: 20px;
|
}
|
</style>
|