110 lines
2.1 KiB
Vue
110 lines
2.1 KiB
Vue
<template>
|
|
<div
|
|
class="figure penis"
|
|
>
|
|
<div class="value-section">
|
|
<span class="value-label">Units</span>
|
|
|
|
<select
|
|
:value="units"
|
|
class="input"
|
|
:disabled="!editing.has('penis')"
|
|
@change="emit('units', $event.target.value)"
|
|
>
|
|
<option value="imperial">Imperial</option>
|
|
<option value="metric">Metric</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="value-section">
|
|
<span class="value-label">Penis length</span>
|
|
|
|
<span v-if="units === 'metric'">
|
|
<input
|
|
v-model="penis.metricLength"
|
|
type="number"
|
|
class="volume input"
|
|
min="1"
|
|
max="30"
|
|
:disabled="!editing.has('penis')"
|
|
> cm
|
|
</span>
|
|
|
|
<span v-if="units === 'imperial'">
|
|
<input
|
|
v-model="penis.imperialLength"
|
|
type="number"
|
|
class="volume input"
|
|
min="1"
|
|
max="30"
|
|
:disabled="!editing.has('penis')"
|
|
> inch
|
|
</span>
|
|
</div>
|
|
|
|
<div class="value-section">
|
|
<span class="value-label">Penis girth</span>
|
|
|
|
<span v-if="units === 'metric'">
|
|
<input
|
|
v-model="penis.metricGirth"
|
|
type="number"
|
|
class="volume input"
|
|
min="1"
|
|
max="30"
|
|
:disabled="!editing.has('penis')"
|
|
> cm
|
|
</span>
|
|
|
|
<span v-if="units === 'imperial'">
|
|
<input
|
|
v-model="penis.imperialGirth"
|
|
type="number"
|
|
class="volume input"
|
|
min="1"
|
|
max="30"
|
|
:disabled="!editing.has('penis')"
|
|
> inch
|
|
</span>
|
|
</div>
|
|
|
|
<div class="value-section">
|
|
<span class="value-label">Circumcised</span>
|
|
|
|
<select
|
|
v-model="penis.isCircumcised"
|
|
class="input"
|
|
:disabled="!editing.has('penis')"
|
|
>
|
|
<option :value="null" />
|
|
<option :value="true">Yes</option>
|
|
<option :value="false">No</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { reactive, watch } from 'vue';
|
|
|
|
const props = defineProps({
|
|
edits: {
|
|
type: Object,
|
|
default: null,
|
|
},
|
|
editing: {
|
|
type: Set,
|
|
default: null,
|
|
},
|
|
units: {
|
|
type: String,
|
|
default: null,
|
|
},
|
|
});
|
|
|
|
const emit = defineEmits(['penis', 'units']);
|
|
const penis = reactive(props.edits.penis);
|
|
|
|
watch(penis, () => emit('penis', penis));
|
|
</script>
|