| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | 
							- <template>
 -   <div>
 -     <div v-if="!edit" class="input-group-prepend">
 -       <input class="form-control" v-model="myDisplay" disabled />
 -       <span
 -         v-if="mayEdit"
 -         @click="EditClick()"
 -         class="input-group-text spanCursor"
 -         style="color: #60CBEB"
 -       >
 -         <eva-icon name="edit-outline" fill="#60CBEB"></eva-icon>
 -       </span>
 -     </div>
 -     <div v-if="edit" class="input-group-prepend">
 -       <input v-if="type === 'text'" class="form-control" v-model="value" />
 -       <input v-if="type === 'number'" type="number" class="form-control" v-model="value" />
 -       <select v-if="type === 'select'" class="form-control" @change="selectionClick">
 -         <option>Please select</option>
 -         <option
 -           v-for="option in selectOptions"
 -           :value="option[selectValue]"
 -           :key="option[selectValue]"
 -           >{{ option[selectText] }}</option
 -         >
 -       </select>
 -       <select v-if="type === 'selectlist'" class="form-control" v-model="value">
 -         <option v-for="item in selectOptions" :value="item" :key="item">{{ item }}</option>
 -       </select>
 -       <!-- <Datetime class="form-control" v-if="type === 'datetime'" v-model="value" /> -->
 -       <span
 -         v-if="edit"
 -         @click="UpdateValue()"
 -         class="input-group-text spanCursor"
 -         style="color: #60CBEB"
 -       >
 -         <eva-icon name="checkmark-outline" fill="#60CBEB"></eva-icon>
 -       </span>
 -       <span v-if="edit" @click="Close()" class="input-group-text spanCursor" style="color: #60CBEB">
 -         <eva-icon name="close-outline" fill="#60CBEB"></eva-icon>
 -       </span>
 -     </div>
 -   </div>
 - </template>
 - 
 - <script>
 - export default {
 -   props: ['value', 'type', 'mayEdit', 'selectOptions', 'selectValue', 'selectText', 'display'],
 -   data() {
 -     return {
 -       edit: false,
 -       myDisplay: '',
 -     };
 -   },
 -   methods: {
 -     UpdateValue() {
 -       this.edit = false;
 -       if (this.type !== 'select' && this.value) {
 -         this.$emit('input', this.value);
 -         this.$emit('change', this.value);
 -       }
 -     },
 -     EditClick() {
 -       this.edit = true;
 -     },
 -     Close() {
 -       this.edit = false;
 -     },
 -     selectionClick(item) {
 -       if (item.target.options.selectedIndex > 0) {
 -         if (!this.value) {
 -           this.myDisplay = this.selectOptions[item.target.options.selectedIndex - 1][
 -             this.selectText
 -           ];
 -         }
 -         if (this.selectOptions[item.target.options.selectedIndex - 1]) {
 -           this.$emit('input', this.selectOptions[item.target.options.selectedIndex - 1]);
 -           this.$emit('change', this.selectOptions[item.target.options.selectedIndex - 1]);
 -         }
 -       }
 -     },
 -   },
 -   mounted() {
 -     if (this.value) {
 -       // eslint-disable-next-line vue/no-side-effects-in-computed-properties
 -       this.myDisplay = this.value;
 -     }
 -     if (this.value && this.selectText) {
 -       // eslint-disable-next-line vue/no-side-effects-in-computed-properties
 -       this.myDisplay = this.value[this.selectText];
 -     }
 -     if (this.display) {
 -       this.myDisplay = this.display;
 -     }
 -   },
 -   computed: {
 -     // eslint-disable-next-line vue/return-in-computed-property
 -     checkValue() {
 -       if (this.value) {
 -         // eslint-disable-next-line vue/no-side-effects-in-computed-properties
 -         this.myDisplay = this.value;
 -       }
 -       if (this.value && this.selectText) {
 -         // eslint-disable-next-line vue/no-side-effects-in-computed-properties
 -         this.myDisplay = this.value[this.selectText];
 -       }
 -       if (this.display) {
 -         // eslint-disable-next-line vue/no-side-effects-in-computed-properties
 -         this.myDisplay = this.display;
 -       }
 -     },
 -   },
 -   watch: {
 -     checkValue() {
 -       return null;
 -     },
 -   },
 - };
 - </script>
 
 
  |