Просмотр исходного кода

Merge branch 'master' of http://124.222.171.90:10880/Teapay/RWACha-API

* 'master' of http://124.222.171.90:10880/Teapay/RWACha-API:
  地区
  地区添加
  地区
  列表
jason 10 месяцев назад
Родитель
Сommit
e193c0fefe

+ 21 - 14
application/admin/controller/product/Lists.php

@@ -71,9 +71,7 @@ class Lists extends Backend
     public function add()
     {
         if (false === $this->request->isPost()) {
-
-        
-            $this->assignconfig('areaCode', []);
+            $this->assignconfig('areaData', []);
             return $this->view->fetch();
         }
         $params = $this->request->post('row/a');
@@ -97,7 +95,6 @@ class Lists extends Backend
             $areaArrTxt = json_decode($params['product_area_txt'], true);
             if(empty($areaArr) || empty($areaArrTxt)) throw new ValidateException('请添加商品关联地区');
             unset($params['product_area'], $params['product_area_txt']);
-       
             //商品
             $add   = $this->model->create($params);
             $result= $this->setEqualArea($add->id, $areaArr, $areaArrTxt);
@@ -132,20 +129,32 @@ class Lists extends Backend
         }
         if (false === $this->request->isPost()) {
             $area = $this->productArea::where('product_id', $ids)->where('status', 1)->select();
+            $areaData = array();
             $areaCode = array();
-            $areaTxt = array();
+            $areaTxt  = array();
             foreach ($area as $key =>$item) {
-                if($item->province > 0) $areaCode[$key][0] = $item->province;
-                if($item->city > 0)     $areaCode[$key][1] = $item->city;
-                if($item->area > 0)     $areaCode[$key][2] = $item->area;
-                if($item->county > 0)   $areaCode[$key][3] = $item->county;
+                if($item->province > 0){
+                    $areaData[$key]        = $item->province;
+                    $areaCode[$key][0] = $item->province;
+                } 
+                if($item->city > 0){
+                    $areaData[$key]        = $item->city;
+                    $areaCode[$key][1] = $item->city;
+                }
+                if($item->area > 0) {
+                    $areaData[$key]        = $item->area;
+                    $areaCode[$key][2] = $item->area;
+                }
+                if($item->county > 0)  {
+                    $areaData[$key]        = $item->county;
+                    $areaCode[$key][3] = $item->county;
+                }
                 $areaTxt[]  = [$item->address];
             }
-            $areaCode = json_encode($areaCode);
-            $this->assignconfig('areaCode', $areaCode);
+            $this->assignconfig('areaData', json_encode($areaData));
             $this->view->assign('row', $row);
             $this->view->assign('areaTxt', json_encode($areaTxt, JSON_UNESCAPED_UNICODE));
-            $this->view->assign('areaCode', $areaCode);
+            $this->view->assign('areaCode', json_encode($areaCode));
             return $this->view->fetch();
         }
         $params = $this->request->post('row/a');
@@ -167,10 +176,8 @@ class Lists extends Backend
             $areaArrTxt = json_decode($params['product_area_txt'], true);
             if(empty($areaArr) || empty($areaArrTxt)) throw new ValidateException('请添加商品关联地区');
             unset($params['product_area'], $params['product_area_txt']);
-
             $row->allowField(true)->save($params);
             $this->productArea::where('product_id', $ids)->where('status', 1)->delete();
-           
             $result= $this->setEqualArea($ids, $areaArr, $areaArrTxt);
             Db::commit();
         } catch (ValidateException|PDOException|Exception $e) {

+ 1 - 0
application/admin/controller/product/Popular.php

@@ -140,6 +140,7 @@ class Popular extends Backend
                 $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
                 $row->validateFailException()->validate($validate);
             }
+            if(time() < strtotime($params['start_time'])) $params['status'] = $this->model::NOTSTOP;
             if(time() >= strtotime($params['start_time'])) $params['status'] = $this->model::NORMAL;
             if(time() >= strtotime($params['end_time'])) $params['status'] = $this->model::STOP;
             $params['stock'] = ProductArea::getProductStock($params['product_id']);

+ 18 - 8
application/admin/view/product/lists/add.html

@@ -56,20 +56,27 @@
         <label class="control-label col-xs-12 col-sm-2">{:__('关联地区')}:</label>
         <div class="col-xs-12 col-sm-8">
             <div class="block">
-                <el-cascader-panel
-                :options="options"
-                :props="{ multiple: true, checkStrictly: true }"
-                v-model="data"
-                @change="handleChange"
-                ref="ca"
-                clearable></el-cascader-panel>
+            <treeselect
+            valueFormat="value"
+            :multiple="true"
+            :options="options"
+            :flat="true"
+            :default-expand-level="1"
+            :sort-value-by="sortValueBy"
+            placeholder="选择关联地区"
+            v-model="data"
+            @input="handleChange"
+            ref="treeselect"/>
+            <template v-slot:value-label="{ node }">
+              <span>{{ getNode(node) }}</span>
+            </template>
+          </treeselect>
             </div>
             <input id="c-product_area" class="form-control" name="row[product_area]" type="hidden" value="">
             <input id="c-product_area_txt" class="form-control" name="row[product_area_txt]" type="hidden" value="">
         </div>    
     </div>
 
-    
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Details')}:</label>
         <div class="col-xs-12 col-sm-8">
@@ -86,4 +93,7 @@
     </div>
 </div>
 </form>
+<script src="__CDN__/assets/libs/vue/vue.js"></script>
+<script src="__CDN__/assets/libs/treeselect/treeselect.js"></script>
+<link href="__CDN__/assets/libs/treeselect/treeselect.css" rel="stylesheet">
 

+ 16 - 5
application/admin/view/product/lists/edit.html

@@ -55,13 +55,21 @@
         <label class="control-label col-xs-12 col-sm-2">{:__('关联地区')}:</label>
         <div class="col-xs-12 col-sm-8">
             <div class="block">
-                <el-cascader-panel
+                <treeselect
+                valueFormat="value"
+                :multiple="true"
                 :options="options"
-                :props="{ multiple: true, checkStrictly: true }"
+                :flat="true"
+                :default-expand-level="1"
+                :sort-value-by="sortValueBy"
+                placeholder="选择关联地区"
                 v-model="data"
