Parcourir la source

11/08 16:40

111
mo il y a 5 ans
Parent
commit
bce4b95a80
32 fichiers modifiés avec 355 ajouts et 26 suppressions
  1. 0 0
      dist/index.html
  2. 0 0
      dist/static/js/chunk-00de8e4e.833c2868.js
  3. 0 0
      dist/static/js/chunk-00de8e4e.b0233f4d.js
  4. 0 0
      dist/static/js/chunk-17439fad.873ed180.js
  5. 0 0
      dist/static/js/chunk-21a5b3d9.1d6803bd.js
  6. 0 0
      dist/static/js/chunk-21a5b3d9.7c7b74f5.js
  7. 0 0
      dist/static/js/chunk-2d0b66fc.8344f508.js
  8. 0 0
      dist/static/js/chunk-2d0b66fc.8841957c.js
  9. 0 0
      dist/static/js/chunk-41f382a0.1f77da6b.js
  10. 0 0
      dist/static/js/chunk-421ac128.06a996b0.js
  11. 0 0
      dist/static/js/chunk-421ac128.f45c78df.js
  12. 0 0
      dist/static/js/chunk-4bad1caf.de313e7e.js
  13. 0 0
      dist/static/js/chunk-4bad1caf.f8bbc955.js
  14. 0 0
      dist/static/js/chunk-641dba2d.9b79137d.js
  15. 0 0
      dist/static/js/chunk-641dba2d.cb083b11.js
  16. 0 0
      dist/static/js/chunk-6970ac7a.a016e3eb.js
  17. 0 0
      dist/static/js/chunk-6970ac7a.d1442ef3.js
  18. 0 0
      dist/static/js/chunk-7ca96add.b0ade1ef.js
  19. 0 0
      dist/static/js/chunk-7ca96add.ef9747e0.js
  20. 0 0
      dist/static/js/chunk-7ed8e03b.4907d94b.js
  21. 0 0
      dist/static/js/chunk-7ed8e03b.e98c836f.js
  22. 0 0
      dist/static/js/chunk-98da1dcc.211fb2d3.js
  23. 0 0
      dist/static/js/chunk-b18c1384.3db20912.js
  24. 0 0
      dist/static/js/chunk-b18c1384.f9d265f3.js
  25. 0 0
      dist/static/js/chunk-d1cc038a.6353c417.js
  26. 0 0
      dist/static/js/chunk-d1cc038a.69c38547.js
  27. 0 0
      dist/static/js/chunk-d1dd2788.454c6f0e.js
  28. 0 0
      dist/static/js/chunk-d1dd2788.71a7019a.js
  29. 338 10
      src/views/resetTeaming/components/resetSound.vue
  30. 5 5
      src/views/resetTeaming/index.vue
  31. 10 9
      src/views/teamBuild/components/teamSoundMoney.vue
  32. 2 2
      vue.config.js

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/index.html


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-00de8e4e.833c2868.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-00de8e4e.b0233f4d.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-17439fad.873ed180.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-21a5b3d9.1d6803bd.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-21a5b3d9.7c7b74f5.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-2d0b66fc.8344f508.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-2d0b66fc.8841957c.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-41f382a0.1f77da6b.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-421ac128.06a996b0.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-421ac128.f45c78df.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-4bad1caf.de313e7e.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-4bad1caf.f8bbc955.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-641dba2d.9b79137d.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-641dba2d.cb083b11.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-6970ac7a.a016e3eb.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-6970ac7a.d1442ef3.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-7ca96add.b0ade1ef.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-7ca96add.ef9747e0.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-7ed8e03b.4907d94b.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-7ed8e03b.e98c836f.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-98da1dcc.211fb2d3.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-b18c1384.3db20912.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-b18c1384.f9d265f3.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-d1cc038a.6353c417.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-d1cc038a.69c38547.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-d1dd2788.454c6f0e.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
dist/static/js/chunk-d1dd2788.71a7019a.js


+ 338 - 10
src/views/resetTeaming/components/resetSound.vue

@@ -1,19 +1,165 @@
 <template>
   <div>
-    <el-table :data='tableList'
+    <el-table :data='activeSoundList'
               :header-cell-style="{background:'#EDEEF0',color:'#444'}">
       <el-table-column align='center'
                        width="180px;"
-                       prop="subName"
+                       prop="sound"
                        label="声部名称">
       </el-table-column>
-      <el-table-column align='left'
-                       prop="fee"
+      <el-table-column align='center'
+                       width="180px;"
+                       prop="yuji"
                        label="预计收费">
         <template slot-scope="scope">
           <div>
             <el-input style="width:100px"
