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

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-mini-web

hongxudong 1 год назад
Родитель
Сommit
484b94c3ad

+ 2 - 0
src/api/pages/common/common.js

@@ -119,6 +119,8 @@ export default {
     getGoodsForInto: 'get_goods_for_into',
     ///获取商品(其他入库开单用)(分页)
     getGoodsForIntoByPage: 'get_goods_for_into_by_page',
+    // 获取首页实时数据
+    getRealTimeData: 'get_real_time_data',
   },
   fileService:{
     prefix: 'mdm-server/file/',

+ 12 - 0
src/api/pages/outh/outhActivity.js

@@ -0,0 +1,12 @@
+/**
+ * @desc   : 活动管理
+ * @author : 付斌
+ * @date   : 2024-06-20 11:41
+ */
+export default {
+  outhActivityService: {
+    prefix: 'oauth-server/activity/',
+    // 查询轮播图
+    getActivity: 'list_by',
+  },
+}

BIN
src/assets/images/dkic-code.png


+ 26 - 1
src/components/business/table-select/table-select.vue

@@ -1130,8 +1130,33 @@ export default {
      * @date   : 2022/3/16 18:12
      */
     setMagnifierProperty() {
+      //供应商
       // 部门
-      if (this.dataType === this.$config.tableSelectType.organization) {
+      if (this.dataType === this.$config.tableSelectType.supplier) {
+        this.service = this.$service.commonService
+        this.methodsName = 'getSupplier'
+        this.methodsNameDetail = 'getSupplierByPage'
+        this.searchContent = [
+          {
+            valueFormat: {code: 'supplierName'},
+            valueKind: 'STR'
+          }
+        ]
+        this.modalWidth = 650
+        this.colCount = 2
+        this.selectKey = 'supplierId'
+        this.selectLabel = 'supplierName'
+        this.columns = [
+          {field: 'supplierCode', minWidth: '40'},
+          {field: 'supplierName', minWidth: '40'},
+        ]
+        this.columnsDetail = [
+          {field: 'supplierCode', minWidth: '40'},
+          {field: 'supplierName', minWidth: '40'},
+        ]
+      }
+      // 部门
+      else if (this.dataType === this.$config.tableSelectType.organization) {
         this.service = this.$service.commonService
         this.methodsName = 'getOrganization'
         this.methodsNameDetail = 'getOrganizationByPage'

+ 3 - 0
src/config/index.js

@@ -412,6 +412,7 @@ export default {
    */
   kindCode: {
     supplierPur: '供应商类别-采购',
+    supplierOutsourced: '供应商类别-外协',
     supplierService: '供应商类别-服务',
     serviceDelivery: '服务类别-配送',
     serviceInstall: '服务类别-安装',
@@ -738,6 +739,8 @@ export default {
     goodsCategory: 'goodsCategory',
     //其他入库
     goodsForInto: 'goodsForInto',
+    //供应商
+    supplier: 'supplier',
 
   },
 

+ 10 - 0
src/libs/update-columns/index.js

@@ -284,4 +284,14 @@ export default {
     {updateField: 'decimalPlaces' , valueFiled: 'decimalPlaces'},
   ],
 
+  /**
+   *   @desc   : 销售订单外协品选供应商
+   *   @date   : 2024/6/18 15:37
+   *   @author : 寇珊珊
+   */
+   saleOrderChooseSupplier: [
+    {updateField: 'supId', valueFiled: 'supplierId'},
+    {updateField: 'supName', valueFiled: 'supplierName'},
+  ],
+
 }

+ 13 - 1
src/locale/lang/zh-CN.js

@@ -309,7 +309,7 @@ export const columns = {
   priceSale: '售价',
   factPrice: '优惠后单价',
   itemAmt: '售价金额',
-  totalFactAmt: '实收金额',
+  totalFactAmt: '折后金额',
   factAmt: '优惠后金额',
   discAmt: '优惠金额',
   priceDiscount: '标价折扣',
@@ -615,6 +615,7 @@ export const columns = {
   ordTypeName:'销售订单类型',
   startAmount:'期初余额',
   costPrice:'入库核对单价',
+  costPriceSaleOrder:'成本单价',
   costAmt:'入库核对金额',
   personUser:'负责人',
   intoItemPrice:'入库价',
@@ -696,6 +697,12 @@ export const columns = {
   flgToPrice:'开启价格体系',
   flgOpeningInv:'开启期初库存',
   flgCostCheckName:'核对标识',
+  ordinaryGoods: '普通商品',
+  outsourcedGoods: '外协商品',
+  outboundProcessingFlag: '开单并出库办理',
+  flgAutoHandle: '自动办理标识',
+  flgHandleSetting: '欠货出库',
+  primaryQty: '可编辑数量',
 }
 
 /**
@@ -801,6 +808,11 @@ export const messages = {
   W_127: '当前订单没有可退货的数量',
   W_128: '当前订单已全部出库',
   W_129: '删除唯一有价格的商品后重新计算价格',
+  W_130: '当前单据为已出库状态,不可进行作废',
+  W_131: '普通商品{param}不允许为0',
+  W_132: '普通商品输入的{param1}不能大于{param2},请重新输入',
+  W_133: '外协商品{param}不允许为0',
+  W_134: '外协商品输入的{param1}不能大于{param2},请重新输入',
 
   E_001: '系统出现异常,请联系管理员。',
   Q_001: '当前页面的数据有过更改,请确认需要保存吗?',

+ 1 - 1
src/view/mst/print-layout/index.vue

@@ -49,7 +49,7 @@
 
     <!--新建编辑-->
     <DkModal :loading="loading" v-model="editAddModal" ref="modal_editAdd" @on-visible-change="handleVisibleModal"
-             @modalOk="save" @modalCancel="clear" :saveFlag="true" :title=modalTitle>
+             @modalOk="save" @modalCancel="clear" @on-cancel="clear" :saveFlag="true" :title=modalTitle>
       <DkForm ref="formInline" v-model="formData" :col-count="1">
         <!--    模板名称    -->
         <DkFormItem prop="layoutName" :required="true">

+ 6 - 6
src/view/mst/print-layout/layout-setting.vue

@@ -776,8 +776,8 @@ export default {
         history: true, // 是否需要 撤销重做功能
         onDataChanged: (type, json) => {
           // console.log('onDataChanged')
-          console.log('onDataChanged',type,json); // type:新增、移动、删除、修改(参数调整)、大小、旋转
-          console.log( this.hiprintTemplate)
+          // console.log('onDataChanged',type,json); // type:新增、移动、删除、修改(参数调整)、大小、旋转
+          // console.log( this.hiprintTemplate)
           this.resetPositionAfterMove(type)
           // .updateOption('draggable', false, true);
           // console.log('template',json); // 返回 template
@@ -877,8 +877,8 @@ export default {
           console.log('newValue',newValue)
           //联动处理,如果改变了数据源,自动设置标题和测试数据。数据源为无时,不处理
           if(newValue&&oldValue!==newValue){
+            console.log('改变了数据源,自动设置标题和测试数据。数据源为无时,不处理')
             self.$nextTick(() => {
-              console.log('改变了数据源,自动设置标题和测试数据。数据源为无时,不处理')
               self.hiprintTemplate.updateOption('title', undefined, true);
               self.hiprintTemplate.updateOption('testData', undefined, true);
               self.hiprintTemplate.updateOption('dataType', undefined, true);
@@ -894,9 +894,9 @@ export default {
               self.hiprintTemplate.updateOption('testData', undefined, true);
               self.hiprintTemplate.updateOption('dataType', undefined, true);
               self.hiprintTemplate.updateOption('formatter', undefined, true);
+              //模拟点击元素,实现元素容器内数据刷新
+              hinnn.event.trigger("PrintElementSelectEventKey_" + self.hiprintTemplate.id, {printElement: self.hiprintTemplate.getSelectEls()[0] })
             })
-            //模拟点击元素,实现元素容器内数据刷新
-            hinnn.event.trigger("PrintElementSelectEventKey_" + self.hiprintTemplate.id, {printElement: self.hiprintTemplate.getSelectEls()[0] })
           }
           if (newValue) return newValue
         },
@@ -1211,7 +1211,7 @@ export default {
      * @date   : 2024/6/17 13:07
      */
     resetPositionAfterMove(type) {
-      if(type=='移动'){
+      if(type=='移动'&&this.hiprintTemplate.getSelectEls()?.[0]!==undefined){
         this.hiprintTemplate.updateOption('left', this.hiprintTemplate.getSelectEls()[0]?.options?.left, true);
         this.hiprintTemplate.updateOption('top', this.hiprintTemplate.getSelectEls()[0]?.options?.top, true);
         hinnn.event.trigger("PrintElementSelectEventKey_" + this.hiprintTemplate.id, {printElement: this.hiprintTemplate.getSelectEls()[0] })

+ 494 - 56
src/view/sale/order/form.vue

@@ -101,6 +101,15 @@
                            :readonly="checkColumnIsEdit('deliveryDate')"
                            :short-cut-flag="true"/>
           </DkFormItem>
+          <!--开单并出库办理标识-->
+          <DkFormItem prop="outboundProcessingFlag"  v-if="formData.flgAutoHandle">
+            <DkSwitch prop="outboundProcessingFlag" v-model="formData.outboundProcessingFlag" :readonly="type === $config.formMode.edit" ref="outboundProcessingFlag"></DkSwitch>
+          </DkFormItem>
+          <!--欠货出库标识-->
+          <DkFormItem v-if="formData.outboundProcessingFlag" prop="flgHandleSetting">
+            <DkSwitch prop="flgHandleSetting" v-model="formData.flgHandleSetting"  :readonly="type === $config.formMode.edit"
+                      ref="flgHandleSetting"></DkSwitch>
+          </DkFormItem>
           <!--备注-->
           <DkFormItem prop="remarks" :span="18">
             <InputPop ref="remarks" v-model="formData.remarks"
@@ -111,16 +120,31 @@
       <!--商品信息-->
       <DkPanel prop="goodsInformation">
         <div id="search-cond-div-goods-info" ref="search-cond-div-goods-info" slot="content">
+          <DkTabs v-model="detailModel" :options="detailOptions" @on-click="detailTabsClick"></DkTabs>
+          <!--普通商品-->
+          <div v-show="ordinaryGoodsFlag">
           <EditTable ref="goodsTable" :data="formData.itemList" showFooter major-field="itemId"
                      :new-row-flag="true"
-                     :add-flag="type === $config.formMode.add ? true : false"
-                     :delete-flag="type === $config.formMode.add ? true : false"
+                     :delete-flag="canBigEditFlag"
                      :columns="this.type === this.$config.formMode.add ? addOrderItemColumns: editOrderItemColumns"
                      @changeNonStandard="changeNonStandard"
                      controlId="skuId"
                      @on-choose="getTotals"
                      @changeValue="getTotals"
                      @delRow='delRow'/>
+          </div>
+          <!--外协商品-->
+          <div v-show="outsourcedGoodsFlag">
+            <EditTable ref="outsourcedGoodsTable" :data="formData.outsourcedItemList" showFooter major-field="itemId"
+                       :new-row-flag="true"
+                       :delete-flag="canBigEditFlag"
+                       :columns="this.type === this.$config.formMode.add ? addOutsourcedItemColumns: editOutsourcedItemColumns"
+                       controlId="supId"
+                       @on-choose="getTotalsOutsourced"
+                       @changeValue="getTotalsOutsourced"
+                       @delRow='delRowOutsourced'/>
+          </div>
+          <!--底部总单合计-->
           <div>
             <DkForm ref="goodsFootFormData" v-model="goodsFootFormData" :labelMaxWords="5" name="dk-form"
                     class="read-only-form">
@@ -129,7 +153,7 @@
                 <InputNumberPop ref="sumQuantity" v-model="goodsFootFormData.sumQuantity" :clearable="false"
                                 :digits="2" :readonly="true"/>
               </DkFormItem>
-              <!--货物金额-->
+              <!--合计金额-->
               <DkFormItem prop="sumAmount" class="amount">
                 <InputNumberPop ref="sumAmount" v-model="goodsFootFormData.sumAmount" :clearable="false"
                                 :digits="2" :readonly="true"/>
@@ -198,6 +222,13 @@ export default {
   data() {
     let self = this
     return {
+      detailModel: 'ordinaryGoods',
+      detailOptions: [
+        {label: self.$t('ordinaryGoods'), name: 'ordinaryGoods'}, //普通商品
+        {label: self.$t('outsourcedGoods'), name: 'outsourcedGoods'},//外协商品
+      ],
+      ordinaryGoodsFlag: true,//普通商品标识
+      outsourcedGoodsFlag: false,//外协商品标识
       //小数位数
       decimalPlaces:0,
       formData: {
@@ -231,6 +262,10 @@ export default {
         orgId: self.$store.state.user.orgId,
         orgName: self.$store.state.user.orgName,
         makeStaff: self.$store.state.user.id,
+        outsourcedItemList:[],//外协明细
+        outboundProcessingFlag:true,//开单并出库办理
+        flgAutoHandle : self.$store.state.user.setting[self.$config.settingCode.IVT001] ? true : false ,//自动办理标识
+        flgHandleSetting: self.$store.state.user.setting[self.$config.settingCode.IVT002] ? true : false,//欠货出库标识
       },
       //商品合计信息
       goodsFootFormData: {
@@ -275,10 +310,6 @@ export default {
           searchDetailFlag: true
         },
         {
-          field: 'skuCode',
-          type: 'disabled',
-        },
-        {
           field: 'itemQty',
           type: 'number',
           digits: this.decimalPlaces,
@@ -297,14 +328,14 @@ export default {
           type: 'disabled',
           number: true,
           digits: 2,
-        }, //价
+        }, //
         {
           field: 'itemAmt',
           type: 'disabled',
           digits: 2,
           number: true,
           sum: true,
-        }, //金额
+        }, //售价金额
         {
           field: 'factPrice',
           type: 'number',
@@ -317,7 +348,7 @@ export default {
             //折扣 = 实际单价/ 售价 *100
             discount: ['factPrice / priceSale * 100 ', 'factPrice', 'priceSale'],
           },
-        },//实际价格
+        },//优惠后单价
         {
           field: 'factAmt',
           type: 'number',
@@ -331,7 +362,7 @@ export default {
             //折扣 = 实际金额 / 金额
             discount: ['factAmt /  itemAmt * 100 ', 'factAmt', 'itemAmt'],
           },
-        },//实际金额.
+        },//优惠后金额
         {
           field: 'discount',
           type: 'number',
@@ -446,9 +477,9 @@ export default {
           searchDetailFlag: true
         },
         {
-          field: 'skuCode',
+          field: 'primaryQty',
           type: 'disabled',
-        },
+        }, //可编辑数量
         {
           field: 'itemQty',
           type: 'number',
@@ -468,14 +499,14 @@ export default {
           type: 'disabled',
           number: true,
           digits: 2,
-        }, //价
+        }, //
         {
           field: 'itemAmt',
           type: 'disabled',
           digits: 2,
           number: true,
           sum: true,
-        }, //金额
+        }, //售价金额
         {
           field: 'factPrice',
           type: 'number',
@@ -488,7 +519,7 @@ export default {
             //折扣 = 实际单价/ 售价 *100
             discount: ['factPrice / priceSale * 100 ', 'factPrice', 'priceSale'],
           },
-        },//实际价格
+        },//优惠后单价
         {
           field: 'factAmt',
           type: 'number',
@@ -502,7 +533,7 @@ export default {
             //折扣 = 实际金额 / 金额
             discount: ['factAmt /  itemAmt * 100 ', 'factAmt', 'itemAmt'],
           },
-        },//实际金额.
+        },//优惠后金额.
         {
           field: 'discount',
           type: 'number',
@@ -641,12 +672,262 @@ export default {
           field: 'remarks', type: 'text', equal: true,
         },
       ],
+      addOutsourcedItemColumns:[
+        {
+          field: 'supName',
+          controlId: 'supId',
+          type: 'tableSelect',
+          multiple:false,
+          title:this.$t('supplierName'),
+          otherSearchParam: () => {
+            return {
+              supplierType: self.$config.kindCode.supplierOutsourced,
+            }
+          },
+          width: 200,
+          dataType: self.$config.tableSelectType.supplier,
+          fieldUpdate: self.$updateColumns.saleOrderChooseSupplier,
+          searchDetailFlag: true
+        },
+        {
+          field: 'skuModel',
+          type: 'text',
+          width: 200,
+        },
+        {
+          field: 'skuName',
+          type: 'text',
+          width: 200,
+        },
+        {
+          field: 'itemQty',
+          type: 'number',
+          digits: this.decimalPlaces,
+          sum: true,
+          formula: {
+            itemAmt: ['itemQty*priceSale', 'itemQty', 'priceSale'],
+            factAmt: ['itemQty*factPrice', 'itemQty', 'factPrice'],
+            discount: ['(factPrice / priceSale) * 100 ', 'factPrice', 'priceSale'],
+          },
+        }, //数量
+        {
+          field: 'costPrice',
+          title:this.$t('costPriceSaleOrder'),
+          type: 'number',
+          number: true,
+          digits: 2,
+        }, //成本单价
+        {
+          field: 'priceSale',
+          type: 'number',
+          number: true,
+          digits: 2,
+          formulaLate: true,
+          formula: {
+            //售价 =  金额 *  数量
+            itemAmt: ['priceSale * itemQty  ', 'priceSale', 'itemQty'],
+          },
+        }, //售价
+        {
+          field: 'itemAmt',
+          type: 'number',
+          digits: 2,
+          number: true,
+          sum: true,
+          formulaLate: true,
+          formula: {
+            //售价 =  金额 /  数量
+            priceSale: ['itemAmt / itemQty  ', 'itemAmt', 'itemQty'],
+          },
+        }, //实际金额
+        {
+          field: 'factPrice',
+          type: 'number',
+          digits: 2,
+          formula: {
+            //实际金额 =  数量 *  实际金额
+            factAmt: ['itemQty*factPrice', 'itemQty', 'factPrice'],
+            //标价折扣 =  售价 / 标价 * 100
+            priceDiscount: ['factPrice/priceStd*100', 'factPrice', 'priceStd'],
+            //折扣 = 实际单价/ 售价 *100
+            discount: ['factPrice / priceSale * 100 ', 'factPrice', 'priceSale'],
+          },
+        },//优惠后单价
+        {
+          field: 'factAmt',
+          type: 'number',
+          digits: 2,
+          number: true,
+          sum: true,
+          formulaLate: true,
+          formula: {
+            //实际单价 =  金额 / 数量
+            factPrice: ['factAmt / itemQty  ', 'priceSale', 'discount'],
+            //折扣 = 实际金额 / 金额
+            discount: ['factAmt /  itemAmt * 100 ', 'factAmt', 'itemAmt'],
+          },
+        },//优惠后金额.
+        {
+          field: 'discount',
+          type: 'number',
+          number: true,
+          digits: 0,
+          formulaLate: true,
+          formula: {
+            //实际单价 =  售价 * 折扣 / 100 - 优惠金额
+            factPrice: ['priceSale * discount /100 ', 'priceSale', 'discount'],
+            //实际金额 =  数量 *  实际金额
+            factAmt: ['itemQty * factPrice', 'itemQty', 'factPrice'],
+          },
+        },//折扣
+        {
+          field: 'remarks', type: 'text', equal: true,
+        },
+      ],
+      editOutsourcedItemColumns:[
+        {
+          field: 'supName',
+          controlId: 'supId',
+          type: 'tableSelect',
+          multiple:false,
+          title:this.$t('supplierName'),
+          otherSearchParam: () => {
+            return {
+              supplierType: self.$config.kindCode.supplierOutsourced,
+            }
+          },
+          width: 200,
+          dataType: self.$config.tableSelectType.supplier,
+          fieldUpdate: self.$updateColumns.saleOrderChooseSupplier,
+          searchDetailFlag: true
+        },
+        {
+          field: 'skuModel',
+          type: 'text',
+          width: 200,
+        },
+        {
+          field: 'skuName',
+          type: 'text',
+          width: 200,
+        },
+        {
+          field: 'primaryQty',
+          type: 'disabled',
+        }, //可编辑数量
+        {
+          field: 'itemQty',
+          type: 'number',
+          digits: this.decimalPlaces,
+          sum: true,
+          formula: {
+            itemAmt: ['itemQty*priceSale', 'itemQty', 'priceSale'],
+            factAmt: ['itemQty*factPrice', 'itemQty', 'factPrice'],
+            discount: ['(factPrice / priceSale) * 100 ', 'factPrice', 'priceSale'],
+          },
+        }, //数量
+        {
+          field: 'costPrice',
+          title:this.$t('costPriceSaleOrder'),
+          type: 'number',
+          number: true,
+          digits: 2,
+        }, //成本单价
+        {
+          field: 'priceSale',
+          type: 'number',
+          number: true,
+          digits: 2,
+          formulaLate: true,
+          formula: {
+            //售价 =  金额 *  数量
+            itemAmt: ['priceSale * itemQty  ', 'priceSale', 'itemQty'],
+          },
+        }, //售价
+        {
+          field: 'itemAmt',
+          type: 'number',
+          digits: 2,
+          number: true,
+          sum: true,
+          formulaLate: true,
+          formula: {
+            //售价 =  金额 /  数量
+            priceSale: ['itemAmt / itemQty  ', 'itemAmt', 'itemQty'],
+          },
+        }, //实际金额
+        {
+          field: 'factPrice',
+          type: 'number',
+          digits: 2,
+          formula: {
+            //实际金额 =  数量 *  实际金额
+            factAmt: ['itemQty*factPrice', 'itemQty', 'factPrice'],
+            //标价折扣 =  售价 / 标价 * 100
+            priceDiscount: ['factPrice/priceStd*100', 'factPrice', 'priceStd'],
+            //折扣 = 实际单价/ 售价 *100
+            discount: ['factPrice / priceSale * 100 ', 'factPrice', 'priceSale'],
+          },
+        },//优惠后单价
+        {
+          field: 'factAmt',
+          type: 'number',
+          digits: 2,
+          number: true,
+          sum: true,
+          formulaLate: true,
+          formula: {
+            //实际单价 =  金额 / 数量
+            factPrice: ['factAmt / itemQty  ', 'priceSale', 'discount'],
+            //折扣 = 实际金额 / 金额
+            discount: ['factAmt /  itemAmt * 100 ', 'factAmt', 'itemAmt'],
+          },
+        },//优惠后金额.
+        {
+          field: 'discount',
+          type: 'number',
+          number: true,
+          digits: 0,
+          formulaLate: true,
+          formula: {
+            //实际单价 =  售价 * 折扣 / 100 - 优惠金额
+            factPrice: ['priceSale * discount /100 ', 'priceSale', 'discount'],
+            //实际金额 =  数量 *  实际金额
+            factAmt: ['itemQty * factPrice', 'itemQty', 'factPrice'],
+          },
+        },//折扣
+        {
+          field: 'remarks', type: 'text', equal: true,
+        },
+      ],
       updateTotalFootMessageFlag:false,
+      canBigEditFlag:true,//可以大编辑标识
     }
   },
 
   methods: {
     /**
+     *   @desc   : 点击Tab进行切换
+     *   @date   : 2024/6/18 10:27
+     *   @author : 寇珊珊
+     */
+    detailTabsClick(val) {
+      //普通商品
+      if (val === 'ordinaryGoods') {
+        //普通商品标识
+        this.ordinaryGoodsFlag = true
+        //外协商品标识
+        this.outsourcedGoodsFlag = false
+      }
+      //外协商品
+      else if (val === 'outsourcedGoods') {
+        //普通商品标识
+        this.ordinaryGoodsFlag = false
+        //外协商品标识
+        this.outsourcedGoodsFlag = true
+      }
+    },
+    /**
      * @desc   : 加载数据
      * @author : 付斌
      * @date   : 2024-02-20 15:53
@@ -872,7 +1153,6 @@ export default {
       table[rowIndex]['itemQty'] = row['packBox'] * (row['nonStandardForm']['box']?row['nonStandardForm']['box']:0) + (row['nonStandardForm']['piece'] ?row['nonStandardForm']['piece']:0)
       table[rowIndex]['itemAmt'] = table[rowIndex]['itemQty'] * table[rowIndex]['priceSale']
       table[rowIndex]['factAmt'] = table[rowIndex]['itemQty'] * table[rowIndex]['factPrice']
-      console.log('row',row)
       table[rowIndex]['box'] = row['nonStandardForm']['box']?row['nonStandardForm']['box']:0
       table[rowIndex]['piece'] = row['nonStandardForm']['piece'] ?row['nonStandardForm']['piece']:0
       this.getTotale(table)
@@ -884,10 +1164,9 @@ export default {
      */
     getTotals(field, row, rowIndex) {
       let table = this.$refs['goodsTable'].tableData.filter(it=>it.skuId)
-      console.log('table',JSON.parse(JSON.stringify(table)))
       if (table && table.length > 0) {
         //计算合计
-        this.getTotale(table)
+        this.getTotale()
         table.forEach(row => {
           //数量
           if (!row["itemQty"] || row["itemQty"] == '') {
@@ -944,12 +1223,10 @@ export default {
       let tableLength = this.$refs['goodsTable'].tableData.filter(it => it.skuId && !it.flgGift).length
       //region 有价格
       let hasPriceTable = this.$refs['goodsTable'].tableData.filter(it => it.skuId && it.priceSale > 0 && !it.flgGift)
-      console.log("有价格",hasPriceTable)
       //endregion
 
       //region  无价格
       let noPriceTable = this.$refs['goodsTable'].tableData.filter(it => it.skuId && (!it.priceSale || it.priceSale == 0) && !it.flgGift)
-      console.log("无价格",noPriceTable)
       if (noPriceTable && noPriceTable.length > 0 && noPriceTable.length == tableLength) {
         this.updateTotalFootMessageFlag = true
         for (let i = 0; i < noPriceTable.length; i++) {
@@ -967,6 +1244,39 @@ export default {
       //endregion
     },
     /**
+     *   @desc   : 外协品修改明细行
+     *   @date   : 2024/6/18 15:09
+     *   @author : 寇珊珊
+     */
+    getTotalsOutsourced(field, row, rowIndex){
+      //计算合计
+      this.getTotale()
+      //过滤有商品并且不是赠品数据
+      let tableLength = this.$refs['outsourcedGoodsTable'].tableData.filter(it => it.supId ).length
+      //region 有价格
+      let hasPriceTable = this.$refs['outsourcedGoodsTable'].tableData.filter(it => it.supId && it.priceSale > 0)
+      //endregion
+
+      //region  无价格
+      if(this.$refs['outsourcedGoodsTable'].tableData && this.$refs['outsourcedGoodsTable'].tableData.length>0 ){
+        let noPriceTable = this.$refs['outsourcedGoodsTable'].tableData.filter(it => it.supId && (!it.priceSale || it.priceSale == 0) )
+        if (noPriceTable && noPriceTable.length > 0 && noPriceTable.length == tableLength) {
+          for (let i = 0; i < noPriceTable.length; i++) {
+            //折扣禁用
+            noPriceTable[i].readOnly = ['discount']
+          }
+          this.$refs['outsourcedGoodsTable'].$refs['xTable'].refreshColumn();
+        } else {
+          let delReadOnlyTable = this.$refs['outsourcedGoodsTable'].tableData
+          for (let i = 0; i <delReadOnlyTable.length; i++) {
+            delete delReadOnlyTable[i].readOnly
+          }
+          this.$refs['outsourcedGoodsTable'].$refs['xTable'].refreshColumn();
+        }
+      }
+      //endregion
+    },
+    /**
      *   @desc   : 修改实收金额或者折扣或者优惠金额
      *   @date   : 2024/6/12 11:01
      *   @author : 寇珊珊
@@ -993,7 +1303,7 @@ export default {
         this.goodsFootFormData.discount = parseInt( parseFloat(value).toFixed(2) )
         //实收金额 = 合计金额 * 折扣
         this.goodsFootFormData.factAmt = parseFloat( ( parseFloat(this.goodsFootFormData.sumAmount) * parseFloat(this.goodsFootFormData.discount) /100 ).toFixed(2) )
-        //优惠金额 = 合计金额 - 实收金额
+        //优惠金额 = 合计金额 - 实收金额
         this.goodsFootFormData.discAmt = parseFloat( ( parseFloat(this.goodsFootFormData.sumAmount) -  parseFloat(this.goodsFootFormData.factAmt) ).toFixed(2) )
       }
       //优惠金额
@@ -1007,8 +1317,12 @@ export default {
       }
       //endregion
 
-      //region  修改明细
+      //region  修改普通明细和外协明细
       let table = this.$refs['goodsTable'].tableData.filter(it => it.skuId && it.priceSale > 0 && !it.flgGift)
+      let outsourcedTable = this.$refs['outsourcedGoodsTable'].tableData.filter(it => it.supId)
+      if (outsourcedTable && outsourcedTable.length > 0) {
+        table = table.concat(outsourcedTable)
+      }
       if (table && table.length > 0) {
         let  i = 1;
         let sumFactAmt = 0
@@ -1051,10 +1365,17 @@ export default {
     * @date   : 2024/5/29 13:27
     */
     getTotale(table){
+      if (!table) {
+        table = this.$refs['goodsTable'].tableData.filter(it => it.skuId)
+        let outsourcedTable = this.$refs['outsourcedGoodsTable'].tableData.filter(it => it.supId)
+        if (outsourcedTable && outsourcedTable.length > 0) {
+          table = table.concat(outsourcedTable)
+        }
+      }
       let sumQuantity = 0;  // 合计数量
-      let sumAmount = 0;    // 货物金额
+      let sumAmount = 0;    // 合计金额
       let sumStandard = 0;  // 标价总额
-      let factAmt = 0;  // 实际合计金额
+      let factAmt = 0;  // 折扣金额
       if (table && table.length > 0) {
         table.forEach(row => {
           sumQuantity += parseFloat(row["itemQty"]);
@@ -1105,6 +1426,31 @@ export default {
       }
     },
     /**
+     *   @desc   : 删除外协品明细行
+     *   @date   : 2024/6/12 9:44
+     *   @author : 寇珊珊
+     */
+    delRowOutsourced(row, rowIndex) {
+      let list = this.$refs['outsourcedGoodsTable'].tableData.filter(it => it.supId)
+      if(list && list.length > 0){
+        let table = this.$refs['outsourcedGoodsTable'].tableData.filter(it => it.priceSale > 0)
+        if (table && table.length == 0) {
+          this.$IBMessage({
+              content: this.$t('Q_002', {'param': this.$v('W_129')}),
+              title: this.$t('systemQuestion')
+            },
+            {
+              ok: () => {
+                this.getTotals(this.$refs['outsourcedGoodsTable'].tableData)
+              },
+              cancel: () => {
+                this.$refs['outsourcedGoodsTable'].tableData.push(row);
+              }
+            })
+        }
+      }
+    },
+    /**
      * @desc   : 通过id查询
      * @author : 付斌
      * @date   : 2022/03/04 13:17
@@ -1119,37 +1465,70 @@ export default {
      */
     setValuesByEdit(data) {
       if (data) {
+        // redion 对可大编辑标识赋值
+        if(this.type === this.$config.formMode.edit){
+          //已出库
+          if( data["data"].outStatus == this.$config.outStatus.yiChuKu){
+            this.canBigEditFlag = false
+          }
+          //出库中或未出库
+          else{
+            this.canBigEditFlag = true
+          }
+        }
+        //endregion
+
         this.formData = data["data"];
-        this.formData.itemList = data["dataItem"];
+        if( data["dataItem"] && data["dataItem"].length>0){
+          for(let i =0;i<data["dataItem"].length;i++){
+            //可编辑数量(原数量)
+            data["dataItem"][i].primaryQty =   data["dataItem"][i].itemQty
+          }
+
+          let itemList = data["dataItem"].filter(it=>it.skuId)
+          this.formData.itemList =  itemList
+          this.formData.outsourcedItemList =  data["dataItem"].filter(it=>!it.skuId)
+        }
         this.formData.receiptList = data["receiptItem"];
 
-        let itemList = data["dataItem"];
-        itemList.map(row=>{
-          let item = row
-          //包装规格
-          this.$set(item, 'unitInfo', row['boxPiece'])
-          row.nonStandardForm = {
-            formula: (row['subUnitName']?'1'+row['subUnitName']:'' ) + row['packBox'] + row['unitName'],
-            box:row['box'],
-            piece:row['piece'],
-          }
-          //包装
-          if(row['subUnitId']){
-            row.nonStandardItems = [
-              {code:'formula',label:'计算公式',type:'text',readonly:true},
-              {code:'box',label:row['subUnitName'],type:'number'},
-              {code:'piece',label:row['unitName'],type:'number'}
-            ]
-          }else{
-            row.nonStandardItems = [
-              {code:'formula',label:'计算公式',type:'text',readonly:true},
-              {code:'piece',label:row['unitName'],type:'number',field:'piece'}
-            ]
-          }
-        })
+        if (itemList && itemList.length > 0) {
+          itemList.map(row => {
+            let item = row
+            //包装规格
+            this.$set(item, 'unitInfo', row['boxPiece'])
+            row.nonStandardForm = {
+              formula: (row['subUnitName'] ? '1' + row['subUnitName'] : '') + row['packBox'] + row['unitName'],
+              box: row['box'],
+              piece: row['piece'],
+            }
+            //包装
+            if (row['subUnitId']) {
+              row.nonStandardItems = [
+                {code: 'formula', label: '计算公式', type: 'text', readonly: true},
+                {code: 'box', label: row['subUnitName'], type: 'number'},
+                {code: 'piece', label: row['unitName'], type: 'number'}
+              ]
+            } else {
+              row.nonStandardItems = [
+                {code: 'formula', label: '计算公式', type: 'text', readonly: true},
+                {code: 'piece', label: row['unitName'], type: 'number', field: 'piece'}
+              ]
+            }
+          })
+        }
+        //商品总数
         this.goodsFootFormData.sumQuantity = this.formData.sumQuantity;
+        //合计金额
         this.goodsFootFormData.sumAmount = this.formData.sumAmount;
+        //折扣
+        this.goodsFootFormData.discount = this.formData.discount;
+        //折后金额
+        this.goodsFootFormData.factAmt = this.formData.factAmt;
+        //优惠金额
+        this.goodsFootFormData.discAmt = this.formData.discAmt;
+        //标价
         this.goodsFootFormData.sumStandard = this.formData.sumStandard;
+        //标价折扣
         this.goodsFootFormData.saleDiscount = this.formData.saleDiscount;
       }
     },
@@ -1184,17 +1563,55 @@ export default {
         }
       }
 
+      //普通商品
       let itemTable = this.$refs['goodsTable'].getTableDataFilter();
+      //外协品
+      let outsourcedItemTable = this.$refs['outsourcedGoodsTable'].getTableDataFilter();
+      if(outsourcedItemTable && outsourcedItemTable.length>0){
+        itemTable = itemTable.concat(outsourcedItemTable)
+      }
       if (!itemTable || itemTable.length == 0) {
         this.$Message.warning(this.$t('W_012'))
         return false;
       }
+      let i= 0
       for (let it of itemTable) {
         if (!it.itemQty || it.itemQty === '' || it.itemQty === 0) {
-          this.$Message.warning(this.$t('W_042', {'param': '明细数量不能'}))
+          this.$message.error(this.$t('W_131', {
+            'param': this.$t('sequence') + (i + 1) + this.$t('rowNo') + this.$t('itemQty')
+          }))
           return false;
         }
+        //编辑校验数量不能大于 编辑查询时带出来的数量
+        if( this.type === this.$config.formMode.edit ){
+          if(it.itemQty > it.primaryQty){
+            this.$message.error(this.$t('W_132', {'param1': this.$t('itemQty'), 'param2':  this.$t('primaryQty')}))
+            this.$Message.warning(this.$t('W_134'))
+            return false;
+          }
+        }
+        i++
       }
+
+      //外协品列表
+      let index = 0
+      for (let it of outsourcedItemTable) {
+        if (!it.itemQty || it.itemQty === '' || it.itemQty === 0) {
+          this.$message.error(this.$t('W_133', {
+            'param': this.$t('sequence') + (index + 1) + this.$t('rowNo') + this.$t('itemQty')
+          }))
+          return false;
+        }
+        //编辑校验数量不能大于 编辑查询时带出来的数量
+        if( this.type === this.$config.formMode.edit ){
+          if(it.itemQty > it.primaryQty){
+            this.$message.error(this.$t('W_134', {'param1': this.$t('itemQty'), 'param2':  this.$t('primaryQty')}))
+            return false;
+          }
+        }
+        index++
+      }
+
       return true;
     },
     /**
@@ -1206,14 +1623,38 @@ export default {
       if (this.type === this.$config.formMode.edit) {
         // 删除的表数据
         let deleteItemTable = this.$refs['goodsTable'].getDeleteData();
-        this.formData.deleteItemList = deleteItemTable
+        //删除的外协数据
+        let deleteOutsourcedItemTable = this.$refs['outsourcedGoodsTable'].getDeleteData();
+        if(deleteOutsourcedItemTable && deleteOutsourcedItemTable.length>0){
+          this.formData.deleteItemList = deleteItemTable.concat(deleteOutsourcedItemTable)
+        }else{
+          this.formData.deleteItemList = deleteItemTable
+        }
       }
+
       // 修改新增的表数据
       let itemTable = this.$refs['goodsTable'].getTableDataFilter();
+      //修改新增的外协品表数据
+      let itemOutsourcedTable = this.$refs['outsourcedGoodsTable'].getTableDataFilter();
+      if(itemOutsourcedTable && itemOutsourcedTable.length>0){
+        itemTable =  itemTable.concat(itemOutsourcedTable)
+      }
       itemTable.forEach((it, index) => {
         if (!it.nonStdCode || it.nonStdCode === '') {
           this.$set(it, 'nonStdCode', '-');
         }
+        //标价
+        if (!it.priceStd || it.priceStd == 0) {
+          this.$set(it, 'priceStd',0);
+        }
+        //标价金额
+        if (!it.amtStd || it.amtStd == 0) {
+          this.$set(it, 'amtStd',0);
+        }
+        //标价折扣
+        if (!it.priceDiscount || it.priceDiscount == 0) {
+          this.$set(it, 'priceDiscount',100);
+        }
       });
       this.formData.itemList = itemTable;
       this.formData.receiptList = this.$refs['receiptTable'].getTableDataFilter();
@@ -1375,9 +1816,6 @@ export default {
    * @date   : 2022/3/3 10:32
    */
   created() {
-    // console.log('this.$route', this.$route)
-    // console.log('this.$store.state.user', this.$store.state.user)
-
     this.focusItem = 'orderId';    // 给第一个组件赋值,可以在混入中自动去聚焦
     this.primaryKey = 'orderId'  // 设置主键Id
   }

+ 7 - 0
src/view/sale/order/index.vue

@@ -8,6 +8,7 @@
         <BaseIndexButton ref="edit" name="edit"></BaseIndexButton>
         <BaseIndexButton ref="orderOut" name="orderOut"></BaseIndexButton>
         <BaseIndexButton ref="orderOutReturn" name="orderOutReturn"></BaseIndexButton>
+        <!--作废-->
         <BaseIndexButton ref="invalid" name="invalid"></BaseIndexButton>
         <!--销售跟踪-->
         <BaseIndexButton ref="orderTrack" name="orderTrack"/>
@@ -324,6 +325,12 @@ export default {
      */
     invalid(rows) {
       if (rows && rows.length > 0) {
+        let row  = rows[0]
+        //已出库不允许作废
+        if(row.outStatus && row.outStatus ==this.$config.outStatus.yiChuKu){
+          this.$Message.success(this.$t('W_130'))
+          return
+        }
         this.$IBMessage({content: this.$t('Q_002', {'param': this.$v('invalid')}), title: this.$t('systemQuestion')},
           {
             ok: () => {

+ 36 - 0
src/view/single-page/home/beginners-guide.vue

@@ -0,0 +1,36 @@
+<!-- @desc:新手指导  @auth:付斌  @time:2024/06/21 15:15 -->
+<template>
+  <div class="main-div">
+
+  </div>
+</template>
+
+<script>
+
+import {indexMixin} from '@/mixins'
+
+export default {
+  name: 'order',
+  mixins: [indexMixin],
+  components: {PrintModal},
+  data() {
+    let self = this
+    return {
+
+    }
+  },
+
+  methods: {
+
+  },
+  /**
+   * @desc   : 在实例创建完成后被立即同步调用
+   * @author : 付斌
+   * @date   : 2022/3/3 10:32
+   */
+  created() {
+    this.routeObjName = 'beginners-guide'  // 设置路由名称
+  },
+}
+</script>
+

+ 1427 - 1156
src/view/single-page/home/home.vue

@@ -17,9 +17,12 @@
             <div style="display: flex;width: 100%;flex-wrap: wrap;">
               <div v-for="(f2Item,f2Index) in fItem.children" :key="f2Index" :style="{marginTop:f2Index>4?'10px':'0'}"
                    style="position:relative;width: 20%;text-align: center;">
-                <Checkbox @on-change="funcCheckBoxChange($event,f2Item)" :ref="'name-'+f2Item.menuUuid" class="ttt" v-model="f2Item._checked">
+                <Checkbox @on-change="funcCheckBoxChange($event,f2Item)" :ref="'name-'+f2Item.menuUuid" class="ttt"
+                          v-model="f2Item._checked">
                   <div style="width: 40px;height: 40px;position: relative;margin: auto">
-                    <img :src="require('@/assets/images/menu-image/' + (f2Item.meta.icon ? f2Item.meta.icon + '.png':'customer.png') )" style="width: 40px;height: 40px;"/>
+                    <img
+                      :src="require('@/assets/images/menu-image/' + (f2Item.meta.icon ? f2Item.meta.icon + '.png':'customer.png') )"
+                      style="width: 40px;height: 40px;"/>
                   </div>
                   <div class="func-item-title">{{ f2Item.meta.title }}</div>
                 </Checkbox>
@@ -31,12 +34,16 @@
           <div style="height: 56px;display: flex;justify-content: center;align-items: center;">
             <div v-show="rightFuncList.length>0" class="clear-btn" @click="clearAll">全部清空</div>
           </div>
-          <draggable v-if="rightFuncList.length>0" :animation="300" v-model="rightFuncList" style="display: flex;width: 100%;flex-wrap: wrap;">
+          <draggable v-if="rightFuncList.length>0" :animation="300" v-model="rightFuncList"
+                     style="display: flex;width: 100%;flex-wrap: wrap;">
             <div v-for="(rfItem,rfIndex) in rightFuncList" class="draggable-div" :key="rfIndex"
                  style="position:relative;width: 20%;margin-bottom:10px;text-align: center;">
               <div style="width: 40px;height: 40px;position: relative;margin: auto">
-                <img :src="require('@/assets/images/menu-image/' +( rfItem.meta.icon ? rfItem.meta.icon + '.png':'customer.png') )" style="width: 40px;height: 40px;"/>
-                <div @click="funcCheckBoxChangeRight('name-'+rfItem.menuUuid)" style="cursor:pointer;display:flex;justify-content:center;font-size:14px;align-items:center;position: absolute;top: -7px;right: -7px;padding: 2px;background-color: red;border: 1px solid #fff;border-radius: 50%;height: 20px;width:20px;color:#fff;font-weight: bold;">
+                <img
+                  :src="require('@/assets/images/menu-image/' +( rfItem.meta.icon ? rfItem.meta.icon + '.png':'customer.png') )"
+                  style="width: 40px;height: 40px;"/>
+                <div @click="funcCheckBoxChangeRight('name-'+rfItem.menuUuid)"
+                     style="cursor:pointer;display:flex;justify-content:center;font-size:14px;align-items:center;position: absolute;top: -7px;right: -7px;padding: 2px;background-color: red;border: 1px solid #fff;border-radius: 50%;height: 20px;width:20px;color:#fff;font-weight: bold;">
                   <div style="width: 75%;height: 2px;background-color: #fff;"></div>
                 </div>
               </div>
@@ -45,1284 +52,1548 @@
           </draggable>
           <div v-else style="width: 100%;text-align: center;">
             <div style="margin-top: 100px;">
-              <Icon type="logo-dropbox" color="#b6b6b6" size="42" />
+              <Icon type="logo-dropbox" color="#b6b6b6" size="42"/>
               <span style="display: block;color:#b6b6b6;margin-top: 5px;">请从左侧勾选以选择常用功能</span>
             </div>
           </div>
         </div>
       </div>
     </DkModal>
-    <!--    常用功能-->
-    <Card class="card" style="margin-top: 0" @contextmenu.native.prevent>
-      <p slot="title">
-        常用功能
-      </p>
-      <Button slot="extra" icon="md-create" @click="openFuncModal">
-        自定义
-      </Button>
-      <div style="width: 100%;display: flex;align-items: center;justify-content: space-between;">
-        <div style="width: 25px;" v-if="homeCommonUseList && homeCommonUseList.length > 0">
-          <Icon type="ios-arrow-dropleft" style="cursor: pointer" @click.native="scrollCommonUseCard('left')"
-                size="25"/>
-        </div>
-        <div class="common-use-scroll" style="width: calc(100% - 70px);overflow: hidden;">
-          <div v-if="homeCommonUseList && homeCommonUseList.length>0" style="display:flex;width: max-content;">
-            <div v-for="(hcuItem,hcuIndex) in homeCommonUseList" :key="hcuIndex" style="width: 92px;text-align: center;">
-              <div @click="toPage(hcuItem)" style="cursor: pointer;">
-                <div>
-                  <img style="width: 40px;height: 40px" :src="require('@/assets/images/menu-image/' + hcuItem.menuTag.image )" />
+
+    <div style="display: flex;justify-content: space-between">
+      <!--左侧-->
+      <div style="width: 80%">
+        <!--    常用功能-->
+        <Card class="card" style="margin-top: 0;height: 300px" @contextmenu.native.prevent>
+          <p slot="title">
+            常用功能
+          </p>
+          <Button slot="extra" icon="md-create" @click="openFuncModal">
+            自定义
+          </Button>
+          <div style="width: 100%;display: flex;align-items: center;justify-content: space-between;">
+            <div style="width: 25px;" v-if="homeCommonUseList && homeCommonUseList.length > 0">
+              <Icon type="ios-arrow-dropleft" style="cursor: pointer" @click.native="scrollCommonUseCard('left')"
+                    size="25"/>
+            </div>
+            <div class="common-use-scroll" style="width: calc(100% - 70px);overflow: hidden;">
+              <div v-if="homeCommonUseList && homeCommonUseList.length>0" style="display:flex;width: max-content;">
+                <div v-for="(hcuItem,hcuIndex) in homeCommonUseList" :key="hcuIndex"
+                     style="width: 92px;text-align: center;">
+                  <div @click="toPage(hcuItem)" style="cursor: pointer;">
+                    <div>
+                      <img style="width: 40px;height: 40px"
+                           :src="require('@/assets/images/menu-image/' + hcuItem.menuTag.image )"/>
+                    </div>
+                    <div style="font-size: 13px">{{ hcuItem.menuName }}</div>
+                  </div>
                 </div>
-                <div style="font-size: 13px">{{ hcuItem.menuName }}</div>
               </div>
+
+              <div v-else style="display:flex;width: max-content;">
+                <div @click="openFuncModal"
+                     style="cursor:pointer;border: 1px #d5d5d5 dashed;color:#b1b1b1;font-size:16px;height: 60px;width: 200px;background:#eaf9ff;border-radius: 10px;display: flex;align-items: center;justify-content: center;">
+                  添加常用功能
+                </div>
+              </div>
+            </div>
+            <div style="width: 25px;" v-if="homeCommonUseList && homeCommonUseList.length > 0">
+              <Icon type="ios-arrow-dropleft" style="transform: rotate(180deg);cursor: pointer;"
+                    @click.native="scrollCommonUseCard('right')" size="25"/>
             </div>
           </div>
+        </Card>
 
-          <div v-else style="display:flex;width: max-content;">
-            <div @click="openFuncModal" style="cursor:pointer;border: 1px #d5d5d5 dashed;color:#b1b1b1;font-size:16px;height: 60px;width: 200px;background:#eaf9ff;border-radius: 10px;display: flex;align-items: center;justify-content: center;">添加常用功能</div>
+        <!--    待办-->
+        <Card class="card card-upcoming" style="margin-top: 8px;height: 180px" @contextmenu.native.prevent>
+          <div style="display: flex">
+            <div style="font-size: 16px;font-weight:500;color:#17233d;margin-right: 40px">
+              待办中心
+            </div>
+            <Tabs value="name1" v-model="detailModel" @on-click="detailTabsClick">
+              <TabPane v-for="(item,index) in detailOptions" :key="index" :label="item.label"
+                       :name="item.name"></TabPane>
+            </Tabs>
           </div>
-        </div>
-        <div style="width: 25px;" v-if="homeCommonUseList && homeCommonUseList.length > 0">
-          <Icon type="ios-arrow-dropleft" style="transform: rotate(180deg);cursor: pointer;"
-                @click.native="scrollCommonUseCard('right')" size="25"/>
-        </div>
-      </div>
-    </Card>
-
-    <!--    待办-->
-    <Card class="card card-upcoming" @contextmenu.native.prevent>
-      <div style="display: flex">
-        <div style="font-size: 16px;font-weight:500;color:#17233d;margin-right: 40px">
-          待办中心
-        </div>
-        <Tabs value="name1"  v-model="detailModel" @on-click="detailTabsClick">
-          <TabPane v-for="(item,index) in detailOptions"  :key="index" :label="item.label" :name="item.name"></TabPane>
-        </Tabs>
-      </div>
-      <Tooltip style="cursor: pointer" slot="extra" :content="$v('refresh')" theme="light" >
-        <Button icon="md-refresh" shape="circle" class="circle-button" @click="refreshWaitCenter"></Button>
-      </Tooltip>
-      <div style="display: flex;align-items: center;">
-        <div class="upcoming">
-          <!--销售-->
-          <div class="upcoming-card" v-if="saleFlag"  @click="openDrawer($config.homeDrawType.waitAudit)">
-            <Row>
-              <Col span="6" class="upcoming-card-icon">
-                <img :src="require('@/assets/images/menu-image/' + 'web-order-pending.png')" style="width: 40px;height: 40px;"/>
-              </Col>
-              <Col span="18">
-                <Row class="upcoming-card-number">
-                  {{ orderCount }}
+          <Tooltip style="cursor: pointer" slot="extra" :content="$v('refresh')" theme="light">
+            <Button icon="md-refresh" shape="circle" class="circle-button" @click="refreshWaitCenter"></Button>
+          </Tooltip>
+          <div style="display: flex;align-items: center;">
+            <div class="upcoming">
+              <!--销售-->
+              <div class="upcoming-card" v-if="saleFlag" @click="openDrawer($config.homeDrawType.waitAudit)">
+                <Row>
+                  <Col span="6" class="upcoming-card-icon">
+                    <img :src="require('@/assets/images/menu-image/' + 'web-order-pending.png')"
+                         style="width: 40px;height: 40px;"/>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-number">
+                      {{ orderCount }}
+                    </Row>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
+                      {{ $t('salePending') }}
+                    </Row>
+                  </Col>
                 </Row>
-              </Col>
-              <Col span="18">
-                <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
-                  {{ $t('salePending') }}
+              </div>
+              <!--库存-->
+              <div class="upcoming-card" v-if="inventoryFlag" @click="openDrawer($config.homeDrawType.waitAudit)">
+                <Row>
+                  <Col span="6" class="upcoming-card-icon">
+                    <img :src="require('@/assets/images/menu-image/' + 'web-into-pending.png')"
+                         style="width: 40px;height: 40px;"/>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-number">
+                      {{ intoCount }}
+                    </Row>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
+                      {{ $t('intoPending') }}
+                    </Row>
+                  </Col>
                 </Row>
-              </Col>
-            </Row>
-          </div>
-          <!--库存-->
-          <div class="upcoming-card" v-if="inventoryFlag"  @click="openDrawer($config.homeDrawType.waitAudit)">
-            <Row>
-              <Col span="6" class="upcoming-card-icon">
-                <img :src="require('@/assets/images/menu-image/' + 'web-into-pending.png')" style="width: 40px;height: 40px;"/>
-              </Col>
-              <Col span="18">
-                <Row class="upcoming-card-number">
-                  {{ intoCount }}
+              </div>
+              <div class="upcoming-card" v-if="inventoryFlag" @click="openDrawer($config.homeDrawType.waitAudit)">
+                <Row>
+                  <Col span="6" class="upcoming-card-icon">
+                    <img :src="require('@/assets/images/menu-image/' + 'web-out-pending.png')"
+                         style="width: 40px;height: 40px;"/>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-number">
+                      {{ outCount }}
+                    </Row>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
+                      {{ $t('outPending') }}
+                    </Row>
+                  </Col>
                 </Row>
-              </Col>
-              <Col span="18">
-                <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
-                  {{ $t('intoPending') }}
+              </div>
+              <!--资金-->
+              <div class="upcoming-card" v-if="fundFlag" @click="openDrawer($config.homeDrawType.waitAudit)">
+                <Row>
+                  <Col span="6" class="upcoming-card-icon">
+                    <img :src="require('@/assets/images/menu-image/' + 'web-fund-pending.png')"
+                         style="width: 40px;height: 40px;"/>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-number">
+                      {{ fundCount }}
+                    </Row>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
+                      {{ $t('fundPending') }}
+                    </Row>
+                  </Col>
                 </Row>
-              </Col>
-            </Row>
+              </div>
+            </div>
           </div>
-          <div class="upcoming-card" v-if="inventoryFlag"  @click="openDrawer($config.homeDrawType.waitAudit)">
-            <Row>
-              <Col span="6" class="upcoming-card-icon">
-                <img :src="require('@/assets/images/menu-image/' + 'web-out-pending.png')" style="width: 40px;height: 40px;"/>
-              </Col>
-              <Col span="18">
-                <Row class="upcoming-card-number">
-                  {{ outCount }}
+        </Card>
+
+        <!-- 实时数据 -->
+        <Card class="card card-upcoming" style="margin-top: 8px;height: 180px" @contextmenu.native.prevent>
+          <div style="display: flex">
+            <div style="font-size: 16px;font-weight:500;color:#17233d;margin-right: 40px">
+              实时数据
+            </div>
+            <Select v-model="realTimeDataType" style="width:200px;margin: 0px 0px 10px 0px" ref="selCp"
+                    @on-change="cpRealTimeDataType">
+              <Option v-for="item in realTimeDataTypeList" :value="item.id" :key="item.id">{{ item.name }}</Option>
+            </Select>
+          </div>
+          <Tooltip style="cursor: pointer" slot="extra" :content="$v('refresh')" theme="light">
+            <Button icon="md-refresh" shape="circle" class="circle-button" @click="refreshRealTimeData "></Button>
+          </Tooltip>
+          <div style="display: flex;align-items: center;">
+            <div class="upcoming">
+              <!--销售订单-->
+              <div class="upcoming-card" @click="openDrawer($config.homeDrawType.waitAudit)">
+                <Row>
+                  <Col span="6" class="upcoming-card-icon">
+                    <img :src="require('@/assets/images/menu-image/' + 'web-order-pending.png')"
+                         style="width: 40px;height: 40px;"/>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 15px 0px 0px 5px">
+                      {{ orderQty }} 单 {{ orderAmt }} 元
+                    </Row>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
+                      销售订单
+                    </Row>
+                  </Col>
                 </Row>
-              </Col>
-              <Col span="18">
-                <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
-                  {{ $t('outPending') }}
+              </div>
+              <!--出库订单-->
+              <div class="upcoming-card" @click="openDrawer($config.homeDrawType.waitAudit)">
+                <Row>
+                  <Col span="6" class="upcoming-card-icon">
+                    <img :src="require('@/assets/images/menu-image/' + 'web-into-pending.png')"
+                         style="width: 40px;height: 40px;"/>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 15px 0px 0px 5px">
+                      {{ outQty }} 单 {{ outAmt }} 元
+                    </Row>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
+                      出库订单
+                    </Row>
+                  </Col>
                 </Row>
-              </Col>
-            </Row>
-          </div>
-          <!--资金-->
-          <div class="upcoming-card" v-if="fundFlag"  @click="openDrawer($config.homeDrawType.waitAudit)">
-            <Row>
-              <Col span="6" class="upcoming-card-icon">
-                <img :src="require('@/assets/images/menu-image/' + 'web-fund-pending.png')" style="width: 40px;height: 40px;"/>
-              </Col>
-              <Col span="18">
-                <Row class="upcoming-card-number">
-                  {{ fundCount }}
+              </div>
+              <!--退货订单-->
+              <div class="upcoming-card" @click="openDrawer($config.homeDrawType.waitAudit)">
+                <Row>
+                  <Col span="6" class="upcoming-card-icon">
+                    <img :src="require('@/assets/images/menu-image/' + 'web-out-pending.png')"
+                         style="width: 40px;height: 40px;"/>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 15px 0px 0px 5px">
+                      {{ returnQty }} 单 {{ returnAmt }} 元
+                    </Row>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
+                      退货订单
+                    </Row>
+                  </Col>
                 </Row>
-              </Col>
-              <Col span="18">
-                <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
-                  {{ $t('fundPending') }}
+              </div>
+              <!--新增客户-->
+              <div class="upcoming-card" @click="openDrawer($config.homeDrawType.waitAudit)">
+                <Row>
+                  <Col span="6" class="upcoming-card-icon">
+                    <img :src="require('@/assets/images/menu-image/' + 'web-order-pending.png')"
+                         style="width: 40px;height: 40px;"/>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 15px 0px 0px 5px">
+                      {{ cusQty }} 单 {{ cusAmt }} 元
+                    </Row>
+                  </Col>
+                  <Col span="18">
+                    <Row class="upcoming-card-text" style="margin: 5px 0px 0px 5px">
+                      新增客户
+                    </Row>
+                  </Col>
                 </Row>
-              </Col>
-            </Row>
+              </div>
+            </div>
           </div>
-        </div>
+        </Card>
+
+        <!-- 销售趋势 -->
+        <Card class="card card-upcoming" style="margin-top: 8px;height: 280px" @contextmenu.native.prevent>
+          <div style="display: flex">
+            <div style="font-size: 16px;font-weight:500;color:#17233d;margin-right: 40px">
+              销售趋势
+            </div>
+          </div>
+
+        </Card>
       </div>
-    </Card>
+      <!--右侧-->
+      <div style="width: 20%;margin-left: 8px">
+        <!-- 产品公告 -->
+        <Card class="card" style="margin-top: 0;height: 300px" @contextmenu.native.prevent>
+          <p slot="title">
+            产品公告
+          </p>
+          <Button slot="extra" icon="md-create" @click="moreProductAnnouncement">
+            更多
+          </Button>
+        </Card>
+
+        <!-- 走马灯 -->
+        <Card class="card card-upcoming" style="margin-top: 8px;height: 367px" @contextmenu.native.prevent>
+          <Carousel autoplay :height="350" :autoplay-speed="10000" :radius-dot="true" loop>
+            <CarouselItem v-for="(item, index) in dataCarouselItems">
+              <img :src="$config.imgUrl + item.annexPaths[0].url" style="width: 100%;height: 95%;cursor:pointer"
+                   @click="showActivity(item)">
+            </CarouselItem>
+          </Carousel>
+        </Card>
 
+        <!-- 新手指导 -->
+        <Card class="card" style="margin-top: 8px;height: 280px" @contextmenu.native.prevent>
+          <p slot="title">
+            新手指导
+          </p>
+          <Button slot="extra" icon="md-create" @click="beginnersGuide">
+            快速掌握
+          </Button>
+          <div style="width:100%;text-align: center;">
+            <img src="@/assets/images/dkic-code.png" style="width: 40%;height: 40%;">
+          </div>
+        </Card>
+      </div>
+    </div>
     <!--    底部留白-->
     <div style="width: 100%; height: 20px"></div>
   </div>
 </template>
 
 <script>
-  import funcIcon from '../../../assets/images/func-icon.png'
-  import draggable from "vuedraggable"
-  export default {
-    name: 'home',
-    components: {
-      draggable,
-    },
-    data() {
-      let self = this
-      return {
-        drawType: self.$config.homeDrawType.waitAudit, // 首页抽屉类型
-        approvalCount: null , // 待审条数
-        unReadNoticeCount: null, // 未读公告条数
-        waitApprovalRight:false,// 待审中心权限
-        approveSplit: 0.6,
-        funcIcon,
-        /*****************常用功能*****************/
-        funcModal: false,
-        funcModalLoading: false,
-        funcList: [],
-        rightFuncList: [],
-        homeCommonUseList: [],
-        /*****************常用功能*****************/
+import funcIcon from '../../../assets/images/func-icon.png'
+import draggable from "vuedraggable"
+import {indexMixin} from '@/mixins'
 
-        /*****************待办*****************/
-        detailModel: 'sale',
-        detailOptions: [
-          {label: self.$t('sale'), name: 'sale'}, //销售
-          {label: self.$t('inventory'), name: 'inventory'},//库存
-          {label: self.$t('fund'), name: 'fund'},//资金
-        ],
-        saleFlag:true,
-        inventoryFlag:false,
-        fundFlag:false,
-        fundCount:0,
-        outCount:0,
-        intoCount:0,
-        orderCount:0,
-        /*****************待办*****************/
+export default {
+  name: 'home',
+  mixins: [indexMixin],
+  components: {
+    draggable,
+  },
+  data() {
+    let self = this
+    return {
+      dataCarouselItems: [],
+      // {path: "@/assets/images/icon_file.png", cIndex: 1}, //销售
+      // {path: "@/assets/images/icon_file.png", cIndex: 2},//库存
+      // {path: "@/assets/images/icon_file.png", cIndex: 3},//资金
+      // ],
+      drawType: self.$config.homeDrawType.waitAudit, // 首页抽屉类型
+      approvalCount: null, // 待审条数
+      unReadNoticeCount: null, // 未读公告条数
+      waitApprovalRight: false,// 待审中心权限
+      approveSplit: 0.6,
+      funcIcon,
+      /*****************常用功能*****************/
+      funcModal: false,
+      funcModalLoading: false,
+      funcList: [],
+      rightFuncList: [],
+      homeCommonUseList: [],
+      /*****************常用功能*****************/
 
-        //公告
-        managementTableData: [],
-        //图表颜色
-        colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],
-        // 日期配置
-        dateOptions: {
-          shortcuts: [
-            {
-              text: '一月',
-              value() {
-                return self.getThisMonth(1)
-              }
-            },
-            {
-              text: '二月',
-              value() {
-                return self.getThisMonth(2)
-              }
-            },
-            {
-              text: '三月',
-              value() {
-                return self.getThisMonth(3)
-              }
-            },
-            {
-              text: '四月',
-              value() {
-                return self.getThisMonth(4)
-              }
-            },
-            {
-              text: '五月',
-              value() {
-                return self.getThisMonth(5)
-              }
-            },
-            {
-              text: '六月',
-              value() {
-                return self.getThisMonth(6)
-              }
-            },
-            {
-              text: '七月',
-              value() {
-                return self.getThisMonth(7)
-              }
-            },
-            {
-              text: '八月',
-              value() {
-                return self.getThisMonth(8)
-              }
-            },
-            {
-              text: '九月',
-              value() {
-                return self.getThisMonth(9)
-              }
-            },
-            {
-              text: '十月',
-              value() {
-                return self.getThisMonth(10)
-              }
-            },
-            {
-              text: '十一月',
-              value() {
-                return self.getThisMonth(11)
-              }
-            },
-            {
-              text: '十二月',
-              value() {
-                return self.getThisMonth(12)
-              }
-            },
-            {
-              text: '一季度',
-              value() {
-                return self.getThisQuarter(1)
-              }
-            },
-            {
-              text: '二季度',
-              value() {
-                return self.getThisQuarter(2)
-              }
-            },
-            {
-              text: '三季度',
-              value() {
-                return self.getThisQuarter(3)
-              }
-            },
-            {
-              text: '四季度',
-              value() {
-                return self.getThisQuarter(4)
-              }
-            },
-          ]
-        },
-        // 抽屉
-        drawerShow: false,
-        // 抽屉标题
-        drawerTitle: null,
-        // 抽屉表格
-        drawerTableData: [],
-        // 抽屉表格列
-        drawerTableColumn: [],
-        // 业绩日期范围
-        performanceDate: self.getThisMonth(),
-        // 业务门店select v-model
-        performanceStore: '全部门店',
-        // 门店
-        performanceStoreList: [
+      /*****************待办*****************/
+      detailModel: 'sale',
+      detailOptions: [
+        {label: self.$t('sale'), name: 'sale'}, //销售
+        {label: self.$t('inventory'), name: 'inventory'},//库存
+        {label: self.$t('fund'), name: 'fund'},//资金
+      ],
+      saleFlag: true,
+      inventoryFlag: false,
+      fundFlag: false,
+      fundCount: 0,
+      outCount: 0,
+      intoCount: 0,
+      orderCount: 0,
+      /*****************待办*****************/
+
+      //公告
+      managementTableData: [],
+      //图表颜色
+      colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],
+      // 日期配置
+      dateOptions: {
+        shortcuts: [
           {
-            value: '全部门店',
-            label: '全部门店'
+            text: '一月',
+            value() {
+              return self.getThisMonth(1)
+            }
           },
           {
-            value: 'A门店',
-            label: 'A门店'
+            text: '二月',
+            value() {
+              return self.getThisMonth(2)
+            }
           },
           {
-            value: 'B门店',
-            label: 'B门店'
+            text: '三月',
+            value() {
+              return self.getThisMonth(3)
+            }
           },
-        ],
-        // 销售简报页面类型
-        salesReportType: 1,
-        // 销售简报公司select v-model
-        salesReportCompany: 'A公司',
-        salesReportCompanyList: [
           {
-            value: 'A公司',
-            label: 'A公司'
+            text: '四月',
+            value() {
+              return self.getThisMonth(4)
+            }
           },
           {
-            value: 'B公司',
-            label: 'B公司'
+            text: '五月',
+            value() {
+              return self.getThisMonth(5)
+            }
           },
-        ],
-        // 销售简报人员 v-model
-        salesReportStaff: 'A员工',
-        // 销售简报人员List
-        salesReportStaffList: [
           {
-            value: 'A员工',
-            label: 'A员工'
+            text: '六月',
+            value() {
+              return self.getThisMonth(6)
+            }
+          },
+          {
+            text: '七月',
+            value() {
+              return self.getThisMonth(7)
+            }
           },
           {
-            value: 'B员工',
-            label: 'B员工'
+            text: '八月',
+            value() {
+              return self.getThisMonth(8)
+            }
           },
-        ],
-        // 销售简报radio
-        salesReportRadio: '销售情况',
-        // 销售助手天数list
-        salesHelperDaysList: [
           {
-            value: '7',
-            label: '7天'
+            text: '九月',
+            value() {
+              return self.getThisMonth(9)
+            }
           },
           {
-            value: '15',
-            label: '15天'
+            text: '十月',
+            value() {
+              return self.getThisMonth(10)
+            }
           },
           {
-            value: '30',
-            label: '30天'
+            text: '十一月',
+            value() {
+              return self.getThisMonth(11)
+            }
           },
-        ],
-        // 销售助手天数1
-        salesHelperDays1: '7',
-        // 销售助手天数2
-        salesHelperDays2: '15',
-        // 销售助手天数3
-        salesHelperDays3: '30',
-      }
+          {
+            text: '十二月',
+            value() {
+              return self.getThisMonth(12)
+            }
+          },
+          {
+            text: '一季度',
+            value() {
+              return self.getThisQuarter(1)
+            }
+          },
+          {
+            text: '二季度',
+            value() {
+              return self.getThisQuarter(2)
+            }
+          },
+          {
+            text: '三季度',
+            value() {
+              return self.getThisQuarter(3)
+            }
+          },
+          {
+            text: '四季度',
+            value() {
+              return self.getThisQuarter(4)
+            }
+          },
+        ]
+      },
+      // 抽屉
+      drawerShow: false,
+      // 抽屉标题
+      drawerTitle: null,
+      // 抽屉表格
+      drawerTableData: [],
+      // 抽屉表格列
+      drawerTableColumn: [],
+      // 业绩日期范围
+      performanceDate: self.getThisMonth(),
+      // 业务门店select v-model
+      performanceStore: '全部门店',
+      // 门店
+      performanceStoreList: [
+        {
+          value: '全部门店',
+          label: '全部门店'
+        },
+        {
+          value: 'A门店',
+          label: 'A门店'
+        },
+        {
+          value: 'B门店',
+          label: 'B门店'
+        },
+      ],
+      // 销售简报页面类型
+      salesReportType: 1,
+      // 销售简报公司select v-model
+      salesReportCompany: 'A公司',
+      salesReportCompanyList: [
+        {
+          value: 'A公司',
+          label: 'A公司'
+        },
+        {
+          value: 'B公司',
+          label: 'B公司'
+        },
+      ],
+      // 销售简报人员 v-model
+      salesReportStaff: 'A员工',
+      // 销售简报人员List
+      salesReportStaffList: [
+        {
+          value: 'A员工',
+          label: 'A员工'
+        },
+        {
+          value: 'B员工',
+          label: 'B员工'
+        },
+      ],
+      // 销售简报radio
+      salesReportRadio: '销售情况',
+      // 销售助手天数list
+      salesHelperDaysList: [
+        {
+          value: '7',
+          label: '7天'
+        },
+        {
+          value: '15',
+          label: '15天'
+        },
+        {
+          value: '30',
+          label: '30天'
+        },
+      ],
+      // 销售助手天数1
+      salesHelperDays1: '7',
+      // 销售助手天数2
+      salesHelperDays2: '15',
+      // 销售助手天数3
+      salesHelperDays3: '30',
+
+      /***************** 实时数据 ******************/
+      realTimeDataType: "经营日报",
+      orderQty: 0,
+      orderAmt: 0,
+      outQty: 0,
+      outAmt: 0,
+      returnQty: 0,
+      returnAmt: 0,
+      cusQty: 0,
+      cusAmt: 0,
+      realTimeDataTypeList: [
+        {"id": "经营日报", "name": "经营日报"},
+        {"id": "经营月报", "name": "经营月报"}
+      ],
+      /***************** 实时数据 ******************/
+    }
+  },
+  mounted() {
+    // 监听页面,如果大小变化,抽屉关闭
+    let self = this
+    window.addEventListener('resize', function (e) {
+      self.drawerShow = false;
+    })
+  },
+  methods: {
+    /****************************************常用功能****************************************/
+    /**
+     *   @desc   : 常用功能弹窗查询数据
+     *   @date   : 2024/4/28 15:02
+     *   @author : 寇珊珊
+     */
+    openFuncModal() {
+      this.funcModal = true
+      let hadMenuUuidList = this.homeCommonUseList.map(it => it.menuUuid)
+      let rightFuncList = []
+      this.funcList.forEach(it => {
+        if (it.children && it.children.length > 0) {
+          it.children.forEach(it2 => {
+            this.$set(it2, '_checked', false)
+            if (hadMenuUuidList.indexOf(it2.menuUuid) !== -1) {
+              rightFuncList.push(Object.assign(it2, {displayNo: hadMenuUuidList.indexOf(it2.menuUuid)}))
+              this.$set(it2, '_checked', true)
+            }
+          })
+        }
+      })
+      this.rightFuncList = rightFuncList.sort((x, y) => {
+        return x.displayNo - y.displayNo
+      })
+    },
+    /**
+     * @desc   : 关闭常用功能界面
+     * @author : 周兴
+     * @date   : 2022/8/22 14:38
+     */
+    closeCommonUse() {
+      this.funcModal = false
+    },
+    /**
+     * @desc   : 保存常用功能
+     * @author : 周兴
+     * @date   : 2022/8/22 14:25
+     */
+    saveCommonUse() {
+      this.funcModalLoading = true
+      let params = this.rightFuncList.map((it, index) => {
+        return {userId: this.$store.state.user.id, displayNo: index, menuUuid: it.menuUuid, menuName: it.meta.title}
+      })
+      console.log("保存常用功能", params)
+      let excute = this.excute(this.$service.appMenuService, this.$service.appMenuService.save, params)
+      excute.then(res => {
+        this.funcModalLoading = false
+        this.funcModal = false
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.selectCommonUse()
+        }
+      })
+      return excute;
     },
-    mounted() {
-      // 监听页面,如果大小变化,抽屉关闭
-      let self = this
-      window.addEventListener('resize', function (e) {
-        self.drawerShow = false;
+    /**
+     * @desc   : 查询常用功能
+     * @author : 周兴
+     * @date   : 2022/8/22 14:16
+     */
+    selectCommonUse() {
+      let params = {
+        appCode: this.$config.appCode.WEB,
+        staffId: this.$store.state.user.staffId,
+      }
+      this.excute(this.$service.appMenuService, this.$service.appMenuService.selectMenu, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.homeCommonUseList = res.data
+        }
       })
     },
-    methods: {
-      /****************************************常用功能****************************************/
-      /**
-       *   @desc   : 常用功能弹窗查询数据
-       *   @date   : 2024/4/28 15:02
-       *   @author : 寇珊珊
-       */
-      openFuncModal() {
-        this.funcModal = true
-        let hadMenuUuidList = this.homeCommonUseList.map(it => it.menuUuid)
-        let rightFuncList = []
-        this.funcList.forEach(it => {
+    toPage(menu) {
+      this.$router.push({path: menu.menuTag.path})
+    },
+    /**
+     * @desc   : 滚动菜单
+     * @author : 周兴
+     * @date   : 2022/8/30 18:53
+     */
+    scrollCommonUseCard(e) {
+      for (let i = 0; i < 701; i++) {
+        setTimeout(function () {
+          if (e == 'left') {
+            document.getElementsByClassName('common-use-scroll')[0].scrollLeft--
+          } else {
+            document.getElementsByClassName('common-use-scroll')[0].scrollLeft++
+          }
+        }, 100 + i)
+      }
+    },
+    /**
+     * @desc   : 获取常用功能的菜单
+     * @author : 周兴
+     * @date   : 2022/8/22 10:47
+     */
+    getCommonMenu() {
+      if (this.$store.state.app.menuList && this.$store.state.app.menuList.length > 0) {
+        let menuList = [...this.$store.state.app.menuList]
+        let funcList = []
+        menuList.forEach(it => {
+          let funcItem = {}
+          // 不包括首页
+          if (it.name != 'home') {
+            funcItem.name = it.name;
+            funcItem.menuUuid = it.menuUuid;
+            funcItem.parentUuid = it.parentUuid;
+            funcItem.meta = it.meta;
+          }
+          // 查询子级
           if (it.children && it.children.length > 0) {
-            it.children.forEach(it2 => {
-              this.$set(it2, '_checked', false)
-              if (hadMenuUuidList.indexOf(it2.menuUuid) !== -1) {
-                rightFuncList.push(Object.assign(it2, {displayNo: hadMenuUuidList.indexOf(it2.menuUuid)}))
-                this.$set(it2, '_checked', true)
-              }
-            })
+            let funcListChilds = this.getCommonChild(it.children);
+            if (funcListChilds && funcListChilds.length > 0) {
+              funcItem.children = funcListChilds;
+              funcList.push(funcItem);
+            }
           }
         })
-        this.rightFuncList = rightFuncList.sort((x, y) => {
-          return x.displayNo - y.displayNo
-        })
-      },
-      /**
-       * @desc   : 关闭常用功能界面
-       * @author : 周兴
-       * @date   : 2022/8/22 14:38
-       */
-      closeCommonUse() {
-        this.funcModal = false
-      },
-      /**
-       * @desc   : 保存常用功能
-       * @author : 周兴
-       * @date   : 2022/8/22 14:25
-       */
-      saveCommonUse() {
-        this.funcModalLoading = true
-        let params = this.rightFuncList.map((it, index) => {
-          return {userId: this.$store.state.user.id, displayNo: index, menuUuid: it.menuUuid, menuName:it.meta.title}
-        })
-        console.log("保存常用功能",params )
-        let excute =  this.excute(this.$service.appMenuService, this.$service.appMenuService.save, params)
-        excute.then(res => {
-          this.funcModalLoading = false
-          this.funcModal = false
-          if (res.code === this.$config.SUCCESS_CODE) {
-            this.selectCommonUse()
+        this.funcList = funcList;
+      }
+    },
+    /**
+     * @desc   : 获取子级的菜单
+     * @author : 周兴
+     * @date   : 2022/8/22 11:11
+     */
+    getCommonChild(children) {
+      let funcList = []
+      if (children && children.length > 0) {
+        children.forEach(it => {
+          // 说明要需要进行快捷的菜单
+          let funcItem = {}
+          funcItem.name = it.name;
+          funcItem.meta = it.meta;
+          funcItem.menuUuid = it.menuUuid;
+          funcItem.parentUuid = it.parentUuid;
+          funcList.push(funcItem);
+          // 如果还有子级,需要去查询子级
+          if (it.children && it.children.length > 0) {
+            let funcListChilds = this.getCommonChild(it.children);
+            if (funcListChilds && funcListChilds.length > 0) {
+              funcListChilds.forEach(c => {
+                if (c.parentUuid) {
+                  let index = funcList.findIndex(item => c.parentUuid === item.menuUuid);
+                  if (index >= 0) {
+                    funcList.splice(index + 1, 0, c);
+                  } else {
+                    funcList.push(c);
+                  }
+                } else {
+                  funcList.push(c);
+                }
+              })
+            }
           }
         })
-        return excute;
-      },
-      /**
-       * @desc   : 查询常用功能
-       * @author : 周兴
-       * @date   : 2022/8/22 14:16
-       */
-      selectCommonUse() {
+      }
+      return funcList;
+    },
+    /**
+     *   @desc   : 常用功能弹窗全部清空
+     *   @date   : 2024/4/29 13:58
+     *   @author : 寇珊珊
+     */
+    clearAll() {
+      this.rightFuncList.forEach(it => {
+        this.funcCheckBoxChangeRight('name-' + it.menuUuid)
+      })
+    },
+    funcCheckBoxChangeRight(name) {
+      this.$refs[name][0].$el.click()
+    },
+    /**
+     *   @desc   : 常用功能弹窗左侧选择事件
+     *   @date   : 2024/4/29 14:00
+     *   @author : 寇珊珊
+     */
+    funcCheckBoxChange(flag, item) {
+      // menuUuid
+      if (flag) {
+        this.rightFuncList.push(item)
+      } else {
+        this.rightFuncList = this.rightFuncList.filter(it => it.menuUuid !== item.menuUuid)
+      }
+    },
+    /****************************************常用功能****************************************/
+
+    /****************************************待办功能****************************************/
+    /**
+     *   @desc   : 待办切换
+     *   @date   : 2024/4/28 17:01
+     *   @author : 寇珊珊
+     */
+    detailTabsClick(val) {
+      this.detailModel = val
+      //销售
+      if (val === 'sale') {
+        this.saleFlag = true
+        this.inventoryFlag = false
+        this.fundFlag = false
+      }
+      //库存
+      else if (val === 'inventory') {
+        this.saleFlag = false
+        this.inventoryFlag = true
+        this.fundFlag = false
+      }
+      //资金
+      else if (val === 'fund') {
+        this.saleFlag = false
+        this.inventoryFlag = false
+        this.fundFlag = true
+      }
+      //查询待办个数
+      this.selectPending()
+    },
+    /**
+     *   @desc   : 刷新待办中心数据
+     *   @date   : 2024/4/29 11:04
+     *   @author : 寇珊珊
+     */
+    refreshWaitCenter() {
+      //查询待办个数
+      this.selectPending()
+    },
+    /**
+     *   @desc   : 查询待办个数
+     *   @date   : 2024/4/28 17:25
+     *   @author : 寇珊珊
+     */
+    selectPending() {
+      //订单
+      if (this.detailModel === 'sale') {
         let params = {
-          appCode:this.$config.appCode.WEB,
-          staffId:this.$store.state.user.staffId,
+          appCode: this.$config.appCode.WEB,
+          orderStatusList: [this.$config.outStatus.daiChuKu, this.$config.outStatus.chuKuZhong],
         }
-        this.excute(this.$service.appMenuService, this.$service.appMenuService.selectMenu,params).then(res => {
+        this.excute(this.$service.orderService, this.$service.orderService.countOrderByCond, params).then(res => {
           if (res.code === this.$config.SUCCESS_CODE) {
-            this.homeCommonUseList = res.data
+            this.orderCount = res.data
           }
         })
-      },
-      toPage(menu) {
-        this.$router.push({path: menu.menuTag.path})
-      },
-      /**
-       * @desc   : 滚动菜单
-       * @author : 周兴
-       * @date   : 2022/8/30 18:53
-       */
-      scrollCommonUseCard(e) {
-        for (let i = 0; i < 701; i++) {
-          setTimeout(function () {
-            if (e == 'left') {
-              document.getElementsByClassName('common-use-scroll')[0].scrollLeft--
-            } else {
-              document.getElementsByClassName('common-use-scroll')[0].scrollLeft++
-            }
-          }, 100 + i)
-        }
-      },
-      /**
-       * @desc   : 获取常用功能的菜单
-       * @author : 周兴
-       * @date   : 2022/8/22 10:47
-       */
-      getCommonMenu(){
-        if(this.$store.state.app.menuList && this.$store.state.app.menuList.length > 0){
-          let menuList = [...this.$store.state.app.menuList]
-          let funcList = []
-          menuList.forEach(it =>{
-            let funcItem = {}
-            // 不包括首页
-            if(it.name != 'home'){
-              funcItem.name = it.name;
-              funcItem.menuUuid = it.menuUuid;
-              funcItem.parentUuid = it.parentUuid;
-              funcItem.meta = it.meta;
-            }
-            // 查询子级
-            if(it.children && it.children.length > 0){
-              let funcListChilds = this.getCommonChild(it.children);
-              if(funcListChilds && funcListChilds.length > 0){
-                funcItem.children = funcListChilds;
-                funcList.push(funcItem);
-              }
-            }
-          })
-          this.funcList = funcList;
+      }
+      //出入库
+      else if (this.detailModel === 'inventory') {
+        //入库
+        let intoParams = {
+          appCode: this.$config.appCode.WEB,
         }
-      },
-      /**
-       * @desc   : 获取子级的菜单
-       * @author : 周兴
-       * @date   : 2022/8/22 11:11
-       */
-      getCommonChild(children){
-        let funcList = []
-        if(children && children.length > 0){
-          children.forEach(it=>{
-            // 说明要需要进行快捷的菜单
-              let funcItem = {}
-              funcItem.name = it.name;
-              funcItem.meta = it.meta;
-              funcItem.menuUuid = it.menuUuid;
-              funcItem.parentUuid = it.parentUuid;
-              funcList.push(funcItem);
-            // 如果还有子级,需要去查询子级
-            if(it.children && it.children.length > 0){
-              let funcListChilds = this.getCommonChild(it.children);
-              if(funcListChilds && funcListChilds.length > 0){
-                funcListChilds.forEach(c=>{
-                  if(c.parentUuid){
-                    let index = funcList.findIndex(item => c.parentUuid === item.menuUuid);
-                    if(index >= 0){
-                      funcList.splice(index + 1,0,c);
-                    }else{
-                      funcList.push(c);
-                    }
-                  }else{
-                    funcList.push(c);
-                  }
-                })
-              }
-            }
-          })
+        this.excute(this.$service.otherInboundService, this.$service.otherInboundService.selectWaitInboundCount, intoParams).then(res => {
+          if (res.code === this.$config.SUCCESS_CODE) {
+            this.intoCount = res.data
+          }
+        })
+        //出库
+        let outParams = {
+          appCode: this.$config.appCode.WEB,
         }
-        return funcList;
-      },
-      /**
-       *   @desc   : 常用功能弹窗全部清空
-       *   @date   : 2024/4/29 13:58
-       *   @author : 寇珊珊
-       */
-      clearAll(){
-        this.rightFuncList.forEach(it=>{
-          this.funcCheckBoxChangeRight('name-'+it.menuUuid)
+        this.excute(this.$service.otherOutboundService, this.$service.otherOutboundService.selectWaitOutboundCount, outParams).then(res => {
+          if (res.code === this.$config.SUCCESS_CODE) {
+            this.outCount = res.data
+          }
         })
-      },
-      funcCheckBoxChangeRight(name){
-        this.$refs[name][0].$el.click()
-      },
-      /**
-       *   @desc   : 常用功能弹窗左侧选择事件
-       *   @date   : 2024/4/29 14:00
-       *   @author : 寇珊珊
-       */
-      funcCheckBoxChange(flag, item) {
-        // menuUuid
-        if (flag) {
-          this.rightFuncList.push(item)
-        } else {
-          this.rightFuncList = this.rightFuncList.filter(it => it.menuUuid !== item.menuUuid)
+      }
+      //资金
+      else if (this.detailModel === 'fund') {
+        let params = {
+          appCode: this.$config.appCode.WEB,
+          amtResidueZeroFlg: true,
+          accItemType: this.$config.fundType.yingShou,
         }
-      },
-      /****************************************常用功能****************************************/
+        this.excute(this.$service.accountService, this.$service.accountService.getReceivableAccountItemCount, params).then(res => {
+          if (res.code === this.$config.SUCCESS_CODE) {
+            this.fundCount = res.data
+          }
+        })
+      }
+    },
+    /**
+     * @desc   : 打开抽屉
+     * @author : 洪旭东
+     * @date   : 2022-05-02 17:27
+     */
+    openDrawer(type) {
+      let drawer = document.getElementsByClassName('ivu-drawer-bottom')
+      let leftSider = document.getElementsByClassName('left-sider')
+      if (drawer && leftSider && drawer[0] && leftSider[0]) {
+        // console.log(document.body.clientWidth, leftSider[0].getBoundingClientRect().width)
+        drawer[0].style.width = (document.body.clientWidth - leftSider[0].getBoundingClientRect().width) + 'px'
+      }
+      if (type === this.$config.homeDrawType.notice) {
+        // 获取未读公告
+        this.selectManagement();
+      }
+      // let self = this;
+      // switch (type){
+      //   case self.$config.homeDrawType.waitAudit:
+      //     this.drawerTitle = "待审中心";
+      //     break;
+      //   case self.$config.homeDrawType.notice:
+      //     this.drawerTitle = "系统公告";
+      //     break;
+      // }
+      this.drawType = type;
+      this.drawerShow = true
+    },
+    /****************************************待办功能****************************************/
 
-      /****************************************待办功能****************************************/
-      /**
-       *   @desc   : 待办切换
-       *   @date   : 2024/4/28 17:01
-       *   @author : 寇珊珊
-       */
-      detailTabsClick(val) {
-        this.detailModel= val
-        //销售
-        if (val === 'sale') {
-          this.saleFlag = true
-          this.inventoryFlag = false
-          this.fundFlag = false
-        }
-        //库存
-        else if (val === 'inventory') {
-          this.saleFlag = false
-          this.inventoryFlag = true
-          this.fundFlag = false
-        }
-        //资金
-        else if(val === 'fund'){
-          this.saleFlag = false
-          this.inventoryFlag = false
-          this.fundFlag = true
+    /**
+     * @desc   : 打开审批一览页面
+     * @author : 周兴
+     * @date   : 2022/9/2 14:15
+     */
+    openApprovalIndex() {
+      this.$router.push('/approval/waiting-for-approval/index');
+    },
+    /**
+     * @desc   : 过滤需要显示的菜单
+     * @author : 周兴
+     * @date   : 2022/8/22 9:49
+     */
+    filterShowMenu(arr, list) {
+      arr.children = list.filter(it => it.meta && !it.meta.hideInMenu)
+      arr.children.forEach(it => {
+        // it.meta.url = '../../../assets/images/' +  (it.meta.image?it.meta.image:'func-icon.png');
+        if (!it.meta.image) {
+          it.meta.image = 'func-icon.png';
         }
-        //查询待办个数
-        this.selectPending()
-      },
-      /**
-       *   @desc   : 刷新待办中心数据
-       *   @date   : 2024/4/29 11:04
-       *   @author : 寇珊珊
-       */
-      refreshWaitCenter(){
-        //查询待办个数
-       this.selectPending()
-      },
-      /**
-       *   @desc   : 查询待办个数
-       *   @date   : 2024/4/28 17:25
-       *   @author : 寇珊珊
-       */
-      selectPending(){
-        //订单
-       if(this.detailModel ==='sale'){
-         let params = {
-           appCode:this.$config.appCode.WEB,
-           orderStatusList:[this.$config.outStatus.daiChuKu,this.$config.outStatus.chuKuZhong],
-         }
-         this.excute(this.$service.orderService, this.$service.orderService.countOrderByCond,params).then(res => {
-           if (res.code === this.$config.SUCCESS_CODE) {
-             this.orderCount = res.data
-           }
-         })
-       }
-       //出入库
-       else if(this.detailModel ==='inventory'){
-         //入库
-         let intoParams = {
-           appCode:this.$config.appCode.WEB,
-         }
-         this.excute(this.$service.otherInboundService, this.$service.otherInboundService.selectWaitInboundCount,intoParams).then(res => {
-           if (res.code === this.$config.SUCCESS_CODE) {
-             this.intoCount = res.data
-           }
-         })
-         //出库
-         let outParams = {
-           appCode:this.$config.appCode.WEB,
-         }
-         this.excute(this.$service.otherOutboundService, this.$service.otherOutboundService.selectWaitOutboundCount,outParams).then(res => {
-           if (res.code === this.$config.SUCCESS_CODE) {
-             this.outCount = res.data
-           }
-         })
-       }
-       //资金
-       else if(this.detailModel ==='fund'){
-         let params = {
-           appCode: this.$config.appCode.WEB,
-           amtResidueZeroFlg: true,
-           accItemType: this.$config.fundType.yingShou,
-         }
-         this.excute(this.$service.accountService, this.$service.accountService.getReceivableAccountItemCount, params).then(res => {
-           if (res.code === this.$config.SUCCESS_CODE) {
-             this.fundCount = res.data
-           }
-         })
-       }
-      },
-      /**
-       * @desc   : 打开抽屉
-       * @author : 洪旭东
-       * @date   : 2022-05-02 17:27
-       */
-      openDrawer(type) {
-        let drawer = document.getElementsByClassName('ivu-drawer-bottom')
-        let leftSider = document.getElementsByClassName('left-sider')
-        if (drawer && leftSider && drawer[0] && leftSider[0]) {
-          // console.log(document.body.clientWidth, leftSider[0].getBoundingClientRect().width)
-          drawer[0].style.width = (document.body.clientWidth - leftSider[0].getBoundingClientRect().width) + 'px'
+        if (it.children && it.children.length > 0) {
+          this.filterShowMenu(it, it.children)
         }
-        if (type === this.$config.homeDrawType.notice) {
-          // 获取未读公告
-          this.selectManagement();
+      })
+      return arr
+    },
+    /**
+     * @desc   : 切换销售简报模式
+     * @author : 洪旭东
+     * @date   : 2022-05-02 15:32
+     */
+    changeSalesReportModel() {
+      this.salesReportType = this.salesReportType == 1 ? 2 : 1
+    },
+    /**
+     * @desc   : 我的业绩目标
+     * @author : 洪旭东
+     * @date   : 2022-05-02 14:09
+     */
+    drawPerformance1() {
+      let echarts = require('echarts')
+      let echarts1 = echarts.init(document.getElementById('echarts1'))
+      echarts1.setOption(
+        {
+          tooltip: {
+            trigger: 'item',
+            // formatter: '{a} <br/>{b}: {c} ({d}%)'
+          },
+          title: {
+            show: true,
+            text: '报备客户'
+          },
+          series: [
+            {
+              center: ['50%', '80%'],
+              axisLabel: {
+                formatter: '{value}%'
+              },
+              axisTick: {
+                splitNumber: 2
+              },
+              axisLine: {
+                lineStyle: {
+                  color: [
+                    [1, '#3cd343']
+                  ]
+                }
+              },
+              pointer: {
+                length: '60%',
+                width: 4
+              },
+              itemStyle: {
+                color: '#3cd343',
+                borderColor: 'lightgreen',
+              },
+              splitNumber: 4,
+              radius: '100%',
+              startAngle: 180,
+              endAngle: 0,
+              name: '报备客户',
+              type: 'gauge',
+              process: {
+                show: true
+              },
+              detail: {
+                show: false,
+                valueAnimation: true,
+                // formatter: '{value}%'
+              },
+              data: [
+                {value: 100, name: ''},
+              ],
+            }
+          ]
         }
-        // let self = this;
-        // switch (type){
-        //   case self.$config.homeDrawType.waitAudit:
-        //     this.drawerTitle = "待审中心";
-        //     break;
-        //   case self.$config.homeDrawType.notice:
-        //     this.drawerTitle = "系统公告";
-        //     break;
-        // }
-        this.drawType = type;
-        this.drawerShow = true
-      },
-      /****************************************待办功能****************************************/
-
-      /**
-       * @desc   : 打开审批一览页面
-       * @author : 周兴
-       * @date   : 2022/9/2 14:15
-       */
-      openApprovalIndex(){
-        this.$router.push('/approval/waiting-for-approval/index');
-      },
-      /**
-       * @desc   : 过滤需要显示的菜单
-       * @author : 周兴
-       * @date   : 2022/8/22 9:49
-       */
-      filterShowMenu(arr, list) {
-        arr.children = list.filter(it => it.meta && !it.meta.hideInMenu)
-        arr.children.forEach(it => {
-          // it.meta.url = '../../../assets/images/' +  (it.meta.image?it.meta.image:'func-icon.png');
-          if(!it.meta.image){
-            it.meta.image = 'func-icon.png';
-          }
-          if (it.children && it.children.length > 0) {
-            this.filterShowMenu(it, it.children)
-          }
-        })
-        return arr
-      },
-      /**
-       * @desc   : 切换销售简报模式
-       * @author : 洪旭东
-       * @date   : 2022-05-02 15:32
-       */
-      changeSalesReportModel() {
-        this.salesReportType = this.salesReportType == 1 ? 2 : 1
-      },
-      /**
-       * @desc   : 我的业绩目标
-       * @author : 洪旭东
-       * @date   : 2022-05-02 14:09
-       */
-      drawPerformance1() {
-        let echarts = require('echarts')
-        let echarts1 = echarts.init(document.getElementById('echarts1'))
-        echarts1.setOption(
-          {
-            tooltip: {
-              trigger: 'item',
-              // formatter: '{a} <br/>{b}: {c} ({d}%)'
-            },
-            title: {
-              show: true,
-              text: '报备客户'
-            },
-            series: [
-              {
-                center: ['50%', '80%'],
-                axisLabel: {
-                  formatter: '{value}%'
-                },
-                axisTick: {
-                  splitNumber: 2
-                },
-                axisLine: {
-                  lineStyle: {
-                    color: [
-                      [1, '#3cd343']
-                    ]
-                  }
-                },
-                pointer: {
-                  length: '60%',
-                  width: 4
-                },
-                itemStyle: {
-                  color: '#3cd343',
-                  borderColor: 'lightgreen',
-                },
-                splitNumber: 4,
-                radius: '100%',
-                startAngle: 180,
-                endAngle: 0,
-                name: '报备客户',
-                type: 'gauge',
-                process: {
-                  show: true
-                },
-                detail: {
-                  show: false,
-                  valueAnimation: true,
-                  // formatter: '{value}%'
-                },
-                data: [
-                  {value: 100, name: ''},
-                ],
-              }
-            ]
-          }
-        )
-      },
-      /**
-       * @desc   : 我的业绩目标
-       * @author : 洪旭东
-       * @date   : 2022-05-02 14:09
-       */
-      drawPerformance2() {
-        let echarts = require('echarts')
-        let echarts1 = echarts.init(document.getElementById('echarts2'))
-        echarts1.setOption(
-          {
-            tooltip: {
-              trigger: 'item',
-              // formatter: '{a} <br/>{b}: {c} ({d}%)'
-            },
-            title: {
-              show: true,
-              text: '订货额'
-            },
-            series: [
-              {
-                center: ['50%', '80%'],
-                axisLabel: {
-                  formatter: '{value}%'
-                },
-                axisTick: {
-                  splitNumber: 2
-                },
-                axisLine: {
-                  lineStyle: {
-                    color: [
-                      [1, '#3cd343']
-                    ]
-                  }
-                },
-                pointer: {
-                  length: '60%',
-                  width: 4
-                },
-                itemStyle: {
-                  color: '#3cd343',
-                  borderColor: 'lightgreen',
-                },
-                splitNumber: 4,
-                radius: '100%',
-                startAngle: 180,
-                endAngle: 0,
-                name: '订货额',
-                type: 'gauge',
-                process: {
-                  show: true
-                },
-                detail: {
-                  show: false,
-                  valueAnimation: true,
-                  // formatter: '{value}%'
-                },
-                data: [
-                  {value: 100, name: ''},
-                ],
-              }
-            ]
-          }
-        )
-      },
-      /**
-       * @desc   : 我的业绩目标
-       * @author : 洪旭东
-       * @date   : 2022-05-02 14:09
-       */
-      drawPerformance3() {
-        let echarts = require('echarts')
-        let echarts1 = echarts.init(document.getElementById('echarts3'))
-        echarts1.setOption(
-          {
-            tooltip: {
-              trigger: 'item',
-              // formatter: '{a} <br/>{b}: {c} ({d}%)'
-            },
-            title: {
-              show: true,
-              text: '回款额'
-            },
-            series: [
-              {
-                center: ['50%', '80%'],
-                axisLabel: {
-                  formatter: '{value}%'
-                },
-                axisTick: {
-                  splitNumber: 2
-                },
-                axisLine: {
-                  lineStyle: {
-                    color: [
-                      [1, '#3cd343']
-                    ]
-                  }
-                },
-                pointer: {
-                  length: '60%',
-                  width: 4
-                },
-                itemStyle: {
-                  color: '#3cd343',
-                  borderColor: 'lightgreen',
-                },
-                splitNumber: 4,
-                radius: '100%',
-                startAngle: 180,
-                endAngle: 0,
-                name: '回款额',
-                type: 'gauge',
-                process: {
-                  show: true
-                },
-                detail: {
-                  show: false,
-                  valueAnimation: true,
-                  // formatter: '{value}%'
-                },
-                data: [
-                  {value: 100, name: ''},
-                ],
-              }
-            ]
-          }
-        )
-      },
-      /**
-       * @desc   : 跳页
-       * @author : 洪旭东
-       * @date   : 2022-05-02 11:51
-       */
-      jumpTo() {
-        this.$router.push('/sale/order')
-      },
-      getMonthDays(date) {
-        date = date || new Date()
-        const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0)
-        const days = temp.getDate()
-        return days
-      },
-      /**
-       * @desc   : 待办滚动
-       * @author : 洪旭东
-       * @date   : 2022-05-03 17:21
-       */
-      scrollUpcomingCard(e) {
-        for (let i = 0; i < 701; i++) {
-          setTimeout(function () {
-            if (e == 'left') {
-              document.getElementsByClassName('upcoming')[0].scrollLeft--
-            } else {
-              document.getElementsByClassName('upcoming')[0].scrollLeft++
+      )
+    },
+    /**
+     * @desc   : 我的业绩目标
+     * @author : 洪旭东
+     * @date   : 2022-05-02 14:09
+     */
+    drawPerformance2() {
+      let echarts = require('echarts')
+      let echarts1 = echarts.init(document.getElementById('echarts2'))
+      echarts1.setOption(
+        {
+          tooltip: {
+            trigger: 'item',
+            // formatter: '{a} <br/>{b}: {c} ({d}%)'
+          },
+          title: {
+            show: true,
+            text: '订货额'
+          },
+          series: [
+            {
+              center: ['50%', '80%'],
+              axisLabel: {
+                formatter: '{value}%'
+              },
+              axisTick: {
+                splitNumber: 2
+              },
+              axisLine: {
+                lineStyle: {
+                  color: [
+                    [1, '#3cd343']
+                  ]
+                }
+              },
+              pointer: {
+                length: '60%',
+                width: 4
+              },
+              itemStyle: {
+                color: '#3cd343',
+                borderColor: 'lightgreen',
+              },
+              splitNumber: 4,
+              radius: '100%',
+              startAngle: 180,
+              endAngle: 0,
+              name: '订货额',
+              type: 'gauge',
+              process: {
+                show: true
+              },
+              detail: {
+                show: false,
+                valueAnimation: true,
+                // formatter: '{value}%'
+              },
+              data: [
+                {value: 100, name: ''},
+              ],
             }
-          }, 100 + i)
+          ]
         }
-      },
-      getText(str) {
-        let words = str.replace(/<[^<>]+>/g, "").replace(/&nbsp;/gi, ""); //这里是去除标签
-        return words.replace(/\s/g, "") //这里是去除空格
-      },
-      /**
-       *   @desc   : 跳转到公告
-       *   @date   : 2022/8/16 10:29
-       *   @author : 寇珊珊
-       */
-      returnMessage() {
-        this.$router.push('../../mst/notice-list/index')
-      },
-      /**
-       *   @desc   : 跳转公告明细
-       *   @date   : 2022/8/16 11:48
-       *   @author : 寇珊珊
-       */
-      returnMessageDetail(value) {
-        this.$router.push('../../mst/notice-list/detail/' + value.noticeId)
-      },
-      /**
-       * @desc   : 获取待审中心条数
-       * @author : 周兴
-       * @date   : 2022/8/20 14:50
-       */
-      getApprovalCount() {
-        // 参数设置
-        let params = {
-          cpId: this.$store.state.user.cpId,
-          userId: this.$store.state.user.id,
-          querys: Object.assign({treeFlag: true}, this.searchList)
+      )
+    },
+    /**
+     * @desc   : 我的业绩目标
+     * @author : 洪旭东
+     * @date   : 2022-05-02 14:09
+     */
+    drawPerformance3() {
+      let echarts = require('echarts')
+      let echarts1 = echarts.init(document.getElementById('echarts3'))
+      echarts1.setOption(
+        {
+          tooltip: {
+            trigger: 'item',
+            // formatter: '{a} <br/>{b}: {c} ({d}%)'
+          },
+          title: {
+            show: true,
+            text: '回款额'
+          },
+          series: [
+            {
+              center: ['50%', '80%'],
+              axisLabel: {
+                formatter: '{value}%'
+              },
+              axisTick: {
+                splitNumber: 2
+              },
+              axisLine: {
+                lineStyle: {
+                  color: [
+                    [1, '#3cd343']
+                  ]
+                }
+              },
+              pointer: {
+                length: '60%',
+                width: 4
+              },
+              itemStyle: {
+                color: '#3cd343',
+                borderColor: 'lightgreen',
+              },
+              splitNumber: 4,
+              radius: '100%',
+              startAngle: 180,
+              endAngle: 0,
+              name: '回款额',
+              type: 'gauge',
+              process: {
+                show: true
+              },
+              detail: {
+                show: false,
+                valueAnimation: true,
+                // formatter: '{value}%'
+              },
+              data: [
+                {value: 100, name: ''},
+              ],
+            }
+          ]
         }
-        waitingForApprovalService.getApprovalCount(params).then(res => {
-          if (res.code === 200) {
-            this.approvalCount = res.data;
+      )
+    },
+    /**
+     * @desc   : 跳页
+     * @author : 洪旭东
+     * @date   : 2022-05-02 11:51
+     */
+    jumpTo() {
+      this.$router.push('/sale/order')
+    },
+    getMonthDays(date) {
+      date = date || new Date()
+      const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0)
+      const days = temp.getDate()
+      return days
+    },
+    /**
+     * @desc   : 待办滚动
+     * @author : 洪旭东
+     * @date   : 2022-05-03 17:21
+     */
+    scrollUpcomingCard(e) {
+      for (let i = 0; i < 701; i++) {
+        setTimeout(function () {
+          if (e == 'left') {
+            document.getElementsByClassName('upcoming')[0].scrollLeft--
           } else {
-            this.$message.error(res.message)
+            document.getElementsByClassName('upcoming')[0].scrollLeft++
           }
-        })
-      },
-      /**
-       *   @desc   : 查询公告
-       *   @date   : 2022/8/16 9:50
-       *   @author : 寇珊珊
-       */
-      selectManagement() {
-        // 参数设置
-        let params = {}
-        if (this.$store.state.user.sysId != this.$config.sysType.SYS_HEGII) {
-          params.cpId = this.$store.state.user.cpId
-          params.sysId = this.$store.state.user.sysId
+        }, 100 + i)
+      }
+    },
+    getText(str) {
+      let words = str.replace(/<[^<>]+>/g, "").replace(/&nbsp;/gi, ""); //这里是去除标签
+      return words.replace(/\s/g, "") //这里是去除空格
+    },
+    /**
+     *   @desc   : 跳转到公告
+     *   @date   : 2022/8/16 10:29
+     *   @author : 寇珊珊
+     */
+    returnMessage() {
+      this.$router.push('../../mst/notice-list/index')
+    },
+    /**
+     *   @desc   : 跳转公告明细
+     *   @date   : 2022/8/16 11:48
+     *   @author : 寇珊珊
+     */
+    returnMessageDetail(value) {
+      this.$router.push('../../mst/notice-list/detail/' + value.noticeId)
+    },
+    /**
+     * @desc   : 获取待审中心条数
+     * @author : 周兴
+     * @date   : 2022/8/20 14:50
+     */
+    getApprovalCount() {
+      // 参数设置
+      let params = {
+        cpId: this.$store.state.user.cpId,
+        userId: this.$store.state.user.id,
+        querys: Object.assign({treeFlag: true}, this.searchList)
+      }
+      waitingForApprovalService.getApprovalCount(params).then(res => {
+        if (res.code === 200) {
+          this.approvalCount = res.data;
+        } else {
+          this.$message.error(res.message)
         }
-        params.limit = 5; // 限制公告条数
-        params.userId = this.$store.state.user.id
-        // 查询公告分类接口
-        noticeManagementService.getNotice(params).then(res => {
-          if (res.code === 200) {
-            this.managementTableData = res.data
-          } else {
-            this.$message.error(res.message)
-          }
-        })
-      },
-      /**
-       * @desc   : 获取未读公告数量
-       * @author : 周兴
-       * @date   : 2022/8/20 14:50
-       */
-      getUnreadNoticeCount() {
-        // 参数设置
-        let params = {}
-        if (this.$store.state.user.sysId != this.$config.sysType.SYS_HEGII) {
-          params.cpId = this.$store.state.user.cpId
-          params.sysId = this.$store.state.user.sysId
+      })
+    },
+    /**
+     *   @desc   : 查询公告
+     *   @date   : 2022/8/16 9:50
+     *   @author : 寇珊珊
+     */
+    selectManagement() {
+      // 参数设置
+      let params = {}
+      if (this.$store.state.user.sysId != this.$config.sysType.SYS_HEGII) {
+        params.cpId = this.$store.state.user.cpId
+        params.sysId = this.$store.state.user.sysId
+      }
+      params.limit = 5; // 限制公告条数
+      params.userId = this.$store.state.user.id
+      // 查询公告分类接口
+      noticeManagementService.getNotice(params).then(res => {
+        if (res.code === 200) {
+          this.managementTableData = res.data
+        } else {
+          this.$message.error(res.message)
         }
-        params.userId = this.$store.state.user.id
-        noticeManagementService.getUnreadNoticeCount(params).then(res => {
-          if (res.code === 200) {
-            this.unReadNoticeCount = res.data;
-          } else {
-            this.$message.error(res.message)
-          }
-        })
-      },
+      })
     },
-    created() {
-      this.routeObjName = 'appMenu'  // 设置路由名称
-      this.getCommonMenu();   // 获取常用功能的菜单
-      this.selectCommonUse();//查询常用功能
-      this.selectPending();//获取代办事项个数
-      // this.getApprovalCount();// 获取待审中心数据
-      // this.getUnreadNoticeCount();// 获取未读公告条数
-      this.waitApprovalRight =this.$libaray.checkButtonHasRight('wait-approval')
+    /**
+     * @desc   : 获取未读公告数量
+     * @author : 周兴
+     * @date   : 2022/8/20 14:50
+     */
+    getUnreadNoticeCount() {
+      // 参数设置
+      let params = {}
+      if (this.$store.state.user.sysId != this.$config.sysType.SYS_HEGII) {
+        params.cpId = this.$store.state.user.cpId
+        params.sysId = this.$store.state.user.sysId
+      }
+      params.userId = this.$store.state.user.id
+      noticeManagementService.getUnreadNoticeCount(params).then(res => {
+        if (res.code === 200) {
+          this.unReadNoticeCount = res.data;
+        } else {
+          this.$message.error(res.message)
+        }
+      })
     },
-  }
+    /**
+     * @desc   : 刷新实时数据
+     * @author : 付斌
+     * @date   : 2024-06-14 16:44
+     */
+    refreshRealTimeData() {
+      // 查询实时数据
+      this.selectRealTimeData()
+    },
+    /**
+     * @desc   : 切换实时数据类型
+     * @author : 付斌
+     * @date   : 2024-06-14 16:43
+     */
+    cpRealTimeDataType() {
+      // 查询实时数据
+      this.selectRealTimeData()
+    },
+    /**
+     * @desc   : 查询实时数据
+     * @author : 付斌
+     * @date   : 2024-06-14 15:13
+     */
+    selectRealTimeData() {
+      let params = {
+        realTimeDataType: this.realTimeDataType,
+      }
+      this.excute(this.$service.commonService, this.$service.commonService.getRealTimeData, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.orderQty = res.data.orderQty
+          this.orderAmt = res.data.orderAmt
+          this.outQty = res.data.outQty
+          this.outAmt = res.data.outAmt
+          this.returnQty = res.data.returnQty
+          this.returnAmt = res.data.returnAmt
+          this.cusQty = res.data.cusQty
+          this.cusAmt = res.data.cusAmt
+        }
+      })
+    },
+    /**
+     * @desc   : 查询轮播图
+     * @author : 付斌
+     * @date   : 2024-06-20 10:40
+     */
+    selectCarousel() {
+      let params = {
+        appCode: 'CP-WEB',
+        flgBanner: true
+      }
+      this.excute(this.$service.outhActivityService, this.$service.outhActivityService.getActivity, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.dataCarouselItems = res.data
+        }
+      })
+    },
+    /**
+     * @desc   : 打开轮播图活动
+     * @author : 付斌
+     * @date   : 2024-06-20 11:05
+     */
+    showActivity(item) {
+      window.open(item.activityUrl)
+    },
+    /**
+     * @desc   : 更多产品公告
+     * @author : 付斌
+     * @date   : 2024-06-20 11:25
+     */
+    moreProductAnnouncement() {
+      alert('敬请期待')
+    },
+    /**
+     * @desc   : 新手指导快速掌握
+     * @author : 付斌
+     * @date   : 2024-06-20 11:27
+     */
+    beginnersGuide() {
+      console.log(this.$config.routeUrl)
+      this.open(this.$config.routeUrl['home']['beginners-guide'])
+    }
+  },
+  created() {
+    this.routeObjName = 'appMenu'  // 设置路由名称
+    this.getCommonMenu();   // 获取常用功能的菜单
+    this.selectCommonUse();//查询常用功能
+    this.selectPending();//获取代办事项个数
+    this.selectRealTimeData();//查询实时数据
+    this.selectCarousel();//查询轮播图
+    // this.getApprovalCount();// 获取待审中心数据
+    // this.getUnreadNoticeCount();// 获取未读公告条数
+    this.waitApprovalRight = this.$libaray.checkButtonHasRight('wait-approval')
+  },
+}
 </script>
 <style lang="less" scoped>
-  .func-item-title {
-    font-size: 12px;
-    margin-top: 5px;
-  }
+.func-item-title {
+  font-size: 12px;
+  margin-top: 5px;
+}
 
-  /deep/.ivu-tabs-nav .ivu-tabs-tab  {
-    bottom: 5px;
-    font-size: 14px !important;
-  }
+/deep/ .ivu-tabs-nav .ivu-tabs-tab {
+  bottom: 5px;
+  font-size: 14px !important;
+}
 
-  /deep/ .ttt > .ivu-checkbox {
-    position: absolute !important;
-    z-index: 1;
-    right: 24%;
-    top: -8%;
-  }
+/deep/ .ttt > .ivu-checkbox {
+  position: absolute !important;
+  z-index: 1;
+  right: 24%;
+  top: -8%;
+}
 
-  .draggable-div[draggable=true] {
-    //opacity: 0 !important;
-  }
+.draggable-div[draggable=true] {
+  //opacity: 0 !important;
+}
 
-  .modal-left-div::-webkit-scrollbar {
-    width: 5px;
-  }
+.modal-left-div::-webkit-scrollbar {
+  width: 5px;
+}
 
-  .modal-left-div::-webkit-scrollbar-track {
-    width: 5px !important;
-    background: #dcdcdc;
-    border-radius: 10px;
-  }
+.modal-left-div::-webkit-scrollbar-track {
+  width: 5px !important;
+  background: #dcdcdc;
+  border-radius: 10px;
+}
 
-  .modal-left-div::-webkit-scrollbar-thumb {
-    width: 5px;
-    background: #b6b6b6;
-    border-radius: 10px;
-  }
+.modal-left-div::-webkit-scrollbar-thumb {
+  width: 5px;
+  background: #b6b6b6;
+  border-radius: 10px;
+}
 
-  //Card标签
-  .card {
-    margin-top: 8px;
-  }
+//Card标签
+.card {
+  margin-top: 8px;
+}
 
-  //圆形按钮
-  .circle-button {
-    font-size: 20px !important;
-    margin-left: 5px;
-    margin-right: 5px;
-  }
+//圆形按钮
+.circle-button {
+  font-size: 20px !important;
+  margin-left: 5px;
+  margin-right: 5px;
+}
 
-  //待办
-  .upcoming {
-    width: 100%;
-    display: -webkit-inline-box;
-    overflow-x: auto;
-    transition: scrollLeft 2s;
-    padding-bottom: 10px;
+//待办
+.upcoming {
+  width: 100%;
+  display: -webkit-inline-box;
+  overflow-x: auto;
+  transition: scrollLeft 2s;
+  padding-bottom: 10px;
 
-    .upcoming-card {
-      height: 100px;
-      width: 200px;
-      background-color: #f4f8ff;
-      padding: 20px 10px 30px 10px;
-      margin-right: 20px;
-      cursor: pointer;
-      border-radius: 15px;
-      //margin-bottom: 10px;
+  .upcoming-card {
+    height: 100px;
+    width: 200px;
+    background-color: #f4f8ff;
+    padding: 20px 10px 30px 10px;
+    margin-right: 20px;
+    cursor: pointer;
+    border-radius: 15px;
+    //margin-bottom: 10px;
 
-      .upcoming-card-icon {
-        //todo 2024年4月29日13:56:25  注释掉
-        /*padding: 16px 0;*/
-      }
+    .upcoming-card-icon {
+      //todo 2024年4月29日13:56:25  注释掉
+      /*padding: 16px 0;*/
+    }
 
-      .upcoming-card-number {
-        font-size: 26px;
-        padding-left: 10px;
-        font-weight: bolder;
-      }
+    .upcoming-card-number {
+      font-size: 26px;
+      padding-left: 10px;
+      font-weight: bolder;
+    }
 
-      .upcoming-card-text {
-        font-size: 13px;
-        font-weight: 500;
-      }
+    .upcoming-card-text {
+      font-size: 13px;
+      font-weight: 500;
     }
   }
+}
 
-  .upcoming::-webkit-scrollbar {
-    width: 0;
-  }
+.upcoming::-webkit-scrollbar {
+  width: 0;
+}
 
-  .card-upcoming /deep/ .ivu-card-body {
-    padding-bottom: 0 !important;
+.card-upcoming /deep/ .ivu-card-body {
+  padding-bottom: 0 !important;
 
-  }
+}
 
-  //图表
-  .echarts {
-    width: 300px;
-    height: 200px
-  }
+//图表
+.echarts {
+  width: 300px;
+  height: 200px
+}
 
-  // 销售简报radio数字
-  .sales-report-radio-number {
-    position: relative;
-    right: 50px;
-  }
+// 销售简报radio数字
+.sales-report-radio-number {
+  position: relative;
+  right: 50px;
+}
 
-  // 销售简报radio选中的文字
-  .sales-report-radio-checked {
-    font-weight: bolder;
-  }
+// 销售简报radio选中的文字
+.sales-report-radio-checked {
+  font-weight: bolder;
+}
 
-  // 销售简报右侧col
-  .sales-report-col {
-    padding-right: 10px;
-    padding-top: 10px;
-  }
+// 销售简报右侧col
+.sales-report-col {
+  padding-right: 10px;
+  padding-top: 10px;
+}
 
-  // 销售简报card 个数 数字
-  .sales-report-card-number {
-    color: grey;
-  }
+// 销售简报card 个数 数字
+.sales-report-card-number {
+  color: grey;
+}
 
-  // 销售简报card 钱数 数字
-  .sales-report-card-money {
-    color: orange;
-  }
+// 销售简报card 钱数 数字
+.sales-report-card-money {
+  color: orange;
+}
 
-  // 销售简报 简略模式card
-  .sales-report-simple-card {
-    margin: 10px;
-  }
+// 销售简报 简略模式card
+.sales-report-simple-card {
+  margin: 10px;
+}
 
-  // 销售简报 简略模式 文字
-  .sales-report-simple-card-text {
-    font-weight: bolder;
-  }
+// 销售简报 简略模式 文字
+.sales-report-simple-card-text {
+  font-weight: bolder;
+}
 
-  .sales-report-simple-card-text2 {
-    color: grey;
-  }
+.sales-report-simple-card-text2 {
+  color: grey;
+}
 
-  .sales-report-simple-card-text3 {
-    color: orange;
-  }
+.sales-report-simple-card-text3 {
+  color: orange;
+}
 
-  // 销售助手 card 外 col
-  .sales-helper-col {
-    padding: 5px;
-  }
+// 销售助手 card 外 col
+.sales-helper-col {
+  padding: 5px;
+}
 
-  // 销售助手 card
-  .sales-helper-card {
-    background-color: #f7f7f9;
-    padding: 5px;
-  }
+// 销售助手 card
+.sales-helper-card {
+  background-color: #f7f7f9;
+  padding: 5px;
+}
 
-  // 销售助手 card 第一行
-  .sales-helper-card-icon-title {
-    display: flex;
-    align-items: center;
-  }
+// 销售助手 card 第一行
+.sales-helper-card-icon-title {
+  display: flex;
+  align-items: center;
+}
 
-  // 销售助手 card 标题
-  .sales-helper-card-title {
-    line-height: 34px;
-    margin-left: 10px;
-  }
+// 销售助手 card 标题
+.sales-helper-card-title {
+  line-height: 34px;
+  margin-left: 10px;
+}
 
-  // 销售助手 card 内容 蓝色
-  .sales-helper-card-content {
-    margin-top: 10px;
-    color: #71a6ec;
-  }
+// 销售助手 card 内容 蓝色
+.sales-helper-card-content {
+  margin-top: 10px;
+  color: #71a6ec;
+}
 
-  // 销售助手 card 内容 灰色
-  .sales-helper-card-content2 {
-    margin-top: 10px;
-    color: grey;
-  }
+// 销售助手 card 内容 灰色
+.sales-helper-card-content2 {
+  margin-top: 10px;
+  color: grey;
+}
 
-  // 底部抽屉
-  /deep/ .ivu-drawer-bottom {
-    right: 0;
-    bottom: 0;
-    top: unset;
-  }
+// 底部抽屉
+/deep/ .ivu-drawer-bottom {
+  right: 0;
+  bottom: 0;
+  top: unset;
+}
 
-  /deep/ .ivu-tabs-tab {
-    bottom: 10px;
-    font-size: 18px !important;
-  }
+/deep/ .ivu-tabs-tab {
+  bottom: 10px;
+  font-size: 18px !important;
+}
 
-  .ivu-row {
-    display: flex;
-  }
+.ivu-row {
+  display: flex;
+}
 
-  /deep/ .ivu-list {
-    height: 245px !important;
-    overflow-y: auto;
-  }
+/deep/ .ivu-list {
+  height: 245px !important;
+  overflow-y: auto;
+}
 
-  /deep/ .ivu-list-item-meta-title {
-    margin-bottom: 2px !important;
-    font-size: 15px !important;
-    cursor: pointer;
-    text-decoration: underline;
-  }
+/deep/ .ivu-list-item-meta-title {
+  margin-bottom: 2px !important;
+  font-size: 15px !important;
+  cursor: pointer;
+  text-decoration: underline;
+}
 
-  /deep/ .ivu-list-item {
-    padding: 10px 0 0 0 !important;
-  }
+/deep/ .ivu-list-item {
+  padding: 10px 0 0 0 !important;
+}
 
-  /deep/ .ivu-list-item-meta-content {
-    width: 100%;
-  }
+/deep/ .ivu-list-item-meta-content {
+  width: 100%;
+}
 
-  /deep/ .ivu-list-item-meta {
-    margin-bottom: 6px !important;
-  }
+/deep/ .ivu-list-item-meta {
+  margin-bottom: 6px !important;
+}
 
-  /deep/ .ivu-list-item-meta-description {
-    //width: 253px;
-    font-size: 12px;
-    line-height: 22px;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
+/deep/ .ivu-list-item-meta-description {
+  //width: 253px;
+  font-size: 12px;
+  line-height: 22px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
 
-  /deep/.ivu-checkbox-checked .ivu-checkbox-inner{
-    background-color: #1B365D !important;
-    border-color:  #1B365D !important;
-  }
+/deep/ .ivu-checkbox-checked .ivu-checkbox-inner {
+  background-color: #1B365D !important;
+  border-color: #1B365D !important;
+}
 
-  .clear-btn{
-    border: #b6b6b6 1px dashed;
-    color:#fff;
-    display:flex;
-    align-items:center;
-    justify-content:center;
-    width: 88%;
-    height: 30px;
-    background: #00aaed;
-    border-radius: 5px;
-    cursor: pointer;
-    transition: .3s;
-  }
-  .clear-btn:hover{
-    background: #4dcbff;
-  }
+.clear-btn {
+  border: #b6b6b6 1px dashed;
+  color: #fff;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  width: 88%;
+  height: 30px;
+  background: #00aaed;
+  border-radius: 5px;
+  cursor: pointer;
+  transition: .3s;
+}
+
+.clear-btn:hover {
+  background: #4dcbff;
+}
 </style>