daily pastebin goal
36%
SHARE
TWEET

Untitled

a guest Jan 16th, 2019 68 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <template>
  2.   <el-dialog title="Edycja fazy"
  3.              :visible.sync="isVisible"
  4.              width="25%"
  5.              class="app-modal">
  6.  
  7.     <div class="modal__content">
  8.       <el-form ref="stageDto"
  9.                :model="stageDto"
  10.                label-width="120px">
  11.  
  12.         <el-form-item label="Priority" prop="priority">
  13.           <el-input-number v-model="stageDto.priority" controls-position="right"
  14.                            :min="1"
  15.                            :max="10">
  16.  
  17.           </el-input-number>
  18.         </el-form-item>
  19.  
  20.         <el-form-item label="Probability" prop="probability">
  21.           <el-input-number v-model="stageDto.probability"
  22.                            controls-position="right"
  23.                            :precision="1"
  24.                            :step="0.1"
  25.                            :min="0.0"
  26.                            :max="1.0">
  27.  
  28.           </el-input-number>
  29.         </el-form-item>
  30.  
  31.         <el-form-item label="Description" prop="description">
  32.           <el-input type="textarea" v-model="stageDto.description"></el-input>
  33.         </el-form-item>
  34.  
  35.         <el-form-item label="Employees">
  36.           <el-popover v-for="(involvement,i) in stageDto.assignedInvolvements"
  37.                       :key="i"
  38.                       placement="top"
  39.                       width="300">
  40.  
  41.             <div style="text-align: center; margin: 0">
  42.               <p>Involvement</p>
  43.               <el-slider v-model="involvement.involvement"></el-slider>
  44.             </div>
  45.             <div style="text-align: center; margin: 0">
  46.               <p>Probability</p>
  47.               <el-input-number v-model="involvement.probability"
  48.                                controls-position="left"
  49.                                :precision="1"
  50.                                :step="0.1"
  51.                                :min="0.0"
  52.                                :max="1.0">
  53.  
  54.               </el-input-number>
  55.             </div>
  56.  
  57.             <div style="text-align: center; margin-top: 10px">
  58.               <el-button type="danger"
  59.                          @click="deleteInvolvement(involvement)">
  60.  
  61.                 Delete this involvement
  62.               </el-button>
  63.             </div>
  64.  
  65.             <el-button type="success"
  66.                        size="mini"
  67.                        round slot="reference">
  68.               {{involvement.firstName + ' ' +
  69.               involvement.lastName + ' || ' + involvement.probability + '/' +
  70.               involvement.involvement +
  71.               '%'}}
  72.             </el-button>
  73.           </el-popover>
  74.         </el-form-item>
  75.  
  76.         <el-form-item label="Add employees">
  77.  
  78.           <el-select v-model="newInvolvements"
  79.                      multiple
  80.                      filterable
  81.                      placeholder="Type employees">
  82.  
  83.             <el-option
  84.               v-for="item in possibleEmployees"
  85.               :key="item.code"
  86.               :label="item.firstName + ' ' + item.lastName"
  87.               :value="item.code">
  88.             </el-option>
  89.           </el-select>
  90.         </el-form-item>
  91.         <el-form-item label="Set changes to:">
  92.           <el-select v-model="setChangesToMonth" filterable
  93.                      placeholder="Type month">
  94.             <el-option
  95.               v-for="item in changesEndingMonths"
  96.               :key="item"
  97.               :label="item"
  98.               :value="item">
  99.             </el-option>
  100.           </el-select>
  101.         </el-form-item>
  102.         <el-form-item>
  103.           <el-button type="info" @click="submitForm()">Submit</el-button>
  104.         </el-form-item>
  105.       </el-form>
  106.     </div>
  107.   </el-dialog>
  108. </template>
  109.  
  110. <script>
  111. import store from '@/store/store';
  112. import axios from 'axios';
  113. import moment from 'moment';
  114.  
  115. export default {
  116.     name: 'AppModal',
  117.     data() {
  118.         return {
  119.             newInvolvements: [],
  120.             setChangesToMonth: ''
  121.         }
  122.     },
  123.     methods: {
  124.         deleteInvolvement(involvement) {
  125.             for (var i = 0; i < this.stageDto.assignedInvolvements.length; i++) {
  126.                 if (this.stageDto.assignedInvolvements[i] === involvement) {
  127.                     this.stageDto.assignedInvolvements.splice(i, 1);
  128.                 }
  129.             }
  130.         },
  131.         async submitForm() {
  132.             for (var i = 0; i < this.newInvolvements.length; i++) {
  133.                 var promise = await axios.get(`/api/employees/${this.newInvolvements[i]}`)
  134.                     .then(response => {
  135.                         var involvementDto = {};
  136.                         involvementDto.involvement = 100;
  137.                         involvementDto.probability = 1;
  138.                         involvementDto.firstName = response.data.firstName;
  139.                         involvementDto.lastName = response.data.lastName;
  140.                         involvementDto.employeeCode = response.data.code;
  141.                         this.stageDto.assignedInvolvements.push(involvementDto);
  142.                     });
  143.             }
  144.             axios.post(`/api/stages/edit`, store.state.Modal.stageDto);
  145.             store.commit('toggleModal');
  146.             const phases = await store.dispatch('getProjectPhases', store.state.Modal.projectCode);
  147.             store.commit('updatePhases', {
  148.                 phasesArr: phases,
  149.                 projectCode: store.state.Modal.projectCode
  150.             });
  151.  
  152.             var startEditDate = moment(this.stageDto.startDate).add(1, 'day');
  153.             var endEditDate = moment(this.stageDto.startDate).set('month', this.setChangesToMonth).add(1, 'month').subtract(1, 'day');
  154.             let editedStage = {};
  155.             while (startEditDate.isBefore(endEditDate)) {
  156.                 var p2 = await axios.get(`/api/stages/one/${this.projectCode}?endingAfter=${startEditDate.format('YYYY-MM-DD')}`)
  157.                     .then(response => {
  158.                         Object.assign(editedStage, response.data);
  159.                         for (var i = 0; i < this.stageDto.assignedInvolvements.length; i++) {
  160.                             console.log('sraka');
  161.                             if (this.stageDto.assignedInvolvements[i].code === undefined) {
  162.                                 editedStage.assignedInvolvements.push(this.stageDto.assignedInvolvements[i]);
  163.                                 console.log('pedau');
  164.                                 editedStage.assignedInvolvements[i].done = true;
  165.                             } else {
  166.                                 for (var j = 0; j < editedStage.assignedInvolvements.length; j++) {
  167.                                     if (editedStage.assignedInvolvements[j].firstName === this.stageDto.assignedInvolvements[i].firstName &&
  168.                                         editedStage.assignedInvolvements[j].lastName === this.stageDto.assignedInvolvements[i].lastName) {
  169.                                         console.log('pedau');
  170.                                         editedStage.assignedInvolvements[j].involvement =
  171.                                             this.stageDto.assignedInvolvements[i].involvement;
  172.                                         editedStage.assignedInvolvements[j].probability =
  173.                                             this.stageDto.assignedInvolvements[i].probability;
  174.                                         editedStage.assignedInvolvements[j].employeeCode =
  175.                                             this.stageDto.assignedInvolvements[i].employeeCode;
  176.                                         editedStage.assignedInvolvements[j].done = true;
  177.                                     }
  178.                                 }
  179.                             }
  180.                         }
  181.                         for (var k = 0; k < editedStage.assignedInvolvements.length; k++) {
  182.                             if (editedStage.assignedInvolvements[k].done === undefined) {
  183.                                 editedStage.assignedInvolvements.splice(k, 1);
  184.                             }
  185.                         }
  186.                         console.log(editedStage.assignedInvolvements);
  187.                         editedStage.priority = this.stageDto.priority;
  188.                         editedStage.probability = this.stageDto.probability;
  189.                         axios.post(`/api/stages/edit`, editedStage);
  190.                     });
  191.                 startEditDate.add(1, 'month');
  192.             }
  193.             this.setChangesToMonth = '';
  194.  
  195.         }
  196.     },
  197.     computed: {
  198.         isVisible: {
  199.             get: () => store.state.Modal.isVisible,
  200.             set: () => store.commit('toggleModal')
  201.         },
  202.         stageDto: () => store.state.Modal.stageDto,
  203.         possibleEmployees: () => store.state.Employees.possibleEmployees,
  204.         projectCode: () => store.state.Modal.projectCode,
  205.         possibleEmployees: () => store.state.Employees.possibleEmployees,
  206.         changesEndingMonths: () => store.state.Modal.monthsForward
  207.     }
  208.  
  209. }
  210. </script>
  211.  
  212. <style scoped lang="scss">
  213. </style>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top