-                      v-model="scope.row.fee"></el-input>
+                      v-model="scope.row.yuji"></el-input>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="可选乐器规格"
+                       align="center"
+                       prop="zhonglei"
+                       width="300">
+        <template slot-scope="scope">
+          <!-- 'typeVisible':false,'provideVisible':false,'markVisible':false -->
+          <div>
+            <span>{{scope.row.zhonglei | zhongleiFilter(scope.row.goodsList)}}</span>
+            <el-popover placement="bottom"
+                        @show='chioseType(scope.row)'
+                        v-model="scope.row.typeVisible"
+                        v-if='scope.row.type == 1'>
+              <el-button type="text"
+                         slot='reference'>
+                修改
+              </el-button>
+              <!-- zhonglei -->
+              <el-select v-model="scope.row.zhonglei"
+                         multiple
+                         clearable
+                         collapse-tags>
+                <el-option v-for="(item,index) in scope.row.goodsList"
+                           :key='index'
+                           :label="item.name"
+                           :value="item.id"></el-option>
+              </el-select>
+              <div style="text-align: right; margin-top: 20px">
+                <!-- <el-button size="mini"
+                             type="text"
+                             @click="closechioseType(scope.row)">取消</el-button> -->
+                <el-button type="primary"
+                           size="mini"
+                           @click="scope.row.typeVisible  = false">确定</el-button>
+              </div>
+            </el-popover>
+
+          </div>
+        </template>
+
+      </el-table-column>
+      <el-table-column label="乐器提供方式"
+                       align="center"
+                       prop="fangshi"
+                       width="180">
+        <template slot-scope="scope">
+          <div>
+            <!-- <div class="chiose"
+                  >选择</div> -->
+            <span v-if="scope.row.fangshi">{{scope.row.fangshi | fangshiFilter(scope.row.fangshiprice)}}</span>
+            <el-popover placement="bottom"
+                        v-model="scope.row.provideVisible"
+                        v-if='scope.row.type == 1'>
+              <i class='el-icon-edit'
+                 slot='reference'>
+              </i>
+
+              <el-select v-model="scope.row.fangshi"
+                         clearable>
+                <el-option label="团购"
+                           value="GROUP"></el-option>
+                <el-option label="借用"
+                           value="LEASE"></el-option>
+                <el-option label="免费"
+                           value="FREE"></el-option>
+
+              </el-select>
+              <el-input placeholder="请输入费用"
+                        v-if='scope.row.fangshi == "LEASE"'
+                        v-model="scope.row.fangshiprice"
+                        style='width:180px; margin-top:20px'></el-input>
+              <div style="text-align: right; margin-top: 20px">
+                <!-- <el-button size="mini"
+                             type="text"
+                             @click="scope.row.provideVisible = false">取消</el-button> -->
+                <el-button type="primary"
+                           size="mini"
+                           @click="scope.row.provideVisible  = false">确定</el-button>
+              </div>
+            </el-popover>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column label="教辅组合"
+                       align="center"
+                       prop="jiaopu">
+        <template slot-scope="scope">
+          <div>
+            <el-dialog :visible.sync="scope.row.markVisible"
+                       style="text-align:left;"
+                       width="60%">
+              <el-button type='text'
+                         @click="addMark(scope.row)">添加教辅</el-button>
+              <div class="markWrap">
+                <div class="markItem"
+                     v-for="(item, index) in scope.row.markList"
+                     :key='index'>
+                  <el-form :model="item"
+                           :inline="true">
+                    <el-form-item label="教辅名称">
+                      <el-input type="text"
+                                v-model="item.name"></el-input>
+                    </el-form-item>
+                    <el-form-item label="教辅商品">
+                      <el-select v-model="item.goods"
+                                 multiple
+                                 collapse-tags>
+                        <el-option v-for='(item,index) in scope.row.markChioseList'
+                                   :key='index'
+                                   :label="item.name"
+                                   :value="item.id"></el-option>
+                      </el-select>
+                    </el-form-item>
+                    <el-form-item label="教辅打包价">
+                      <el-input type='number'
+                                v-model="item.price"></el-input>
+                    </el-form-item>
+                    <el-form-item>
+                      <el-button type="danger"
+                                 icon="el-icon-delete"
+                                 circle
+                                 @click='removeMartItem(scope.row,index)'>
+                      </el-button>
+                    </el-form-item>
+                  </el-form>
+                </div>
+              </div>
+              <span slot="footer"
+                    class="dialog-footer">
+                <!-- <el-button @click="scope.row.markVisible = false">取 消</el-button> -->
+                <el-button type="primary"
+                           @click="scope.row.markVisible = false">确 定</el-button>
+              </span>
+            </el-dialog>
+            <span>
+              <span v-for='(item,index) in scope.row.markList'
+                    v-if="item.name && scope.row.markChioseList.length>0"
+                    :key='index'>{{item.name+':'}}{{item.goods|goodsFilter(scope.row.markChioseList)}}{{' 价格 '+item.price }} </span>
+            </span>
+            <i class='el-icon-edit'
+               slot='reference'
+               @click="chioseMark(scope.row)">
+            </i>
           </div>
         </template>
       </el-table-column>