-                @change="handleChange"
-                ref="ca"
-                clearable></el-cascader-panel>
+                @input="handleChange"
+                ref="treeselect"/>
+                <template v-slot:value-label="{ node }">
+                  <span>{{ getNode(node) }}</span>
+                </template>
+              </treeselect>
                 <input id="c-product_area" class="form-control" name="row[product_area]" type="hidden" value="{$areaCode|htmlentities}">
                 <input id="c-product_area_txt" class="form-control" name="row[product_area_txt]" type="hidden" value="{$areaTxt|htmlentities}">
             </div>
@@ -84,3 +92,6 @@
     </div>
 </div>
 </form>
+<script src="__CDN__/assets/libs/vue/vue.js"></script>
+<script src="__CDN__/assets/libs/treeselect/treeselect.js"></script>
+<link href="__CDN__/assets/libs/treeselect/treeselect.css" rel="stylesheet">

+ 12 - 10
application/api/controller/Product.php

@@ -23,28 +23,30 @@ class Product extends Api
 
 
     /**
-     * 热销列表   
+     * 热销列表
      */
     public function getPopularList(ProductsModel $productsModel, ProductPopular $productPopular, ProductLists $productLists)
     {
-        $list = $productsModel->where('status', 1)->column('id,'.$this->lan.'_title as title');
+        $item = $productsModel->where('status', 1)->column('id,'.$this->lan.'_title as title');
         $resp = array();
-        foreach ($list as $kk =>$val) {
-            $list= $productLists->where('type_id', $kk)->field('id,thum as img_url,'.$this->lan.'_name as name')->select();
+        foreach ($item as $kk =>$val) {
+            $list=  $productLists->where('type_id', $kk)->field('id,thum as img_url,'.$this->lan.'_name as name')->select();
+            $i = 0;
+            $proArr  = array();
             foreach ($list as $key => &$item) {
                 $pro =$productPopular
                     ->field('id,product_id,price,cost_price,stock,num,start_time,end_time,status')
-                    ->where('product_id', $item->id)
+                    ->where('product_id', $item['id'])
                     ->where('status', '<', $productPopular::STOP)
                     ->order('start_time')
                     ->find();
                 if(!empty($pro)){
-                    $item['pro'] = $pro;
-                }else{
-                    unset($list[$key]);
-                }    
+                    $proArr[$i] = $item;
+                    $proArr[$i]['pro'] = $pro;
+                    $i+=1;
+                }
             }
-            $resp[] = ['type_id'=>$kk,'title'=>$val, 'product'=>$list];
+            $resp[] = ['type_id'=>$kk,'title'=>$val, 'product'=>$proArr];
         }
         $this->success('', $resp);
     }

+ 66 - 22
public/assets/js/backend/product/lists.js

