src/components.d.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/fysp/data-product/ProdSceneReport.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/fysp/evaluation/components/precheck/CompPreCheck.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/fysp/scene/BaseSceneInfo.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/fysp/scene/CompSceneConstructionInfo.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/fysp/scene/CompSceneMixingPlantInfo.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/fysp/scene/CompSceneWharfInfo.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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'] 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'; 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; 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> 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() { 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> 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>