From 36c3a0fe4f6750891cb69f9622e141b2f74f38b9 Mon Sep 17 00:00:00 2001 From: hcong <1050828145@qq.com> Date: 星期五, 15 十一月 2024 17:01:58 +0800 Subject: [PATCH] 码头搅拌站模版导出 --- src/views/fysp/scene/CompSceneConstructionInfo.vue | 692 ++++++++++++++++++++++++++++----------------------------- 1 files changed, 337 insertions(+), 355 deletions(-) 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() { -- Gitblit v1.9.3