@@ -1,4 +1,4 @@
-define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'area','vue', 'ELEMENT'], function ($, undefined, Backend, Table, Form, Area, Vue, ELEMENT) {
+define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'area','vue', 'ELEMENT', ], function ($, undefined, Backend, Table, Form, Area, Vue, ELEMENT, ) {
     ELEMENT.install(Vue)
     Vue.use(ELEMENT)
     var Controller = {
@@ -74,9 +74,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'area','vue', 'ELEMEN
             // 为表格绑定事件
             Table.api.bindevent(table);
             // 修改添加窗口的大小
-            $(".btn-add").data("area", ["60%", "80%"]);
+            $(".btn-add").data("area", ["100%", "100%"]);
             table.on('post-body.bs.table',function () {
-                $('.btn-editone').data("area",["80%","100%"]);
+                $('.btn-editone').data("area",["100%","100%"]);
             });
         },
         add: function () {
@@ -88,28 +88,72 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'area','vue', 'ELEMEN
         api: {
             bindevent: function () {
                 Form.api.bindevent($("form[role=form]"));
-                let dataCode = [];
-                if((Config.areaCode).length > 0) dataCode = JSON.parse(Config.areaCode);
+                Vue.component('treeselect', VueTreeselect.Treeselect)
+                let areaData = [];
+                if((Config.areaData).length > 0) areaData = JSON.parse(Config.areaData);
                 new Vue({
-                    el: '#app',
-                    data() {
-                        return {
-                            data: dataCode,
-                            props: { multiple: true },
-                            options:area
-                  };
-                },
-                methods:{
-                    handleChange(e){
-                        let txt = this.$refs.ca.getCheckedNodes(),txtArr = Array();
-                        txt.forEach(vv => {
-                            txtArr.push($.makeArray((vv.pathLabels).join('-')) );
+                  el: '#app',
+                  data(){
+                    return {
+                      data: areaData,
+                      options: area,
+                      sortValueBy: "ORDER_SELECTED",
+                      selectedNodes: [],
+                    }
+                  },
+                  methods:{
+                    handleChange(selectedValues) {
+                        let ids= []
+                        let labels= []
+                        this.selectedNodes = this.data.map((item) => {
+                          let obj = this.getNode1(this.$refs.treeselect.getNode(item))
+                          ids.push(obj.result)
+                          labels.push(obj.labels)
+                          return { label: obj.labels,result: obj.result};
                         });
-                        $('#c-product_area').val(JSON.stringify(this.data))
-                        $('#c-product_area_txt').val(JSON.stringify(txtArr))
-                        
-                    }}
+                        //console.log(JSON.stringify(ids),JSON.stringify(labels));
+                        $('#c-product_area').val(JSON.stringify(ids))
+                        $('#c-product_area_txt').val(JSON.stringify(labels))
+    
+                    },
+                    getNode(e1) {
+                      let labels = [];
+                      // 递归获取 label
+                      function recurse(node) {
+                        if (node && node.label) {
+                          labels.push(node.label);
+                          if (node.parentNode) {
+                            recurse(node.parentNode); // 继续向上递归
+                          }
+                        }
+                      }
+                
+                      recurse(e1);
+                      // console.log(labels.reverse().join("/"));
+                      // 返回拼接的 label 路径
+                      return labels.reverse().join("-");
+                    },
+    
+                    getNode1(e1) {
+                        let labels = [];
+                        let result = [];
+                        // 递归获取 label
+                        function recurse(node) {
+                          if (node && node.label) {
+                            labels.push(node.label);
+                            result.push(node.id);
+                            if (node.parentNode) {
+                              recurse(node.parentNode); // 继续向上递归
+                            }
+                          }
+                        }
+                        recurse(e1);
+                        // 返回拼接的 label 路径
+                        return {labels:[labels.reverse().join("-")], result:result.reverse()};
+                      },
+                  }
                 })
+                
             },
         }
     };

+ 2 - 0
public/assets/js/require-backend.js

@@ -52,6 +52,7 @@ require.config({
         'citypicker': '../libs/fastadmin-citypicker/dist/js/city-picker.min',
         'citypicker-data': '../libs/fastadmin-citypicker/dist/js/city-picker.data',
         'ELEMENT': '../libs/elementui/elementui',
+        //'treeselect': '../libs/treeselect/treeselect',
         'vue': '../libs/vue/vue',
         'area': '../libs/area/area',
     },
@@ -123,6 +124,7 @@ require.config({
                 'css!../libs/elementui/elementui.css'
             ]
         },
+    
     },
     baseUrl: requirejs.s.contexts._.config.config.site.cdnurl + '/assets/js/', //资源基础路径
     map: {

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
public/assets/libs/area/area.js


+ 954 - 0
public/assets/libs/treeselect/treeselect.css

@@ -0,0 +1,954 @@
+/*!
+ * vue-treeselect v0.4.0 | (c) 2017-2019 Riophae Lee
+ * Released under the MIT License.
+ * https://vue-treeselect.js.org/
+ */
+/**
+ * Dependencies
+ */
+/**
+ * Variables
+ */
+/**
+ * Mixins
+ */
+/**
+ * Helpers
+ */
+ .vue-treeselect-helper-hide {
+      display: none;
+    }
+    .vue-treeselect-helper-zoom-effect-off {
+      -ms-transform: none !important;
+          transform: none !important;
+    }
+    /**
+     * Animations
+     */
+    @keyframes vue-treeselect-animation-fade-in {
+      0% {
+        opacity: 0;
+      }
+    }
+    @keyframes vue-treeselect-animation-bounce {
+      0%,
+      100% {
+        transform: scale(0);
+      }
+      50% {
+        transform: scale(1);
+      }
+    }
+    @keyframes vue-treeselect-animation-rotate {
+      100% {
+        transform: rotate(360deg);
+      }
+    }
+    /**
+     * Transitions
+     */
+    .vue-treeselect__multi-value-item--transition-enter-active,
+    .vue-treeselect__multi-value-item--transition-leave-active {
+      transition-duration: 200ms;
+      transition-property: transform, opacity;
+    }
+    .vue-treeselect__multi-value-item--transition-enter-active {
+      transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
+    }
+    .vue-treeselect__multi-value-item--transition-leave-active {
+      transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+      position: absolute;
+    }
+    .vue-treeselect__multi-value-item--transition-enter,
+    .vue-treeselect__multi-value-item--transition-leave-to {
+      -ms-transform: scale(0.7);
+          transform: scale(0.7);
+      opacity: 0;
+    }
+    .vue-treeselect__multi-value-item--transition-move {
+      transition: 200ms transform cubic-bezier(0.165, 0.84, 0.44, 1);
+    }
+    /**
+     * Namespace
+     */
+    .vue-treeselect {
+      position: relative;
+      text-align: left;
+    }
+    [dir="rtl"] .vue-treeselect {
+      text-align: right;
+    }
+    .vue-treeselect div,
+    .vue-treeselect span {
+      box-sizing: border-box;
+    }
+    .vue-treeselect svg {
+      fill: currentColor;
+    }
+    /**
+     * Control
+     */
+    .vue-treeselect__control {
+      padding-left: 5px;
+      padding-right: 5px;
+      display: table;
+      table-layout: fixed;
+      width: 100%;
+      height: 36px;
+      border: 1px solid #ddd;
+      border-radius: 5px;
+      background: #fff;
+      transition-duration: 200ms;
+      transition-property: border-color, box-shadow, width, height, background-color, opacity;
+      transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+    }
+    .vue-treeselect:not(.vue-treeselect--disabled):not(.vue-treeselect--focused) .vue-treeselect__control:hover {
+      border-color: #cfcfcf;
+    }
+    .vue-treeselect--focused:not(.vue-treeselect--open) .vue-treeselect__control {
+      border-color: #039be5;
+      box-shadow: 0 0 0 3px rgba(3, 155, 229, 0.1);
+    }
+    .vue-treeselect--disabled .vue-treeselect__control {
+      background-color: #f9f9f9;
+    }
+    .vue-treeselect--open .vue-treeselect__control {
+      border-color: #cfcfcf;
+    }
+    .vue-treeselect--open.vue-treeselect--open-below .vue-treeselect__control {
+      border-bottom-left-radius: 0;
+      border-bottom-right-radius: 0;
+    }
+    .vue-treeselect--open.vue-treeselect--open-above .vue-treeselect__control {
+      border-top-left-radius: 0;
+      border-top-right-radius: 0;
+    }
+    .vue-treeselect__value-container,
+    .vue-treeselect__multi-value {
+      width: 100%;
+      vertical-align: middle;
+    }
+    .vue-treeselect__value-container {
+      display: table-cell;
+      position: relative;
+    }
+    .vue-treeselect--searchable:not(.vue-treeselect--disabled) .vue-treeselect__value-container {
+      cursor: text;
+    }
+    .vue-treeselect__multi-value {
+      display: inline-block;
+    }
+    .vue-treeselect--has-value .vue-treeselect__multi-value {
+      margin-bottom: 5px;
+    }
+    .vue-treeselect__placeholder,
+    .vue-treeselect__single-value {
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
+      padding-left: 5px;
+      padding-right: 5px;
+      position: absolute;
+      top: 0;
+      right: 0;
+      bottom: 0;
+      left: 0;
+      line-height: 34px;
+      -webkit-user-select: none;
+         -moz-user-select: none;
+          -ms-user-select: none;
+              user-select: none;
+      pointer-events: none;
+    }
+    .vue-treeselect__placeholder {
+      color: #bdbdbd;
+    }
+    .vue-treeselect__single-value {
+      color: #333;
+    }
+    .vue-treeselect--focused.vue-treeselect--searchable .vue-treeselect__single-value {
+      color: #bdbdbd;
+    }
+    .vue-treeselect--disabled .vue-treeselect__single-value {
+      position: static;
+    }
+    .vue-treeselect__multi-value-item-container {
+      display: inline-block;
+      padding-top: 5px;
+      padding-right: 5px;
+      vertical-align: top;
+    }
+    [dir="rtl"] .vue-treeselect__multi-value-item-container {
+      padding-right: 0;
+      padding-left: 5px;
+    }
+    .vue-treeselect__multi-value-item {
+      cursor: pointer;
+      display: inline-table;
+      background: #e3f2fd;
+      padding: 2px 0;
+      border: 1px solid transparent;
+      border-radius: 2px;
+      color: #039be5;
+      font-size: 12px;
+      vertical-align: top;
+    }
+    .vue-treeselect:not(.vue-treeselect--disabled) .vue-treeselect__multi-value-item:not(.vue-treeselect__multi-value-item-disabled):hover .vue-treeselect__multi-value-item:not(.vue-treeselect__multi-value-item-new) .vue-treeselect__multi-value-item:not(.vue-treeselect__multi-value-item-new):hover {
+      cursor: pointer;
+      background: #e3f2fd;
+      color: #039be5;
+    }
+    .vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-disabled {
+      cursor: default;
+      background: #f5f5f5;
+      color: #757575;
+    }
+    .vue-treeselect--disabled .vue-treeselect__multi-value-item {
+      cursor: default;
+      background: #fff;
+      border-color: #e5e5e5;
+      color: #555;
+    }
+    .vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-new {
+      background: #e8f5e9;
+    }
+    .vue-treeselect__multi-value-item.vue-treeselect__multi-value-item-new:hover {
+      background: #e8f5e9;
+    }
+    .vue-treeselect__value-remove,
+    .vue-treeselect__multi-value-label {
+      display: table-cell;
+      padding: 0 5px;
+      vertical-align: middle;
+    }
+    .vue-treeselect__value-remove {
+      color: #039be5;
+      padding-left: 5px;
+      border-left: 1px solid #fff;
+      line-height: 0;
+    }
+    [dir="rtl"] .vue-treeselect__value-remove {
+      border-left: 0 none;
+      border-right: 1px solid #fff;
+    }
+    .vue-treeselect__multi-value-item:hover .vue-treeselect__value-remove {
+      color: #e53935;
+    }
+    .vue-treeselect--disabled .vue-treeselect__value-remove,
+    .vue-treeselect__multi-value-item-disabled .vue-treeselect__value-remove {
+      display: none;
+    }
+    .vue-treeselect__value-remove > svg {
+      width: 6px;
+      height: 6px;
+    }
+    .vue-treeselect__multi-value-label {
+      padding-right: 5px;
+      white-space: pre-line;
+      -webkit-user-select: none;
+         -moz-user-select: none;
+          -ms-user-select: none;
+              user-select: none;
+    }
+    .vue-treeselect__limit-tip {
+      display: inline-block;
+      padding-top: 5px;
+      padding-right: 5px;
+      vertical-align: top;
+    }
+    [dir="rtl"] .vue-treeselect__limit-tip {
+      padding-right: 0;
+      padding-left: 5px;
+    }
+    .vue-treeselect__limit-tip-text {
+      cursor: default;
+      display: block;
+      margin: 2px 0;
+      padding: 1px 0;
+      color: #bdbdbd;
+      font-size: 12px;
+      font-weight: 600;
+    }
+    .vue-treeselect__input-container {
+      display: block;
+      max-width: 100%;
+      outline: none;
+    }
+    .vue-treeselect--single .vue-treeselect__input-container {
+      font-size: inherit;
+      height: 100%;
+    }
+    .vue-treeselect--multi .vue-treeselect__input-container {
+      display: inline-block;
+      font-size: 12px;
+      vertical-align: top;
+    }
+    .vue-treeselect--searchable .vue-treeselect__input-container {
+      padding-left: 5px;
+      padding-right: 5px;
+    }
+    .vue-treeselect--searchable.vue-treeselect--multi.vue-treeselect--has-value .vue-treeselect__input-container {
+      padding-top: 5px;
+      padding-left: 0;
+    }
+    [dir="rtl"] .vue-treeselect--searchable.vue-treeselect--multi.vue-treeselect--has-value .vue-treeselect__input-container {
+      padding-left: 5px;
+      padding-right: 0;
+    }
+    .vue-treeselect--disabled .vue-treeselect__input-container {
+      display: none;
+    }
+    .vue-treeselect__input,
+    .vue-treeselect__sizer {
+      margin: 0;
+      line-height: inherit;
+      font-family: inherit;
+      font-size: inherit;
+    }
+    .vue-treeselect__input {
+      max-width: 100%;
+      margin: 0;
+      padding: 0;
+      border: 0;
+      outline: none;
+      box-sizing: content-box;
+      box-shadow: none;
+      background: none transparent;
+      line-height: 1;
+      vertical-align: middle;
+    }
+    .vue-treeselect__input::-ms-clear {
+      display: none;
+    }
+    .vue-treeselect--single .vue-treeselect__input {
+      width: 100%;
+      height: 100%;
+    }
+    .vue-treeselect--multi .vue-treeselect__input {
+      padding-top: 3px;
+      padding-bottom: 3px;
+    }
+    .vue-treeselect--has-value .vue-treeselect__input {
+      line-height: inherit;
+      vertical-align: top;
+    }
+    .vue-treeselect__sizer {
+      position: absolute;
+      top: 0;
+      left: 0;
+      visibility: hidden;
+      height: 0;
+      overflow: scroll;
+      white-space: pre;
+    }
+    .vue-treeselect__x-container {
+      display: table-cell;
+      vertical-align: middle;
+      width: 20px;
+      text-align: center;
+      line-height: 0;
+      cursor: pointer;
+      color: #ccc;
+      animation: 200ms vue-treeselect-animation-fade-in cubic-bezier(0.075, 0.82, 0.165, 1);
+    }
+    .vue-treeselect__x-container:hover {
+      color: #e53935;
+    }
+    .vue-treeselect__x {
+      width: 8px;
+      height: 8px;
+    }
+    .vue-treeselect__control-arrow-container {
+      display: table-cell;
+      vertical-align: middle;
+      width: 20px;
+      text-align: center;
+      line-height: 0;
+      cursor: pointer;
+    }
+    .vue-treeselect--disabled .vue-treeselect__control-arrow-container {
+      cursor: default;
+    }
+    .vue-treeselect__control-arrow {
+      width: 9px;
+      height: 9px;
+      color: #ccc;
+    }
+    .vue-treeselect:not(.vue-treeselect--disabled) .vue-treeselect__control-arrow-container:hover .vue-treeselect__control-arrow {
+      color: #616161;
+    }
+    .vue-treeselect--disabled .vue-treeselect__control-arrow {
+      opacity: 0.35;
+    }
+    .vue-treeselect__control-arrow--rotated {
+      -ms-transform: rotate(180deg);
+          transform: rotateZ(180deg);
+    }
+    /**
+     * Menu
+     */
+    .vue-treeselect__menu-container {
+      position: absolute;
+      left: 0;
+      width: 100%;
+      overflow: visible;
+      transition: 0s;
+    }
+    .vue-treeselect--open-below:not(.vue-treeselect--append-to-body) .vue-treeselect__menu-container {
+      top: 100%;
+    }
+    .vue-treeselect--open-above:not(.vue-treeselect--append-to-body) .vue-treeselect__menu-container {
+      bottom: 100%;
+    }
+    .vue-treeselect__menu {
+      cursor: default;
+      padding-top: 5px;
+      padding-bottom: 5px;
+      display: block;
+      position: absolute;
+      overflow-x: hidden;
+      overflow-y: auto;
+      width: auto;
+      border: 1px solid #cfcfcf;
+      background: #fff;
+      line-height: 180%;
+      -webkit-overflow-scrolling: touch;
+    }
+    .vue-treeselect--open-below .vue-treeselect__menu {
+      border-bottom-left-radius: 5px;
+      border-bottom-right-radius: 5px;
+      top: 0;
+      margin-top: -1px;
+      border-top-color: #f2f2f2;
+      box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
+    }
+    .vue-treeselect--open-above .vue-treeselect__menu {
+      border-top-left-radius: 5px;
+      border-top-right-radius: 5px;
+      bottom: 0;
+      margin-bottom: -1px;
+      border-bottom-color: #f2f2f2;
+    }
+    .vue-treeselect__indent-level-0 .vue-treeselect__option {
+      padding-left: 5px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-0 .vue-treeselect__option {
+      padding-left: 5px;
+      padding-right: 5px;
+    }
+    .vue-treeselect__indent-level-0 .vue-treeselect__tip {
+      padding-left: 25px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-0 .vue-treeselect__tip {
+      padding-left: 5px;
+      padding-right: 25px;
+    }
+    .vue-treeselect__indent-level-1 .vue-treeselect__option {
+      padding-left: 25px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-1 .vue-treeselect__option {
+      padding-left: 5px;
+      padding-right: 25px;
+    }
+    .vue-treeselect__indent-level-1 .vue-treeselect__tip {
+      padding-left: 45px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-1 .vue-treeselect__tip {
+      padding-left: 5px;
+      padding-right: 45px;
+    }
+    .vue-treeselect__indent-level-2 .vue-treeselect__option {
+      padding-left: 45px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-2 .vue-treeselect__option {
+      padding-left: 5px;
+      padding-right: 45px;
+    }
+    .vue-treeselect__indent-level-2 .vue-treeselect__tip {
+      padding-left: 65px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-2 .vue-treeselect__tip {
+      padding-left: 5px;
+      padding-right: 65px;
+    }
+    .vue-treeselect__indent-level-3 .vue-treeselect__option {
+      padding-left: 65px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-3 .vue-treeselect__option {
+      padding-left: 5px;
+      padding-right: 65px;
+    }
+    .vue-treeselect__indent-level-3 .vue-treeselect__tip {
+      padding-left: 85px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-3 .vue-treeselect__tip {
+      padding-left: 5px;
+      padding-right: 85px;
+    }
+    .vue-treeselect__indent-level-4 .vue-treeselect__option {
+      padding-left: 85px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-4 .vue-treeselect__option {
+      padding-left: 5px;
+      padding-right: 85px;
+    }
+    .vue-treeselect__indent-level-4 .vue-treeselect__tip {
+      padding-left: 105px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-4 .vue-treeselect__tip {
+      padding-left: 5px;
+      padding-right: 105px;
+    }
+    .vue-treeselect__indent-level-5 .vue-treeselect__option {
+      padding-left: 105px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-5 .vue-treeselect__option {
+      padding-left: 5px;
+      padding-right: 105px;
+    }
+    .vue-treeselect__indent-level-5 .vue-treeselect__tip {
+      padding-left: 125px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-5 .vue-treeselect__tip {
+      padding-left: 5px;
+      padding-right: 125px;
+    }
+    .vue-treeselect__indent-level-6 .vue-treeselect__option {
+      padding-left: 125px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-6 .vue-treeselect__option {
+      padding-left: 5px;
+      padding-right: 125px;
+    }
+    .vue-treeselect__indent-level-6 .vue-treeselect__tip {
+      padding-left: 145px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-6 .vue-treeselect__tip {
+      padding-left: 5px;
+      padding-right: 145px;
+    }
+    .vue-treeselect__indent-level-7 .vue-treeselect__option {
+      padding-left: 145px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-7 .vue-treeselect__option {
+      padding-left: 5px;
+      padding-right: 145px;
+    }
+    .vue-treeselect__indent-level-7 .vue-treeselect__tip {
+      padding-left: 165px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-7 .vue-treeselect__tip {
+      padding-left: 5px;
+      padding-right: 165px;
+    }
+    .vue-treeselect__indent-level-8 .vue-treeselect__option {
+      padding-left: 165px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-8 .vue-treeselect__option {
+      padding-left: 5px;
+      padding-right: 165px;
+    }
+    .vue-treeselect__indent-level-8 .vue-treeselect__tip {
+      padding-left: 185px;
+    }
+    [dir="rtl"] .vue-treeselect__indent-level-8 .vue-treeselect__tip {
+      padding-left: 5px;
+      padding-right: 185px;
+    }
+    .vue-treeselect__option {
+      padding-left: 5px;
+      padding-right: 5px;
+      display: table;
+      table-layout: fixed;
+      width: 100%;
+    }
+    .vue-treeselect__option--highlight {
+      background: #f5f5f5;
+    }
+    .vue-treeselect--single .vue-treeselect__option--selected {
+      background: #e3f2fd;
+      font-weight: 600;
+    }
+    .vue-treeselect--single .vue-treeselect__option--selected:hover {
+      background: #e3f2fd;
+    }
+    .vue-treeselect__option--hide {
+      display: none;
+    }
+    .vue-treeselect__option-arrow-container,
+    .vue-treeselect__option-arrow-placeholder {
+      display: table-cell;
+      vertical-align: middle;
+      width: 20px;
+      text-align: center;
+      line-height: 0;
+    }
+    .vue-treeselect__option-arrow-container {
+      cursor: pointer;
+    }
+    .vue-treeselect__option-arrow {
+      display: inline-block;
+      width: 9px;
+      height: 9px;
+      color: #ccc;
+      vertical-align: middle;
+      transition: 200ms transform cubic-bezier(0.19, 1, 0.22, 1);
+      -ms-transform: rotate(-90deg);
+          transform: rotateZ(-90deg);
+    }
+    [dir="rtl"] .vue-treeselect__option-arrow {
+      -ms-transform: rotate(90deg);
+          transform: rotateZ(90deg);
+    }
+    .vue-treeselect__option-arrow-container:hover .vue-treeselect__option-arrow,
+    .vue-treeselect--branch-nodes-disabled .vue-treeselect__option:hover .vue-treeselect__option-arrow {
+      color: #616161;
+    }
+    .vue-treeselect__option-arrow--rotated {
+      -ms-transform: rotate(0);
+          transform: rotateZ(0);
+    }
+    [dir="rtl"] .vue-treeselect__option-arrow--rotated {
+      -ms-transform: rotate(0);
+          transform: rotateZ(0);
+    }
+    .vue-treeselect__option-arrow--rotated.vue-treeselect__option-arrow--prepare-enter {
+      -ms-transform: rotate(-90deg) !important;
+          transform: rotateZ(-90deg) !important;
+    }
+    [dir="rtl"] .vue-treeselect__option-arrow--rotated.vue-treeselect__option-arrow--prepare-enter {
+      -ms-transform: rotate(90deg) !important;
+          transform: rotateZ(90deg) !important;
+    }
+    .vue-treeselect__label-container {
+      display: table-cell;
+      vertical-align: middle;
+      cursor: pointer;
+      display: table;
+      width: 100%;
+      table-layout: fixed;
+      color: inherit;
+    }
+    .vue-treeselect__option--disabled .vue-treeselect__label-container {
+      cursor: not-allowed;
+      color: rgba(0, 0, 0, 0.25);
+    }
+    .vue-treeselect__checkbox-container {
+      display: table-cell;
+      width: 20px;
+      min-width: 20px;
+      height: 100%;
+      text-align: center;
+      vertical-align: middle;
+    }
+    .vue-treeselect__checkbox {
+      display: block;
+      margin: auto;
+      width: 12px;
+      height: 12px;
+      border-width: 1px;
+      border-style: solid;
+      border-radius: 2px;
+      position: relative;
+      transition: 200ms all cubic-bezier(0.075, 0.82, 0.165, 1);
+    }
+    .vue-treeselect__check-mark,
+    .vue-treeselect__minus-mark {
+      display: block;
+      position: absolute;
+      left: 1px;
+      top: 1px;
+      background-repeat: no-repeat;
+      opacity: 0;
+      transition: 200ms all ease;
+    }
+    .vue-treeselect__minus-mark {
+      width: 8px;
+      height: 8px;
+      background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAgMAAAC5YVYYAAAACVBMVEUAAAD///////9zeKVjAAAAAnRSTlMAuLMp9oYAAAAPSURBVAjXY4CDrJUgBAMAGaECJ9dz3BAAAAAASUVORK5CYII=);
+      background-size: 8px 8px;
+    }
+    @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx) {
+      .vue-treeselect__minus-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAAD///////////84wDuoAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==);
+      }
+    }
+    @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
+      .vue-treeselect__minus-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAAD///////////84wDuoAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==);
+      }
+    }
+    @media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 288dpi) {
+      .vue-treeselect__minus-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAD1BMVEUAAAD///////////////+PQt5oAAAABHRSTlMAy2EFIuWxUgAAACRJREFUGNNjGBBgJOICBY7KDCoucODEAJSAS6FwUJShGjAQAADBPRGrK2/FhgAAAABJRU5ErkJggg==);
+      }
+    }
+    .vue-treeselect__checkbox--indeterminate > .vue-treeselect__minus-mark {
+      opacity: 1;
+    }
+    .vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark {
+      background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAgMAAAC5YVYYAAAACVBMVEUAAADi4uLh4eHOxeSRAAAAAnRSTlMAuLMp9oYAAAAPSURBVAjXY4CDrJUgBAMAGaECJ9dz3BAAAAAASUVORK5CYII=);
+    }
+    @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx) {
+      .vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAADi4uLi4uLh4eE5RQaIAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==);
+      }
+    }
+    @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
+      .vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUAAADi4uLi4uLh4eE5RQaIAAAAA3RSTlMAyTzPIdReAAAAGUlEQVQI12PAD+b///+Nof7//79gAsLFCwAx/w4blADeeQAAAABJRU5ErkJggg==);
+      }
+    }
+    @media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 288dpi) {
+      .vue-treeselect__checkbox--disabled .vue-treeselect__minus-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYBAMAAAASWSDLAAAAD1BMVEUAAADh4eHg4ODNzc3h4eEYfw2wAAAABHRSTlMAy2EFIuWxUgAAACRJREFUGNNjGBBgJOICBY7KDCoucODEAJSAS6FwUJShGjAQAADBPRGrK2/FhgAAAABJRU5ErkJggg==);
+      }
+    }
+    .vue-treeselect__check-mark {
+      width: 8px;
+      height: 8px;
+      background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAQlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////8IX9KGAAAAFXRSTlMA8u24NxILB+Tawb6jiH1zRz0xIQIIP3GUAAAAMklEQVQI1y3FtQEAMQDDQD+EGbz/qkEVOpyEOP6PudKjZNSXn4Jm2CKRdBKzSLsFWl8fMG0Bl6Jk1rMAAAAASUVORK5CYII=);
+      background-size: 8px 8px;
+      -ms-transform: scaleY(0.125);
+          transform: scaleY(0.125);
+    }
+    @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx) {
+      .vue-treeselect__check-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAYFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////98JRy6AAAAH3RSTlMAzu4sDenl38fBvo1OMyIdEQrj1cSihX5hYFpHNycIcQOASAAAAF9JREFUGNN9zEcOgDAMRFHTS0LvNfe/JRmHKAIJ/mqeLJn+k9uDtaeUeFnFziGsBucUTirrprfe81RqZ3Bb6hPWeuZwDFOHyf+ig9CCzQ7INBn7bG5kF+QSt13BHNJnF7AaCT4Y+CW7AAAAAElFTkSuQmCC);
+      }
+    }
+    @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
+      .vue-treeselect__check-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAYFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////98JRy6AAAAH3RSTlMAzu4sDenl38fBvo1OMyIdEQrj1cSihX5hYFpHNycIcQOASAAAAF9JREFUGNN9zEcOgDAMRFHTS0LvNfe/JRmHKAIJ/mqeLJn+k9uDtaeUeFnFziGsBucUTirrprfe81RqZ3Bb6hPWeuZwDFOHyf+ig9CCzQ7INBn7bG5kF+QSt13BHNJnF7AaCT4Y+CW7AAAAAElFTkSuQmCC);
+      }
+    }
+    @media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 288dpi) {
+      .vue-treeselect__check-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAWlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////9ZMre9AAAAHXRSTlMA/PiJhGNI9XlEHJB/b2ldV08+Oibk49vPp6QhAYgGBuwAAACCSURBVCjPrdHdDoIwDAXgTWAqCigo/+f9X5OwnoUwtis4V92XNWladUl+rzQPeQJAN2EHxoOnsPn7/oYk8fxBv08Rr/deOH/aZ2Nm8ZJ+s573QGfWKnNuZGzWm3+lv2V3pcU1XQ385/yjmBoM3Z+dXvlbYLLD3ujhTaOM3KaIXvNkFkuSEvYy1LqOAAAAAElFTkSuQmCC);
+      }
+    }
+    .vue-treeselect__checkbox--checked > .vue-treeselect__check-mark {
+      opacity: 1;
+      -ms-transform: scaleY(1);
+          transform: scaleY(1);
+    }
+    .vue-treeselect__checkbox--disabled .vue-treeselect__check-mark {
+      background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAP1BMVEUAAADj4+Pf39/h4eHh4eHh4eHk5OTh4eHg4ODi4uLh4eHh4eHg4ODh4eHh4eHg4ODh4eHh4eHp6en////h4eFqcyvUAAAAFHRSTlMAOQfy7bgS5NrBvqOIfXNHMSELAgQ/iFsAAAA2SURBVAjXY4AANjYIzcjMAaVFuBkY+RkEWERYmRjYRXjANAOfiIgIFxNIAa8IpxBEi6AwiAQAK2MBd7xY8csAAAAASUVORK5CYII=);
+    }
+    @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx) {
+      .vue-treeselect__checkbox--disabled .vue-treeselect__check-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEUAAADh4eHh4eHh4eHi4uLb29vh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLj4+Pi4uLk5OTo6Ojh4eHh4eHi4uLg4ODg4ODh4eHg4ODh4eHf39/g4OD////h4eEzIk+wAAAAHnRSTlMAzu6/LA3p5eLZx8ONTjYiHRIKooV+YWBaRzEnCANnm5rnAAAAZElEQVQY033P2wqAIAyA4VWaaWrnc/n+j5mbhBjUf7WPoTD47TJb4i5zTr/sRDRHuyFaoWX7uK/RlbctlPEuyI1f4WY9yQINEkf6rzzo8YIzmUFoCs7J1EjeIaa9bXIEmzl8dgOZEAj/+2IvzAAAAABJRU5ErkJggg==);
+      }
+    }
+    @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
+      .vue-treeselect__checkbox--disabled .vue-treeselect__check-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAXVBMVEUAAADh4eHh4eHh4eHi4uLb29vh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLj4+Pi4uLk5OTo6Ojh4eHh4eHi4uLg4ODg4ODh4eHg4ODh4eHf39/g4OD////h4eEzIk+wAAAAHnRSTlMAzu6/LA3p5eLZx8ONTjYiHRIKooV+YWBaRzEnCANnm5rnAAAAZElEQVQY033P2wqAIAyA4VWaaWrnc/n+j5mbhBjUf7WPoTD47TJb4i5zTr/sRDRHuyFaoWX7uK/RlbctlPEuyI1f4WY9yQINEkf6rzzo8YIzmUFoCs7J1EjeIaa9bXIEmzl8dgOZEAj/+2IvzAAAAABJRU5ErkJggg==);
+      }
+    }
+    @media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 288dpi) {
+      .vue-treeselect__checkbox--disabled .vue-treeselect__check-mark {
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAUVBMVEUAAADh4eHh4eHh4eHh4eHi4uLi4uLh4eHh4eHh4eHf39/j4+Ph4eHh4eHh4eHg4ODi4uLh4eHh4eHi4uLh4eHh4eHh4eHh4eHh4eH////h4eF3FMFTAAAAGnRSTlMA+/eJhGhfSHE9JBzz5KaQf3pXT0Xbz0I5AYDw8F0AAAB+SURBVCjPrdHbDoMgEEVRKAii1dZe9fz/hxplTiKIT7qfYCWTEEZdUvOwbckNAD2WHeh3brHW5f5EzGQ+iN+b1Gt6KPvtv16Dn6JX9M9ya3/A1yfu5dlyduL6Hec7mXY6ddXLPP2lpABGZ8PWXfYLTJxZekVhhl7eTX24zZPNKXoRC7zQLjUAAAAASUVORK5CYII=);
+      }
+    }
+    .vue-treeselect__checkbox--unchecked {
+      border-color: #e0e0e0;
+      background: #fff;
+    }
+    .vue-treeselect__label-container:hover .vue-treeselect__checkbox--unchecked {
+      border-color: #039be5;
+      background: #fff;
+    }
+    .vue-treeselect__checkbox--indeterminate {
+      border-color: #039be5;
+      background: #039be5;
+    }
+    .vue-treeselect__label-container:hover .vue-treeselect__checkbox--indeterminate {
+      border-color: #039be5;
+      background: #039be5;
+    }
+    .vue-treeselect__checkbox--checked {
+      border-color: #039be5;
+      background: #039be5;
+    }
+    .vue-treeselect__label-container:hover .vue-treeselect__checkbox--checked {
+      border-color: #039be5;
+      background: #039be5;
+    }
+    .vue-treeselect__checkbox--disabled {
+      border-color: #e0e0e0;
+      background-color: #f7f7f7;
+    }
+    .vue-treeselect__label-container:hover .vue-treeselect__checkbox--disabled {
+      border-color: #e0e0e0;
+      background-color: #f7f7f7;
+    }
+    .vue-treeselect__label {
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
+      display: table-cell;
+      padding-left: 5px;
+      max-width: 100%;
+      vertical-align: middle;
+      cursor: inherit;
+    }
+    [dir="rtl"] .vue-treeselect__label {
+      padding-left: 0;
+      padding-right: 5px;
+    }
+    .vue-treeselect__count {
+      margin-left: 5px;
+      font-weight: 400;
+      opacity: 0.6;
+    }
+    [dir="rtl"] .vue-treeselect__count {
+      margin-left: 0;
+      margin-right: 5px;
+    }
+    .vue-treeselect__tip {
+      padding-left: 5px;
+      padding-right: 5px;
+      display: table;
+      table-layout: fixed;
+      width: 100%;
+      color: #757575;
+    }
+    .vue-treeselect__tip-text {
+      display: table-cell;
+      vertical-align: middle;
+      padding-left: 5px;
+      padding-right: 5px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
+      width: 100%;
+      font-size: 12px;
+    }
+    .vue-treeselect__error-tip .vue-treeselect__retry {
+      cursor: pointer;
+      margin-left: 5px;
+      font-style: normal;
+      font-weight: 600;
+      text-decoration: none;
+      color: #039be5;
+    }
+    [dir="rtl"] .vue-treeselect__error-tip .vue-treeselect__retry {
+      margin-left: 0;
+      margin-right: 5px;
+    }
+    .vue-treeselect__icon-container {
+      display: table-cell;
+      vertical-align: middle;
+      width: 20px;
+      text-align: center;
+      line-height: 0;
+    }
+    .vue-treeselect--single .vue-treeselect__icon-container {
+      padding-left: 5px;
+    }
+    [dir="rtl"] .vue-treeselect--single .vue-treeselect__icon-container {
+      padding-left: 0;
+      padding-right: 5px;
+    }
+    .vue-treeselect__icon-warning {
+      display: block;
+      margin: auto;
+      border-radius: 50%;
+      position: relative;
+      width: 12px;
+      height: 12px;
+      background: #fb8c00;
+    }
+    .vue-treeselect__icon-warning::after {
+      display: block;
+      position: absolute;
+      content: "";
+      left: 5px;
+      top: 2.5px;
+      width: 2px;
+      height: 1px;
+      border: 0 solid #fff;
+      border-top-width: 5px;
+      border-bottom-width: 1px;
+    }
+    .vue-treeselect__icon-error {
+      display: block;
+      margin: auto;
+      border-radius: 50%;
+      position: relative;
+      width: 12px;
+      height: 12px;
+      background: #e53935;
+    }
+    .vue-treeselect__icon-error::before,
+    .vue-treeselect__icon-error::after {
+      display: block;
+      position: absolute;
+      content: "";
+      background: #fff;
+      -ms-transform: rotate(45deg);
+          transform: rotate(45deg);
+    }
+    .vue-treeselect__icon-error::before {
+      width: 6px;
+      height: 2px;
+      left: 3px;
+      top: 5px;
+    }
+    .vue-treeselect__icon-error::after {
+      width: 2px;
+      height: 6px;
+      left: 5px;
+      top: 3px;
+    }
+    .vue-treeselect__icon-loader {
+      display: block;
+      margin: auto;
+      position: relative;
+      width: 12px;
+      height: 12px;
+      text-align: center;
+      animation: 1.6s vue-treeselect-animation-rotate linear infinite;
+    }
+    .vue-treeselect__icon-loader::before,
+    .vue-treeselect__icon-loader::after {
+      border-radius: 50%;
+      position: absolute;
+      content: "";
+      left: 0;
+      top: 0;
+      display: block;
+      width: 100%;
+      height: 100%;
+      opacity: 0.6;
+      animation: 1.6s vue-treeselect-animation-bounce ease-in-out infinite;
+    }
+    .vue-treeselect__icon-loader::before {
+      background: #039be5;
+    }
+    .vue-treeselect__icon-loader::after {
+      background: #b3e5fc;
+      animation-delay: -0.8s;
+    }
+    /**
+     * Menu Portal
+     */
+    .vue-treeselect__menu-placeholder {
+      display: none;
+    }
+    .vue-treeselect__portal-target {
+      position: absolute;
+      display: block;
+      left: 0;
+      top: 0;
+      height: 0;
+      width: 0;
+      padding: 0;
+      margin: 0;
+      border: 0;
+      overflow: visible;
+      box-sizing: border-box;
+    }
+    
+    
+    /*# sourceMappingURL=vue-treeselect.css.map*/

Разница между файлами не показана из-за своего большого размера
+ 5 - 0
public/assets/libs/treeselect/treeselect.js


Некоторые файлы не были показаны из-за большого количества измененных файлов