From 8f3255956f85af1df98170fb05e6551cea12e9b0 Mon Sep 17 00:00:00 2001 From: hcong <1050828145@qq.com> Date: 星期二, 12 十一月 2024 15:54:57 +0800 Subject: [PATCH] 场景报告-码头搅拌站场景基本信息 --- src/views/fysp/data-product/ProdSceneReport.vue | 42 + src/views/fysp/scene/CompSceneMixingPlantInfo.vue | 338 +++++++++++++ src/views/fysp/scene/CompSceneWharfInfo.vue | 305 ++++++++++++ src/views/fysp/scene/CompSceneConstructionInfo.vue | 692 +++++++++++++-------------- src/components.d.ts | 18 src/views/fysp/evaluation/components/precheck/CompPreCheck.vue | 2 src/views/fysp/scene/BaseSceneInfo.vue | 91 +++ 7 files changed, 1,100 insertions(+), 388 deletions(-) diff --git a/src/components.d.ts b/src/components.d.ts index 7d97466..e0da7cd 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -12,18 +12,13 @@ BasePanelLayout: typeof import('./components/core/BasePanelLayout.vue')['default'] CompQuickSet: typeof import('./components/search-option/CompQuickSet.vue')['default'] Content: typeof import('./components/core/Content.vue')['default'] - ElAffix: typeof import('element-plus/es')['ElAffix'] ElAside: typeof import('element-plus/es')['ElAside'] ElAvatar: typeof import('element-plus/es')['ElAvatar'] ElBadge: typeof import('element-plus/es')['ElBadge'] ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb'] ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem'] ElButton: typeof import('element-plus/es')['ElButton'] - ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup'] - ElCalendar: typeof import('element-plus/es')['ElCalendar'] ElCard: typeof import('element-plus/es')['ElCard'] - ElCascader: typeof import('element-plus/es')['ElCascader'] - ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] ElCol: typeof import('element-plus/es')['ElCol'] ElCollapse: typeof import('element-plus/es')['ElCollapse'] ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] @@ -35,9 +30,6 @@ ElDialog: typeof import('element-plus/es')['ElDialog'] ElDivider: typeof import('element-plus/es')['ElDivider'] ElDrawer: typeof import('element-plus/es')['ElDrawer'] - ElDropdown: typeof import('element-plus/es')['ElDropdown'] - ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] - ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] ElEmpty: typeof import('element-plus/es')['ElEmpty'] ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] @@ -45,37 +37,27 @@ ElIcon: typeof import('element-plus/es')['ElIcon'] ElImage: typeof import('element-plus/es')['ElImage'] ElInput: typeof import('element-plus/es')['ElInput'] - ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] - ElLink: typeof import('element-plus/es')['ElLink'] ElMain: typeof import('element-plus/es')['ElMain'] ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElMenuItemGroup: typeof import('element-plus/es')['ElMenuItemGroup'] ElOption: typeof import('element-plus/es')['ElOption'] - ElPageHeader: typeof import('element-plus/es')['ElPageHeader'] - ElPagination: typeof import('element-plus/es')['ElPagination'] - ElPopconfirm: typeof import('element-plus/es')['ElPopconfirm'] ElPopover: typeof import('element-plus/es')['ElPopover'] ElRadio: typeof import('element-plus/es')['ElRadio'] - ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRow: typeof import('element-plus/es')['ElRow'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] - ElSegmented: typeof import('element-plus/es')['ElSegmented'] ElSelect: typeof import('element-plus/es')['ElSelect'] ElSpace: typeof import('element-plus/es')['ElSpace'] ElStep: typeof import('element-plus/es')['ElStep'] ElSteps: typeof import('element-plus/es')['ElSteps'] ElSubMenu: typeof import('element-plus/es')['ElSubMenu'] - ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] ElText: typeof import('element-plus/es')['ElText'] - ElTooltip: typeof import('element-plus/es')['ElTooltip'] - ElTransfer: typeof import('element-plus/es')['ElTransfer'] ElTree: typeof import('element-plus/es')['ElTree'] ElUpload: typeof import('element-plus/es')['ElUpload'] Footer: typeof import('./components/core/Footer.vue')['default'] diff --git a/src/views/fysp/data-product/ProdSceneReport.vue b/src/views/fysp/data-product/ProdSceneReport.vue index 1274d47..239545e 100644 --- a/src/views/fysp/data-product/ProdSceneReport.vue +++ b/src/views/fysp/data-product/ProdSceneReport.vue @@ -13,10 +13,27 @@ <template #main> <el-scrollbar class="el-scrollbar" v-loading="mainLoading"> <CompSceneConstructionInfo + v-if="curSubtask.data && curSubtask.data.sceneType == '宸ュ湴'" title="A銆佸熀鏈俊鎭�" :scene="formScene" :form-info="formSubScene" + :scene-type="1" /> + <CompSceneWharfInfo + v-else-if="curSubtask.data && curSubtask.data.sceneType == '鐮佸ご'" + title="A銆佸熀鏈俊鎭�" + :scene="formScene" + :form-info="formSubScene" + :scene-type="2" + /> + <CompSceneMixingPlantInfo + v-else-if="curSubtask.data && curSubtask.data.sceneType == '鎼呮媽绔�'" + title="A銆佸熀鏈俊鎭�" + :scene="formScene" + :form-info="formSubScene" + :scene-type="3" + /> + <div v-else><el-text tag="h1">A銆佸熀鏈俊鎭�</el-text></div> <div><el-text type="">闄勫浘鐗囷細</el-text></div> <CompImgInfo v-model:title="imgTitle" @@ -71,21 +88,16 @@ </el-scrollbar> </template> </BaseContentLayout> - <el-dialog - v-model="anyPhotoDialog" - width="66%" - title="浠绘剰鍥剧墖" - destroy-on-close + <ArbitraryPhoto + v-if="anyPhotoDialog" + v-model:dialog-visible="anyPhotoDialog" + :max-select="1" + :readonly="false" + :subtask="curSubtask.data" + @selectByAnyPhonoEvent="handleSelectAnyPhoto" + :defaultFile="[sceneImg]" > - <ArbitraryPhoto - :max-select="1" - :readonly="false" - :subtask="curSubtask.data" - @selectByAnyPhonoEvent="handleSelectAnyPhoto" - :defaultFile="[sceneImg]" - > - </ArbitraryPhoto> - </el-dialog> + </ArbitraryPhoto> <el-dialog title="璁惧鍥剧墖" width="66%" @@ -113,6 +125,8 @@ import right_triangle from '@/assets/image/right_triangle.png'; import CompSceneConstructionInfo from '@/views/fysp/scene/CompSceneConstructionInfo.vue'; +import CompSceneWharfInfo from '@/views/fysp/scene/CompSceneWharfInfo.vue'; +import CompSceneMixingPlantInfo from '@/views/fysp/scene/CompSceneMixingPlantInfo.vue'; import ArbitraryPhoto from '@/views/fysp/check/components/ArbitraryPhoto.vue'; import CompDevicePhono from '@/views/fysp/check/components/CompDevicePhono.vue'; import CompImgInfo from '@/views/fysp/data-product/components/CompImgInfo.vue'; diff --git a/src/views/fysp/evaluation/components/precheck/CompPreCheck.vue b/src/views/fysp/evaluation/components/precheck/CompPreCheck.vue index 3bb8745..582f1f7 100644 --- a/src/views/fysp/evaluation/components/precheck/CompPreCheck.vue +++ b/src/views/fysp/evaluation/components/precheck/CompPreCheck.vue @@ -76,7 +76,7 @@ online: true, sourceType: v.sourceType }; - this.$refs.refSource.startCheck(a); + this.$.refSource.startCheck(a); }, onDataSourceChange(val) { this.dataSource = val; diff --git a/src/views/fysp/scene/BaseSceneInfo.vue b/src/views/fysp/scene/BaseSceneInfo.vue new file mode 100644 index 0000000..ed621bd --- /dev/null +++ b/src/views/fysp/scene/BaseSceneInfo.vue @@ -0,0 +1,91 @@ +<template> + <slot name="form-items"></slot> + <slot name="description-items"></slot> +</template> +<script setup> +import { reactive, ref, watch, computed } from 'vue'; +import { useDateFormat } from '@vueuse/core'; +import sceneApi from '@/api/fysp/sceneApi'; +expose({ + submit +}); +const props = defineProps({ + scene: Object, + //宸ュ湴棰濆淇℃伅 + formInfo: Object, + //鍦烘櫙绫诲瀷锛氬伐鍦� + sceneType: { + type: Number, + default: 1 + }, +}); +const emit = defineEmits([ + 'onSubmit', + 'onCancel', + 'update:scene', + 'update:formInfo' +]); +const loading = ref(false); +const formObj = ref({}); +const sceneObj = ref({}); +// 鍒涘缓鎴栨洿鏂板満鏅鎯� +function createOrupdateSubScene() { + loading.value = true; + + if (formObj.value._timeRange && formObj.value._timeRange.length == 2) { + const t = formObj.value._timeRange; + formObj.value.csStartTime = useDateFormat(t[0], 'YYYY-MM-DD'); + formObj.value.csEndTime = useDateFormat(t[1], 'YYYY-MM-DD'); + } + return sceneApi + .updateSubScene(props.sceneType, formObj.value) + .then((res) => { + emit('onSubmit', formObj); + emit('update:formInfo', formObj); + return res.data; + }) + .finally(() => { + loading.value = false; + }); +} + +// 鏇存柊鍦烘櫙 +function updateScene() { + return sceneApi.updateScene(sceneObj.value).then(() => { + emit('update:scene', sceneObj); + }); +} + +function submit() { + updateScene(); + return createOrupdateSubScene(); +} + +function cancel() { + emit('onCancel'); +} + +watch( + () => props.formInfo, + (nValue) => { + if (nValue) { + formObj.value = nValue; + formObj.value._timeRange = [ + new Date(formObj.value.csStartTime), + new Date(formObj.value.csEndTime) + ]; + } + }, + { deep: false, immediate: true } +); + +watch( + () => props.scene, + (nValue) => { + if (nValue) { + sceneObj.value = nValue; + } + }, + { deep: false, immediate: true } +); +</script> diff --git a/src/views/fysp/scene/CompSceneConstructionInfo.vue b/src/views/fysp/scene/CompSceneConstructionInfo.vue index 65d98bd..ca21b75 100644 --- a/src/views/fysp/scene/CompSceneConstructionInfo.vue +++ b/src/views/fysp/scene/CompSceneConstructionInfo.vue @@ -1,325 +1,334 @@ <!-- 宸ュ湴涓撳睘淇℃伅缂栬緫 --> <template> - <el-form - v-show="showStyle == 'form'" - :inline="false" - :model="formObj" - ref="formRef" - :rules="rules" - label-position="right" - label-width="150px" + <BaseSceneInfo + ref="baseSceneInfo" + :scene="scene" + :formInfo="formInfo" + :scene-type="sceneType" > - <el-form-item label="宸ョ▼绫诲瀷" prop="csProjectType"> - <el-input - clearable - v-model="formObj.csProjectType" - placeholder="宸ョ▼绫诲瀷" - /> - </el-form-item> - <el-form-item label="寤鸿鐘舵��" prop="csStatus"> - <el-select v-model="formObj.csStatus" 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="siExtension1"> - <el-select v-model="formObj.siExtension1" placeholder="鏂藉伐闃舵"> - <el-option - v-for="s in stage" - :key="s.value" - :label="s.label" - :value="s.value" - /> - </el-select> - </el-form-item> - <el-form-item label="鏂藉伐鏃堕棿" prop="_timeRange"> - <el-date-picker - v-model="formObj._timeRange" - type="daterange" - range-separator="鑷�" - start-placeholder="寮�宸ユ椂闂�" - end-placeholder="瀹屽伐鏃堕棿" - /> - </el-form-item> - <el-form-item label="鍓╀綑宸ユ湡" prop="csLeftTime"> - <el-input - clearable - v-model="formObj.csLeftTime" - placeholder="鍓╀綑宸ユ湡锛屼緥濡傚嚑骞淬�佸嚑鏈堛�佸嚑鍛ㄣ�佸嚑澶╃瓑" - /> - </el-form-item> - <el-form-item label="鍗犲湴闈㈢Н" prop="csFloorSpace"> - <el-input clearable v-model="formObj.csFloorSpace" placeholder="鍗犲湴闈㈢Н"> - <template #append>銕�</template> - </el-input> - </el-form-item> - <el-form-item label="鏂藉伐闈㈢Н" prop="csConstructionArea"> - <el-input - clearable - v-model="formObj.csConstructionArea" - placeholder="鏂藉伐闈㈢Н" + <template #form-items> + <el-form + v-show="showStyle == 'form'" + :inline="false" + :model="formObj" + ref="formRef" + :rules="rules" + label-position="right" + label-width="150px" > - <template #append>銕�</template> - </el-input> - </el-form-item> - <el-form-item label="姣忔湀鏂藉伐闈㈢Н" prop="csConstructionAreaPerMonth"> - <el-input - clearable - v-model="formObj.csConstructionAreaPerMonth" - placeholder="姣忔湀鏂藉伐闈㈢Н" - > - <template #append>銕�</template> - </el-input> - </el-form-item> - <el-form-item label="涓氫富鍗曚綅" prop="csEmployerUnit"> - <el-input - clearable - v-model="formObj.csEmployerUnit" - placeholder="涓氫富鍗曚綅" - /> - </el-form-item> - <el-form-item label="涓氫富鍗曚綅鑱旂郴浜�" prop="csEmployerContacts"> - <el-input - clearable - v-model="formObj.csEmployerContacts" - placeholder="涓氫富鍗曚綅鑱旂郴浜�" - /> - </el-form-item> - <el-form-item - label="涓氫富鍗曚綅鑱旂郴鐢佃瘽" - prop="csEmployerContactsTel" - class="input-with-select" - > - <el-input - clearable - type="tel" - v-model="formObj.csEmployerContactsTel" - placeholder="涓氫富鍗曚綅鑱旂郴鐢佃瘽" - > - <template #prepend> - <el-icon><Iphone /></el-icon> - </template> - </el-input> - </el-form-item> - <el-form-item label="鏂藉伐鍗曚綅" prop="csConstructionUnit"> - <el-input - clearable - v-model="formObj.csConstructionUnit" - placeholder="鏂藉伐鍗曚綅" - /> - </el-form-item> - <el-form-item label="鏂藉伐鍗曚綅鑱旂郴浜�" prop="csConstructionContacts"> - <el-input - clearable - v-model="formObj.csConstructionContacts" - placeholder="鏂藉伐鍗曚綅鑱旂郴浜�" - /> - </el-form-item> - <el-form-item label="鏂藉伐鍗曚綅鑱旂郴鐢佃瘽" prop="csConstructionContactsTel"> - <el-input - clearable - type="tel" - v-model="formObj.csConstructionContactsTel" - placeholder="鏂藉伐鍗曚綅鑱旂郴鐢佃瘽" - > - <template #prepend> - <el-icon><Iphone /></el-icon> - </template> - </el-input> - </el-form-item> - <el-form-item label="瀹夊叏鍛�" prop="csSecurityOfficer"> - <el-input - clearable - v-model="formObj.csSecurityOfficer" - placeholder="瀹夊叏鍛�" - /> - </el-form-item> - <el-form-item label="瀹夊叏鍛樼數璇�" prop="csSecurityOfficerTel"> - <el-input - clearable - type="tel" - v-model="formObj.csSecurityOfficerTel" - placeholder="瀹夊叏鍛樼數璇�" - > - <template #prepend> - <el-icon><Iphone /></el-icon> - </template> - </el-input> - </el-form-item> + <el-form-item label="宸ョ▼绫诲瀷" prop="csProjectType"> + <el-input + clearable + v-model="formObj.csProjectType" + placeholder="宸ョ▼绫诲瀷" + /> + </el-form-item> + <el-form-item label="寤鸿鐘舵��" prop="csStatus"> + <el-select v-model="formObj.csStatus" 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="siExtension1"> + <el-select v-model="formObj.siExtension1" placeholder="鏂藉伐闃舵"> + <el-option + v-for="s in stage" + :key="s.value" + :label="s.label" + :value="s.value" + /> + </el-select> + </el-form-item> + <el-form-item label="鏂藉伐鏃堕棿" prop="_timeRange"> + <el-date-picker + v-model="formObj._timeRange" + type="daterange" + range-separator="鑷�" + start-placeholder="寮�宸ユ椂闂�" + end-placeholder="瀹屽伐鏃堕棿" + /> + </el-form-item> + <el-form-item label="鍓╀綑宸ユ湡" prop="csLeftTime"> + <el-input + clearable + v-model="formObj.csLeftTime" + placeholder="鍓╀綑宸ユ湡锛屼緥濡傚嚑骞淬�佸嚑鏈堛�佸嚑鍛ㄣ�佸嚑澶╃瓑" + /> + </el-form-item> + <el-form-item label="鍗犲湴闈㈢Н" prop="csFloorSpace"> + <el-input + clearable + v-model="formObj.csFloorSpace" + placeholder="鍗犲湴闈㈢Н" + > + <template #append>銕�</template> + </el-input> + </el-form-item> + <el-form-item label="鏂藉伐闈㈢Н" prop="csConstructionArea"> + <el-input + clearable + v-model="formObj.csConstructionArea" + placeholder="鏂藉伐闈㈢Н" + > + <template #append>銕�</template> + </el-input> + </el-form-item> + <el-form-item label="姣忔湀鏂藉伐闈㈢Н" prop="csConstructionAreaPerMonth"> + <el-input + clearable + v-model="formObj.csConstructionAreaPerMonth" + placeholder="姣忔湀鏂藉伐闈㈢Н" + > + <template #append>銕�</template> + </el-input> + </el-form-item> + <el-form-item label="涓氫富鍗曚綅" prop="csEmployerUnit"> + <el-input + clearable + v-model="formObj.csEmployerUnit" + placeholder="涓氫富鍗曚綅" + /> + </el-form-item> + <el-form-item label="涓氫富鍗曚綅鑱旂郴浜�" prop="csEmployerContacts"> + <el-input + clearable + v-model="formObj.csEmployerContacts" + placeholder="涓氫富鍗曚綅鑱旂郴浜�" + /> + </el-form-item> + <el-form-item + label="涓氫富鍗曚綅鑱旂郴鐢佃瘽" + prop="csEmployerContactsTel" + class="input-with-select" + > + <el-input + clearable + type="tel" + v-model="formObj.csEmployerContactsTel" + placeholder="涓氫富鍗曚綅鑱旂郴鐢佃瘽" + > + <template #prepend> + <el-icon><Iphone /></el-icon> + </template> + </el-input> + </el-form-item> + <el-form-item label="鏂藉伐鍗曚綅" prop="csConstructionUnit"> + <el-input + clearable + v-model="formObj.csConstructionUnit" + placeholder="鏂藉伐鍗曚綅" + /> + </el-form-item> + <el-form-item label="鏂藉伐鍗曚綅鑱旂郴浜�" prop="csConstructionContacts"> + <el-input + clearable + v-model="formObj.csConstructionContacts" + placeholder="鏂藉伐鍗曚綅鑱旂郴浜�" + /> + </el-form-item> + <el-form-item label="鏂藉伐鍗曚綅鑱旂郴鐢佃瘽" prop="csConstructionContactsTel"> + <el-input + clearable + type="tel" + v-model="formObj.csConstructionContactsTel" + placeholder="鏂藉伐鍗曚綅鑱旂郴鐢佃瘽" + > + <template #prepend> + <el-icon><Iphone /></el-icon> + </template> + </el-input> + </el-form-item> + <el-form-item label="瀹夊叏鍛�" prop="csSecurityOfficer"> + <el-input + clearable + v-model="formObj.csSecurityOfficer" + placeholder="瀹夊叏鍛�" + /> + </el-form-item> + <el-form-item label="瀹夊叏鍛樼數璇�" prop="csSecurityOfficerTel"> + <el-input + clearable + type="tel" + v-model="formObj.csSecurityOfficerTel" + placeholder="瀹夊叏鍛樼數璇�" + > + <template #prepend> + <el-icon><Iphone /></el-icon> + </template> + </el-input> + </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> - - <el-descriptions - v-show="showStyle == 'descriptions'" - :column="2" - :size="fontSize" - direction="horizontal" - border - > - <template #title> - <el-text tag="h1">{{ title }}</el-text> + <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 #extra> - <el-button - :disabled="!edit && !ignoreEdit" + <template #description-items> + <el-descriptions + v-show="showStyle == 'descriptions'" + :column="2" :size="fontSize" - type="primary" - @click="onSubmit" - :loading="loading" - >鎻愪氦</el-button + direction="horizontal" + border > - <el-button - :size="fontSize" - :disabled="!edit && !ignoreEdit" - @click="onReset" - >閲嶇疆</el-button - > - </template> - <el-descriptions-item label="宸ョ▼绫诲瀷" - ><el-input - :size="fontSize" - clearable - v-model="formObj.csProjectType" - placeholder="宸ョ▼绫诲瀷" - /></el-descriptions-item> - <!-- <el-descriptions-item label="寤鸿鐘舵��" - ><el-select - v-model="formObj.csStatus" - placeholder="寤鸿鐘舵��" - > - <el-option - v-for="s in status" - :key="s.value" - :label="s.label" - :value="s.value" - /> </el-select - ></el-descriptions-item> --> - <el-descriptions-item label="鏂藉伐闃舵" - ><el-select - v-model="formObj.siExtension1" - placeholder="鏂藉伐闃舵" - :size="fontSize" - > - <el-option - v-for="s in stage" - :key="s.value" - :label="s.label" - :value="s.value" - /> </el-select - ></el-descriptions-item> - <el-descriptions-item label="鏂藉伐鏃堕棿" - ><el-date-picker - :size="fontSize" - v-model="formObj._timeRange" - type="daterange" - range-separator="鑷�" - start-placeholder="寮�宸ユ椂闂�" - end-placeholder="瀹屽伐鏃堕棿" - /></el-descriptions-item> - <el-descriptions-item label="鍓╀綑宸ユ湡" - ><el-input - :size="fontSize" - clearable - v-model="formObj.csLeftTime" - placeholder="鍓╀綑宸ユ湡锛屼緥濡傚嚑骞淬�佸嚑鏈堛�佸嚑鍛ㄣ�佸嚑澶╃瓑" - /></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="鍗犲湴闈㈢Н" rowspan="2" - ><el-input - :size="fontSize" - clearable - v-model="formObj.csFloorSpace" - placeholder="鍗犲湴闈㈢Н" - > - <template #append>銕�</template> - </el-input></el-descriptions-item - > - <el-descriptions-item label="鏂藉伐闈㈢Н" - ><el-input - :size="fontSize" - clearable - v-model="formObj.csConstructionArea" - placeholder="鏂藉伐闈㈢Н" - > - <template #append>銕�</template> - </el-input></el-descriptions-item - > - <el-descriptions-item label="姣忔湀鏂藉伐闈㈢Н" - ><el-input - :size="fontSize" - clearable - v-model="formObj.csConstructionAreaPerMonth" - placeholder="姣忔湀鏂藉伐闈㈢Н" - > - <template #append>銕�</template> - </el-input></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-item label="瀹夊叏鍛�" - ><el-input - :size="fontSize" - clearable - v-model="formObj.csSecurityOfficer" - placeholder="瀹夊叏鍛�" - /></el-descriptions-item> - <el-descriptions-item label="瀹夊叏鍛樼數璇�" - ><el-input - :size="fontSize" - clearable - type="tel" - v-model="formObj.csSecurityOfficerTel" - placeholder="瀹夊叏鍛樼數璇�" - > - <template #prepend> - <el-icon><Iphone /></el-icon> - </template> </el-input - ></el-descriptions-item> - <el-descriptions-item label="鎬诲寘鍗曚綅" - ><el-input - :size="fontSize" - clearable - v-model="formObj.csConstructionUnit" - placeholder="鎬诲寘鍗曚綅" - /></el-descriptions-item> - <!-- <el-descriptions-item label="鏂藉伐鍗曚綅鑱旂郴浜�" + <template #title> + <el-text tag="h1">{{ title }}</el-text> + </template> + <template #extra> + <el-button + :disabled="!edit && !ignoreEdit" + :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.csProjectType" + placeholder="宸ョ▼绫诲瀷" + /></el-descriptions-item> + <el-descriptions-item label="寤鸿鐘舵��" + ><el-select v-model="formObj.csStatus" placeholder="寤鸿鐘舵��"> + <el-option + v-for="s in status" + :key="s.value" + :label="s.label" + :value="s.value" + /> </el-select + ></el-descriptions-item> + <el-descriptions-item label="鏂藉伐闃舵" + ><el-select + v-model="formObj.siExtension1" + placeholder="鏂藉伐闃舵" + :size="fontSize" + > + <el-option + v-for="s in stage" + :key="s.value" + :label="s.label" + :value="s.value" + /> </el-select + ></el-descriptions-item> + <el-descriptions-item label="鏂藉伐鏃堕棿" + ><el-date-picker + :size="fontSize" + v-model="formObj._timeRange" + type="daterange" + range-separator="鑷�" + start-placeholder="寮�宸ユ椂闂�" + end-placeholder="瀹屽伐鏃堕棿" + /></el-descriptions-item> + <el-descriptions-item label="鍓╀綑宸ユ湡" + ><el-input + :size="fontSize" + clearable + v-model="formObj.csLeftTime" + placeholder="鍓╀綑宸ユ湡锛屼緥濡傚嚑骞淬�佸嚑鏈堛�佸嚑鍛ㄣ�佸嚑澶╃瓑" + /></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="鍗犲湴闈㈢Н" rowspan="2" + ><el-input + :size="fontSize" + clearable + v-model="formObj.csFloorSpace" + placeholder="鍗犲湴闈㈢Н" + > + <template #append>銕�</template> + </el-input></el-descriptions-item + > + <el-descriptions-item label="鏂藉伐闈㈢Н" + ><el-input + :size="fontSize" + clearable + v-model="formObj.csConstructionArea" + placeholder="鏂藉伐闈㈢Н" + > + <template #append>銕�</template> + </el-input></el-descriptions-item + > + <el-descriptions-item label="姣忔湀鏂藉伐闈㈢Н" + ><el-input + :size="fontSize" + clearable + v-model="formObj.csConstructionAreaPerMonth" + placeholder="姣忔湀鏂藉伐闈㈢Н" + > + <template #append>銕�</template> + </el-input></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-item label="瀹夊叏鍛�" + ><el-input + :size="fontSize" + clearable + v-model="formObj.csSecurityOfficer" + placeholder="瀹夊叏鍛�" + /></el-descriptions-item> + <el-descriptions-item label="瀹夊叏鍛樼數璇�" + ><el-input + :size="fontSize" + clearable + type="tel" + v-model="formObj.csSecurityOfficerTel" + placeholder="瀹夊叏鍛樼數璇�" + > + <template #prepend> + <el-icon><Iphone /></el-icon> + </template> </el-input + ></el-descriptions-item> + <el-descriptions-item label="鎬诲寘鍗曚綅" + ><el-input + :size="fontSize" + clearable + v-model="formObj.csConstructionUnit" + placeholder="鎬诲寘鍗曚綅" + /></el-descriptions-item> + <!-- <el-descriptions-item label="鏂藉伐鍗曚綅鑱旂郴浜�" ><el-input clearable v-model="formObj.csConstructionContacts" @@ -336,14 +345,14 @@ <el-icon><Iphone /></el-icon> </template> </el-input ></el-descriptions-item> --> - <el-descriptions-item label="寤鸿鍗曚綅" - ><el-input - :size="fontSize" - clearable - v-model="formObj.csEmployerUnit" - placeholder="寤鸿鍗曚綅" - /></el-descriptions-item> - <!-- <el-descriptions-item label="涓氫富鍗曚綅鑱旂郴浜�" + <el-descriptions-item label="寤鸿鍗曚綅" + ><el-input + :size="fontSize" + clearable + v-model="formObj.csEmployerUnit" + placeholder="寤鸿鍗曚綅" + /></el-descriptions-item> + <!-- <el-descriptions-item label="涓氫富鍗曚綅鑱旂郴浜�" ><el-input clearable v-model="formObj.csEmployerContacts" @@ -360,15 +369,16 @@ <el-icon><Iphone /></el-icon> </template> </el-input ></el-descriptions-item> --> - </el-descriptions> + </el-descriptions> + </template> + </BaseSceneInfo> </template> <script setup> import { reactive, ref, watch, computed } from 'vue'; -import { useDateFormat } from '@vueuse/core'; import { enumStatusNA, enumStageNA } from '@/enum/construction'; -import sceneApi from '@/api/fysp/sceneApi'; import { useFormConfirm } from '@/composables/formConfirm'; +import BaseSceneInfo from './BaseSceneInfo.vue'; const props = defineProps({ scene: Object, @@ -433,37 +443,9 @@ ] }); -// 鍒涘缓鎴栨洿鏂板満鏅鎯� -function createOrupdateSubScene() { - loading.value = true; - - if (formObj.value._timeRange && formObj.value._timeRange.length == 2) { - const t = formObj.value._timeRange; - formObj.value.csStartTime = useDateFormat(t[0], 'YYYY-MM-DD'); - formObj.value.csEndTime = useDateFormat(t[1], 'YYYY-MM-DD'); - } - return sceneApi - .updateSubScene(props.sceneType, formObj.value) - .then((res) => { - emit('onSubmit', formObj); - emit('update:formInfo', formObj); - return res.data; - }) - .finally(() => { - loading.value = false; - }); -} - -// 鏇存柊鍦烘櫙 -function updateScene() { - return sceneApi.updateScene(sceneObj.value).then(() => { - emit('update:scene', sceneObj); - }); -} - +const baseSceneInfo = ref(null); function submit() { - updateScene(); - return createOrupdateSubScene(); + return baseSceneInfo.value.submit(); } function cancel() { diff --git a/src/views/fysp/scene/CompSceneMixingPlantInfo.vue b/src/views/fysp/scene/CompSceneMixingPlantInfo.vue new file mode 100644 index 0000000..602a35f --- /dev/null +++ b/src/views/fysp/scene/CompSceneMixingPlantInfo.vue @@ -0,0 +1,338 @@ +<!-- 鎼呮媽绔欎笓灞炰俊鎭紪杈� --> +<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> diff --git a/src/views/fysp/scene/CompSceneWharfInfo.vue b/src/views/fysp/scene/CompSceneWharfInfo.vue new file mode 100644 index 0000000..d37487f --- /dev/null +++ b/src/views/fysp/scene/CompSceneWharfInfo.vue @@ -0,0 +1,305 @@ +<!-- 鐮佸ご涓撳睘淇℃伅缂栬緫 --> +<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="wProjectType"> + <el-input + clearable + v-model="formObj.wProjectType" + placeholder="绫诲瀷" + /> + </el-form-item> + <!-- <el-form-item label="杩愯惀鐘舵��" prop="wStatus"> + <el-select v-model="formObj.wStatus" 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="wEmployerUnit"> + <el-input + clearable + v-model="formObj.wEmployerUnit" + placeholder="涓氫富鍗曚綅" + /> + </el-form-item> + <el-form-item label="涓氫富鍗曚綅鑱旂郴浜�" prop="wEmployerContacts"> + <el-input + clearable + v-model="formObj.wEmployerContacts" + placeholder="涓氫富鍗曚綅鑱旂郴浜�" + /> + </el-form-item> + <el-form-item + label="涓氫富鍗曚綅鑱旂郴鐢佃瘽" + prop="wEmployerContactsTel" + class="input-with-select" + > + <el-input + clearable + type="tel" + v-model="formObj.wEmployerContactsTel" + placeholder="涓氫富鍗曚綅鑱旂郴鐢佃瘽" + > + <template #prepend> + <el-icon><Iphone /></el-icon> + </template> + </el-input> + </el-form-item> + <el-form-item label="绉熻祦鍗曚綅" prop="wRentUnit"> + <el-input + clearable + v-model="formObj.wRentUnit" + placeholder="绉熻祦鍗曚綅" + /> + </el-form-item> + <el-form-item label="绉熻祦鍗曚綅鑱旂郴浜�" prop="wRentContacts"> + <el-input + clearable + v-model="formObj.wRentContacts" + placeholder="绉熻祦鍗曚綅鑱旂郴浜�" + /> + </el-form-item> + <el-form-item label="绉熻祦鍗曚綅鑱旂郴浜虹數璇�" prop="wRentContactsTel"> + <el-input + clearable + type="tel" + v-model="formObj.wRentContactsTel" + placeholder="绉熻祦鍗曚綅鑱旂郴浜虹數璇�" + > + <template #prepend> + <el-icon><Iphone /></el-icon> + </template> + </el-input> + </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 + :disabled="!edit && !ignoreEdit" + :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="绫诲瀷" :span="2" + ><el-input + :size="fontSize" + clearable + v-model="formObj.wProjectType" + placeholder="绫诲瀷" + /></el-descriptions-item> + <el-descriptions-item label="鍗犲湴闈㈢Н" + ><el-input + :size="fontSize" + clearable + v-model="formObj.wFloorSpace" + placeholder="鍗犲湴闈㈢Н" + > + <template #append>銕�</template> + </el-input></el-descriptions-item + > + <el-descriptions-item label="瑙勫垝闈㈢Н" + ><el-input + :size="fontSize" + clearable + v-model="formObj.wPlanningArea" + placeholder="瑙勫垝闈㈢Н" + > + <template #append>銕�</template> + </el-input></el-descriptions-item + > + <el-descriptions-item label="涓氫富鍗曚綅"> + <el-input + clearable + v-model="formObj.wEmployerUnit" + placeholder="涓氫富鍗曚綅" + /> + </el-descriptions-item> + <el-descriptions-item label="涓氫富鍗曚綅鑱旂郴浜�"> + <el-input + clearable + v-model="formObj.wEmployerContacts" + placeholder="涓氫富鍗曚綅鑱旂郴浜�" + /> + </el-descriptions-item> + <el-descriptions-item + label="涓氫富鍗曚綅鑱旂郴鐢佃瘽" + prop="mpEmployerContactsTel" + class="input-with-select" + :span="2" + > + <el-input + clearable + type="tel" + v-model="formObj.wEmployerContactsTel" + placeholder="涓氫富鍗曚綅鑱旂郴鐢佃瘽" + > + <template #prepend> + <el-icon><Iphone /></el-icon> + </template> + </el-input> + </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-item label="绉熻祦鍗曚綅" + ><el-input + :size="fontSize" + clearable + v-model="formObj.wRentUnit" + placeholder="绉熻祦鍗曚綅" + /></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> -- Gitblit v1.9.3