@@ -28,35 +174,217 @@
   </div>
 </template>
 <script>
-import { findMusicGroupSubjectInfo, resetSubjectPlan } from '@/api/buildTeam'
+import { findMusicGroupSubjectInfo, resetSubjectPlan, getSoundTree, getGoods, updateSubjectInfo } from '@/api/buildTeam'
 export default {
   data () {
     return {
       tableList: [],
-      teamid: ''
+      teamid: '',
+      activeSoundList: [],
+      soundList: [],
+      checkList: [],
+      multipleSelection: [], // 列表选择的集合
+
     }
   },
   mounted () {
     // 获取声部信息
     this.teamid = this.$route.query.id
     this.getSound();
-    sessionStorage.setItem('resetCode', '2')
+    sessionStorage.setItem('resetCode', '2');
+
   },
   methods: {
     getSound () {
+
       findMusicGroupSubjectInfo({ musicGroupId: this.teamid }).then(res => {
         if (res.code == 200) {
-          this.tableList = res.data.musicGroupSubjectPlans;
+          this.activeSoundList = res.data.musicGroupSubjectPlans.map(item => {
+            // this.soundLists[0].push(item.subjectId)
+            let obj = { 'id': item.subjectId, 'sound': item.subName, 'jihua': item.expectedStudentNum, 'yuji': item.fee, 'zhonglei': [], 'fangshi': item.kitGroupPurchaseType, 'fangshiprice': item.depositFee, 'jiaopu': '', 'type': 1, 'typeVisible': false, 'provideVisible': false, 'markVisible': false, 'goodsList': [], 'markList': [{ 'name': '', 'goods': [], 'price': '' }], 'markChioseList': [] }
+            return obj;
+          })
+          // 循环列表里的声部 拿取商品
+          for (let i in this.activeSoundList) {
+            for (let j in res.data.musicGroupSubjectGoodsGroups) {
+              if (this.activeSoundList[i].id == res.data.musicGroupSubjectGoodsGroups[j].subjectId) {
+                // 
+                if (res.data.musicGroupSubjectGoodsGroups[j].type == 'INSTRUMENT') {
+                  this.activeSoundList[i].zhonglei = this.activeSoundList[i].zhonglei.concat(res.data.musicGroupSubjectGoodsGroups[j].goodsIdList)
+                  // console.log(this.activeSoundList[i].zhonglei)
+                  this.activeSoundList[i].zhonglei = this.activeSoundList[i].zhonglei.map(item => {
+                    return parseInt(item);
+                  })
+
+                  this.activeSoundList[i].goodsList = this.activeSoundList[i].goodsList.concat(res.data.musicGroupSubjectGoodsGroups[j].goodsList);
+
+                  // goodsList
+
+                }
+                // 拿辅件
+                if (res.data.musicGroupSubjectGoodsGroups[j].type == 'ACCESSORIES') {
+                  if (res.data.musicGroupSubjectGoodsGroups[j].goodsList.length >= 0) {
+                    this.activeSoundList[i].markList = [];
+                    let obj = {};
+                    obj.goods = res.data.musicGroupSubjectGoodsGroups[j].goodsIdList.split(',');
+                    obj.goods = obj.goods.map(item => {
+                      return parseInt(item);
+                    })
+                    obj.name = res.data.musicGroupSubjectGoodsGroups[j].name
+                    obj.price = res.data.musicGroupSubjectGoodsGroups[j].price;
+                    this.activeSoundList[i].markList.push(obj);
+                    // this.activeSoundList[i].markList.goodsList.goods = JSON.parse(res.data.musicGroupSubjectGoodsGroups[j].goodsIdList)
+                    this.activeSoundList[i].markChioseList = this.activeSoundList[i].markChioseList.concat(res.data.musicGroupSubjectGoodsGroups[j].goodsList);
+                  }
+
+                }
+              }
+            }
+          }
         }
       })
     },
     saveInfo () {
-      resetSubjectPlan(this.tableList).then(res => {
+      // 只提交第二页的数据
+      let obj = {};
+      let activeSoundList = this.activeSoundList
+      // 添加商品以及教辅
+      obj.musicGroupId = this.teamid
+      obj.musicGroupStatus = 'PROGRESS';
+      obj.musicGroupSubjectGoodsGroups = []
+      obj.musicGroupSubjectPlans = []
+      activeSoundList.forEach(active => {
+        // 乐器
+        active.zhonglei.forEach(zl => {
+          let goodsItem = []
+          active.goodsList.forEach(goods => {
+            if (goods.id == zl) {
+              goodsItem = goods
+            }
+          })
+          let some = {
+            subjectId: active.id,
+            type: 'INSTRUMENT',
+            goodsIdList: zl,
+            name: goodsItem.name,
+            price: goodsItem.groupPurchasePrice
+          }
+          obj.musicGroupSubjectGoodsGroups.push(some);
+        })
+
+        // 遍历声部里的教辅
+        active.markList.forEach(mark => {
+          if (mark.goods.length >= 1) {
+            let some = {
+              subjectId: active.id,
+              type: 'ACCESSORIES',
+              goodsIdList: mark.goods.join(','),
+              name: mark.name,
+              price: mark.price
+            }
+            obj.musicGroupSubjectGoodsGroups.push(some);
+          }
+        })
+        // 添加声部
+        let item = {
+          expectedStudentNum: active.jihua,
+          fee: active.yuji,
+          kitGroupPurchaseType: active.fangshi,
+          subName: active.sound,
+          subjectId: active.id,
+          depositFee: active.fangshiprice // depositFee  只有租赁才有
+        }
+        obj.musicGroupSubjectPlans.push(item);
+      })
+      // 发请求修改声部信息
+      updateSubjectInfo(obj).then(res => {
         if (res.code == 200) {
+          this.$message.success('提交成功')
+          // this.$router.push({ path: '/business/teamDetail' })
+          this.getSound();
+        }
+      })
 
+    },
+    // 根据声部id查询可选教辅
+    chioseMark (row) {
+      row.markVisible = true
+      let id = row.id;
+      getGoods({ 'subjectId': id, 'type': 'ACCESSORIES' }).then(res => {
+        if (res.code == 200) {
+          row.markChioseList = res.data;
+
+        }
+      })
+    },    // 根据声部id获取可选乐器种类
+    chioseType (row) {
+      // 根据id查询可选类型种类
+      let id = row.id;
+      // 'subjectId': id, ' type'='INSTRUMENT'
+      getGoods({ 'subjectId': id, 'type': 'INSTRUMENT' }).then(res => {
+        if (res.code == 200) {
+          row.goodsList = res.data;
         }
       })
+    },
+
+  }, filters: {
+    zhongleiFilter (val, list) {
+      if (list && list.length <= 0) {
+        return;
+      }
+      let arr = []
+      for (let i = 0; i < list.length; i++) {
+        for (let j = 0; j < val.length; j++) {
+          if (val[j] == list[i].id) {
+            arr.push(list[i].name)
+          }
+        }
+      }
+      if (arr.length > 0) {
+        return arr.join(',')
+      } else {
+        return ''
+      }
+
+    },
+    fangshiFilter (val, price) {
+      let str = ''
+      if (val == 'FREE') {
+        str = '免费'
+        return str;
+      } else if (val == 'GROUP') {
+        str = '团购'
+        return str
+      } else if (val == 'LEASE') {
+        str = '借用'
+      }
+      return str + '费用:' + price
+    },
+    goodsFilter (val, list) {
+      if (list && list.length <= 0) {
+        return '';
+      }
+      let arr = [];
+      for (let i = 0; i < val.length; i++) {
+        for (let j = 0; j < list.length; j++) {
+          if (val[i] == list[j].id) {
+            arr.push(list[j].name);
+          }
+        }
+      }
+      if (arr.length > 0) {
+        return arr.join(',')
+      } else {
+        return ''
+      }
     }
+    // markFilter(val){
+    //   for
+    //   let name = val.name;
+    //   let goods = val.goods.join(',');
+    //   let price = val.price
+    // }
   },
 }
 </script>

+ 5 - 5
src/views/resetTeaming/index.vue

@@ -12,7 +12,7 @@
                      name="1">
           <teamBaseInfo v-if="acitveStatus[0]" />
         </el-tab-pane>
-        <el-tab-pane label="声部修改"
+        <el-tab-pane label="缴费调整"
                      name="2">
           <resetSound v-if="acitveStatus[1]" />
         </el-tab-pane>
@@ -22,11 +22,11 @@
         </el-tab-pane>
         <el-tab-pane label="新增排课"
                      name="4">
-          <!-- <coursePlan :teamid='teamid'
-                      v-if="acitveStatus[3]" /> -->
-          <lookCourse />
+          <coursePlan :teamid='teamid'
+                      v-if="acitveStatus[3]" />
+          <!-- <lookCourse /> -->
         </el-tab-pane>
-        <el-tab-pane label="小班课"
+        <el-tab-pane label="新增小班课"
                      name="5">
           <improvement :teamid='teamid' />
         </el-tab-pane>

+ 10 - 9
src/views/teamBuild/components/teamSoundMoney.vue

@@ -320,7 +320,7 @@ export default {
             // 遍历循环所有的group 删除所选id
             for (let key in this.soundLists) {
               if (this.soundLists[key].indexOf(this.multipleSelection[j].id) != -1) {
-               
+
                 this.soundLists[key].splice(this.soundLists[key].indexOf(this.multipleSelection[j].id), 1)
               }
             }
@@ -369,7 +369,7 @@ export default {
       getGoods({ 'subjectId': id, 'type': 'ACCESSORIES' }).then(res => {
         if (res.code == 200) {
           row.markChioseList = res.data;
-          
+
         }
       })
     },
@@ -456,7 +456,7 @@ export default {
           active.zhonglei.forEach(zl => {
             let goodsItem = []
             active.goodsList.forEach(goods => {
-              if(goods.id == zl) {
+              if (goods.id == zl) {
                 goodsItem = goods
               }
             })
@@ -472,7 +472,7 @@ export default {
 
           // 附件
           active.markList.forEach(mark => {
-            if(mark.goods.length >= 1) {
+            if (mark.goods.length >= 1) {
               let some = {
                 subjectId: active.id,
                 type: 'ACCESSORIES',
@@ -515,7 +515,7 @@ export default {
           active.zhonglei.forEach(zl => {
             let goodsItem = []
             active.goodsList.forEach(goods => {
-              if(goods.id == zl) {
+              if (goods.id == zl) {
                 goodsItem = goods
               }
             })
@@ -531,7 +531,7 @@ export default {
 
           // 遍历声部里的教辅
           active.markList.forEach(mark => {
-            if(mark.goods.length >= 1) {
+            if (mark.goods.length >= 1) {
               let some = {
                 subjectId: active.id,
                 type: 'ACCESSORIES',
@@ -697,7 +697,7 @@ export default {
                       })
 
                       this.activeSoundList[i].goodsList = this.activeSoundList[i].goodsList.concat(res.data.musicGroupSubjectGoodsGroups[j].goodsList);
-                      
+
                       // goodsList
 
                     }
@@ -707,13 +707,14 @@ export default {
                         this.activeSoundList[i].markList = [];
                         let obj = {};
                         obj.goods = res.data.musicGroupSubjectGoodsGroups[j].goodsIdList.split(',');
+                        obj.goods = obj.goods.map(item => {
+                          return parseInt(item);
+                        })
                         obj.name = res.data.musicGroupSubjectGoodsGroups[j].name
                         obj.price = res.data.musicGroupSubjectGoodsGroups[j].price;
                         this.activeSoundList[i].markList.push(obj);
                         // this.activeSoundList[i].markList.goodsList.goods = JSON.parse(res.data.musicGroupSubjectGoodsGroups[j].goodsIdList)
                         this.activeSoundList[i].markChioseList = this.activeSoundList[i].markChioseList.concat(res.data.musicGroupSubjectGoodsGroups[j].goodsList);
-
-
                       }
 
                     }

+ 2 - 2
vue.config.js

@@ -17,10 +17,10 @@ const name = defaultSettings.title || 'vue Admin Template' // page title
 // http://47.99.212.176:8000
 // 
 // let target = 'http://192.168.3.27:8000' // 箭河
-// let target = 'http://192.168.3.28:8000' //邹璇
+let target = 'http://192.168.3.28:8000' //邹璇
 // let target = 'http://192.168.3.8:8000' //勇哥
 // let target = 'http://47.99.212.176:8000' // 测试服
-let target = 'http://192.168.3.48:8000' // 乔
+// let target = 'http://192.168.3.48:8000' // 乔
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {
   /**

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff