| | |
| | | <!-- åºæ¯åºæ¬ä¿¡æ¯ç¼è¾ --> |
| | | <template> |
| | | <FYForm |
| | | :form-info="_formInfo" |
| | | :rules="rules" |
| | | @submit="submit" |
| | | @cancel="cancel" |
| | | > |
| | | <FYForm :form-info="_formInfo" :rules="rules" @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-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-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-form-item> |
| | | <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-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="èç³»çµè¯"> |
| | |
| | | </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" /> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { defineProps, defineEmits, reactive, ref, watch } from 'vue'; |
| | | import { enumScene } from '@/enum/scene'; |
| | | import { enumLocation } from '@/enum/location'; |
| | | import sceneApi from '@/api/fysp/sceneApi'; |
| | | import { defineProps, defineEmits, reactive, ref, watch } from 'vue' |
| | | import { enumScene } from '@/enum/scene' |
| | | import { enumLocation } from '@/enum/location' |
| | | import sceneApi from '@/api/fysp/sceneApi' |
| | | |
| | | const props = defineProps({ |
| | | //åºæ¯åºæ¬ä¿¡æ¯ |
| | | formInfo: Object, |
| | | //æ¯å建æè
æ´æ°åºæ¯ |
| | | create: Boolean, |
| | | }); |
| | | create: Boolean |
| | | }) |
| | | |
| | | const emit = defineEmits(['onSubmit', 'onCancel']); |
| | | const emit = defineEmits(['onSubmit', 'onCancel']) |
| | | |
| | | const _formInfo = ref(); |
| | | const sceneTypes = reactive(enumScene(2, false)); |
| | | const locations = reactive(enumLocation(false)); |
| | | const _formInfo = ref() |
| | | const sceneTypes = reactive(enumScene(2, false)) |
| | | const locations = reactive(enumLocation(false)) |
| | | const cascaderProps = reactive({ |
| | | checkStrictly: true, |
| | | }); |
| | | checkStrictly: true |
| | | }) |
| | | const rules = reactive({ |
| | | name: [ |
| | | { |
| | | required: true, |
| | | message: 'åºæ¯åç§°ä¸è½ä¸ºç©º', |
| | | trigger: 'blur', |
| | | }, |
| | | trigger: 'blur' |
| | | } |
| | | ], |
| | | _typeObj: [ |
| | | { |
| | | required: true, |
| | | message: 'åºæ¯ç±»åä¸è½ä¸ºç©º', |
| | | trigger: 'change', |
| | | }, |
| | | trigger: 'change' |
| | | } |
| | | ], |
| | | _locations: [ |
| | | { |
| | | required: true, |
| | | message: 'è¡æ¿åºåä¸è½ä¸ºç©º', |
| | | trigger: 'change', |
| | | }, |
| | | trigger: 'change' |
| | | } |
| | | ], |
| | | longitude: [ |
| | | { |
| | | required: true, |
| | | message: 'ç»åº¦ä¸è½ä¸ºç©º', |
| | | trigger: 'blur', |
| | | }, |
| | | trigger: 'blur' |
| | | } |
| | | ], |
| | | latitude: [ |
| | | { |
| | | required: true, |
| | | message: '纬度ä¸è½ä¸ºç©º', |
| | | trigger: 'blur', |
| | | }, |
| | | ], |
| | | }); |
| | | trigger: 'blur' |
| | | } |
| | | ] |
| | | }) |
| | | |
| | | /** |
| | | * åºæ¯åºæ¬ä¿¡æ¯æ ¼å¼å |
| | |
| | | function parseSceneBaseInfo(s) { |
| | | s._typeObj = { |
| | | label: s.type, |
| | | value: s.typeid + '', |
| | | }; |
| | | value: s.typeid + '' |
| | | } |
| | | |
| | | s._locations = []; |
| | | 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]); |
| | | 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.push([s.districtcode, s.districtname]) |
| | | if (s.towncode && s.towncode.length > 0) s._locations.push([s.towncode, s.townname]) |
| | | |
| | | s.online = s.extension1 != '0'; |
| | | s.online = s.extension1 != '0' |
| | | |
| | | return s; |
| | | return s |
| | | } |
| | | // å建æ°åºæ¯ |
| | | function createScene(formObj, func) { |
| | | return sceneApi |
| | | .createScene(formObj.value) |
| | | .then(() => { |
| | | emit('onSubmit', formObj); |
| | | emit('onSubmit', formObj) |
| | | }) |
| | | .finally(() => { |
| | | func(); |
| | | }); |
| | | func() |
| | | }) |
| | | } |
| | | // æ´æ°åºæ¯ |
| | | function updateScene(formObj, func) { |
| | | return sceneApi |
| | | .updateScene(formObj.value) |
| | | .then(() => { |
| | | emit('onSubmit', formObj); |
| | | emit('onSubmit', formObj) |
| | | }) |
| | | .finally(() => { |
| | | func(); |
| | | }); |
| | | func() |
| | | }) |
| | | } |
| | | function submit(formObj, func) { |
| | | // è¡æ¿åºåä¿¡æ¯å¡«å
|
| | | const a = formObj.value._locations; |
| | | const a = formObj.value._locations |
| | | if (a[0]) { |
| | | formObj.value.provincecode = a[0][0]; |
| | | formObj.value.provincename = a[0][1]; |
| | | formObj.value.provincecode = a[0][0] |
| | | formObj.value.provincename = a[0][1] |
| | | } |
| | | if (a[1]) { |
| | | formObj.value.citycode = a[1][0]; |
| | | formObj.value.cityname = a[1][1]; |
| | | formObj.value.citycode = a[1][0] |
| | | formObj.value.cityname = a[1][1] |
| | | } |
| | | if (a[2]) { |
| | | formObj.value.districtcode = a[2][0]; |
| | | formObj.value.districtname = a[2][1]; |
| | | formObj.value.districtcode = a[2][0] |
| | | formObj.value.districtname = a[2][1] |
| | | } |
| | | if (a[3]) { |
| | | formObj.value.towncode = a[3][0]; |
| | | formObj.value.townname = a[3][1]; |
| | | formObj.value.towncode = a[3][0] |
| | | formObj.value.townname = a[3][1] |
| | | } |
| | | |
| | | // åºæ¯ç±»åä¿¡æ¯å¡«å
|
| | | const b = formObj.value._typeObj; |
| | | formObj.value.typeid = b.value; |
| | | formObj.value.type = b.label; |
| | | const b = formObj.value._typeObj |
| | | formObj.value.typeid = b.value |
| | | formObj.value.type = b.label |
| | | |
| | | // æ¯å¦å¨çº¿ä¿¡æ¯å¡«å
|
| | | formObj.value.online |
| | | ? (formObj.value.extension1 = '1') |
| | | : (formObj.value.extension1 = '0'); |
| | | formObj.value.online ? (formObj.value.extension1 = '1') : (formObj.value.extension1 = '0') |
| | | |
| | | formObj.value.updatedate = new Date().toISOString(); |
| | | formObj.value.updatedate = new Date().toISOString() |
| | | |
| | | emit('onSubmit', formObj); |
| | | emit('onSubmit', formObj) |
| | | |
| | | return props.create ? createScene(formObj, func) : updateScene(formObj, func); |
| | | return props.create ? createScene(formObj, func) : updateScene(formObj, func) |
| | | } |
| | | function cancel() { |
| | | emit('onCancel'); |
| | | emit('onCancel') |
| | | } |
| | | |
| | | // çå¬ä¼ å
¥çåºæ¯åºæ¬ä¿¡æ¯ï¼åç¸åºçæ°æ®æ ¼å¼å |
| | | watch( |
| | | () => props.formInfo, |
| | | (nValue) => { |
| | | _formInfo.value = parseSceneBaseInfo(nValue); |
| | | _formInfo.value = parseSceneBaseInfo(nValue) |
| | | } |
| | | ); |
| | | ) |
| | | </script> |
| | | |
| | | <style scoped></style> |