From d1ce79c837650689ab47bbf587d076743fcb3a5f Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期一, 19 五月 2025 17:25:38 +0800 Subject: [PATCH] 1. 问题审核界面新增场景信息编辑入口 2. 问题审核界面场景图片查询新增图片类型修改功能 --- src/views/fysp/scene/CompSceneBaseInfo.vue | 162 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 99 insertions(+), 63 deletions(-) diff --git a/src/views/fysp/scene/CompSceneBaseInfo.vue b/src/views/fysp/scene/CompSceneBaseInfo.vue index 602aaf9..bf4ce56 100644 --- a/src/views/fysp/scene/CompSceneBaseInfo.vue +++ b/src/views/fysp/scene/CompSceneBaseInfo.vue @@ -1,29 +1,45 @@ <!-- 鍦烘櫙鍩烘湰淇℃伅缂栬緫 --> <template> - <FYForm :form-info="formInfo" :rules="rules" :useReset="true" @submit="submit" @cancel="cancel"> + <FYForm + :form-info="formInfo" + :rules="rules" + :useReset="true" + @submit="submit" + @cancel="cancel" + > <template #form-item="{ formObj }"> <el-form-item label="鍦烘櫙鍚嶇О" prop="name"> - <el-input clearable show-word-limit v-model="formObj.name" placeholder="鍦烘櫙鍚嶇О" /> - </el-form-item> - <el-form-item label="鍦烘櫙绫诲瀷" prop="_typeObj"> - <el-select v-model="formObj._typeObj" placeholder="鍦烘櫙绫诲瀷"> - <el-option v-for="s in sceneTypes" :key="s.value" :label="s.label" :value="s" /> - </el-select> - </el-form-item> - <el-form-item label="鐪�/甯�/鍖�/闀�" prop="_locations"> - <el-cascader - v-model="formObj._locations" - :options="locations" - placeholder="鐪�/甯�/鍖�/闀�" - style="width: 300px" - :props="cascaderProps" + <el-input + clearable + show-word-limit + v-model="formObj.name" + placeholder="鍦烘櫙鍚嶇О" /> </el-form-item> + <!-- 鍦烘櫙绫诲瀷 --> + <FYOptionScene + :allOption="false" + :type="2" + :initValue="false" + v-model:value="formObj._scenetype" + ></FYOptionScene> + <!-- 鍖哄幙 --> + <FYOptionLocation + :allOption="false" + :level="4" + :initValue="false" + :checkStrictly="true" + v-model:value="formObj._locations" + ></FYOptionLocation> <el-form-item label="鍦板潃" prop="location"> - <el-input show-word-limit clearable v-model="formObj.location" placeholder="鍦板潃" /> + <el-input + show-word-limit + clearable + v-model="formObj.location" + placeholder="鍦板潃" + /> </el-form-item> <el-form-item label="缁忓害" prop="longitude"> - <!-- <el-input type="number" v-model="formObj.longitude" placeholder="缁忓害" /> --> <el-input-number v-model="formObj.longitude" :precision="6" @@ -32,7 +48,6 @@ /> </el-form-item> <el-form-item label="绾害" prop="latitude"> - <!-- <el-input type="number" v-model="formObj.latitude" placeholder="绾害" /> --> <el-input-number v-model="formObj.latitude" :precision="6" @@ -41,7 +56,12 @@ /> </el-form-item> <el-form-item label="鑱旂郴浜�" prop="contacts"> - <el-input show-word-limit clearable v-model="formObj.contacts" placeholder="鑱旂郴浜�" /> + <el-input + show-word-limit + clearable + v-model="formObj.contacts" + placeholder="鑱旂郴浜�" + /> </el-form-item> <el-form-item label="鑱旂郴鐢佃瘽" prop="contactst"> <el-input type="tel" v-model="formObj.contactst" placeholder="鑱旂郴鐢佃瘽"> @@ -54,7 +74,9 @@ </el-form-item> <el-form-item label="鐘舵��" prop="online"> <el-switch v-model="formObj.online" /> - <span style="margin-left: 16px">{{ formObj.online ? '鍦ㄧ嚎' : '涓嬬嚎' }}</span> + <span style="margin-left: 16px">{{ + formObj.online ? '鍦ㄧ嚎' : '涓嬬嚎' + }}</span> </el-form-item> <el-form-item label="缂栧彿" prop="index"> <el-input-number readonly v-model="formObj.index" :step="1" :min="0" /> @@ -64,22 +86,31 @@ </template> <script setup> -import { defineProps, defineEmits, reactive, ref, watch, computed } from 'vue'; +import { + defineProps, + defineEmits, + reactive, + ref, + unref, + watch, + computed +} from 'vue'; import { enumScene } from '@/enum/scene'; -import { enumLocation } from '@/enum/location'; import sceneApi from '@/api/fysp/sceneApi'; const props = defineProps({ //鍦烘櫙鍩烘湰淇℃伅 model: { - type: Object, - default: () => { - return {}; - } + type: Object + // default: () => { + // return {}; + // } }, //鏄垱寤烘垨鑰呮洿鏂板満鏅� create: Boolean }); + +// const formInfo = ref(); // 鍦烘櫙鍩烘湰淇℃伅锛屽仛鐩稿簲鐨勬暟鎹牸寮忓寲 const formInfo = computed(() => { @@ -88,11 +119,16 @@ const emit = defineEmits(['onSubmit', 'onCancel']); -const sceneTypes = reactive(enumScene(2, false)); -const locations = reactive(enumLocation(false)); -const cascaderProps = reactive({ - checkStrictly: true -}); +// watch( +// () => props.model, +// (nV, oV) => { +// if (nV != oV && nV) { +// formInfo.value = parseSceneBaseInfo(nV); + +// } +// } +// ); + const rules = reactive({ name: [ { @@ -101,7 +137,7 @@ trigger: 'blur' } ], - _typeObj: [ + _scenetype: [ { required: true, message: '鍦烘櫙绫诲瀷涓嶈兘涓虹┖', @@ -136,21 +172,27 @@ * 瀵瑰満鏅被鍨嬨�佸満鏅鏀垮尯鍒掑拰鍦烘櫙鍙敤鐘舵�佽繘琛屾牸寮忓寲 * @param {*} s 鍦烘櫙淇℃伅 */ -function parseSceneBaseInfo(s) { - s._typeObj = { - label: s.type, - value: s.typeid + '' - }; +function parseSceneBaseInfo(param) { + const s = unref(param); + if (s) { + s._scenetype = { + label: s.type, + value: s.typeid + '' + }; - s._locations = []; - if (s.provincecode && s.provincecode.length > 0) - s._locations.push([s.provincecode, s.provincename]); - if (s.citycode && s.citycode.length > 0) s._locations.push([s.citycode, s.cityname]); - if (s.districtcode && s.districtcode.length > 0) - s._locations.push([s.districtcode, s.districtname]); - if (s.towncode && s.towncode.length > 0) s._locations.push([s.towncode, s.townname]); + s._locations = { + pCode: s.provincecode, + pName: s.provincename, + cCode: s.citycode, + cName: s.cityname, + dCode: s.districtcode, + dName: s.districtname, + tCode: s.towncode, + tName: s.townname + }; - s.online = s.extension1 != '0'; + s.online = s.extension1 != '0'; + } return s; } @@ -181,25 +223,17 @@ function submit(v, success, fail) { // 琛屾斂鍖哄垝淇℃伅濉厖 const a = v.value._locations; - if (a[0]) { - v.value.provincecode = a[0][0]; - v.value.provincename = a[0][1]; - } - if (a[1]) { - v.value.citycode = a[1][0]; - v.value.cityname = a[1][1]; - } - if (a[2]) { - v.value.districtcode = a[2][0]; - v.value.districtname = a[2][1]; - } - if (a[3]) { - v.value.towncode = a[3][0]; - v.value.townname = a[3][1]; - } + v.value.provincecode = a.pCode; + v.value.provincename = a.pName; + v.value.citycode = a.cCode; + v.value.cityname = a.cName; + v.value.districtcode = a.dCode; + v.value.districtname = a.dName; + v.value.towncode = a.tCode; + v.value.townname = a.tName; // 鍦烘櫙绫诲瀷淇℃伅濉厖 - const b = v.value._typeObj; + const b = v.value._scenetype; v.value.typeid = b.value; v.value.type = b.label; @@ -208,7 +242,9 @@ v.value.updatedate = new Date().toISOString(); - return props.create ? createScene(v.value, success, fail) : updateScene(v.value, success, fail); + return props.create + ? createScene(v.value, success, fail) + : updateScene(v.value, success, fail); } function cancel() { emit('onCancel'); -- Gitblit v1.9.3