Browse Source

Merge branch 'master' into cygx_11.1

bding 1 year ago
parent
commit
84c5fbd7e7

+ 1 - 0
package.json

@@ -39,6 +39,7 @@
     "js-md5": "^0.7.3",
     "js-md5": "^0.7.3",
     "less-loader": "^4.1.0",
     "less-loader": "^4.1.0",
     "lodash": "^4.17.21",
     "lodash": "^4.17.21",
+    "opencc-js": "^1.0.5",
     "pptxgenjs": "^3.10.0",
     "pptxgenjs": "^3.10.0",
     "qrcode": "^1.4.4",
     "qrcode": "^1.4.4",
     "sortablejs": "^1.15.0",
     "sortablejs": "^1.15.0",

+ 17 - 0
src/api/modules/businessCustom.js

@@ -104,5 +104,22 @@ export const businessCustomInterence = {
      */
      */
     addBusiness:(params)=>{
     addBusiness:(params)=>{
         return http.post('/eta_business/add',params)
         return http.post('/eta_business/add',params)
+    },
+    /**
+     * 获取商家权限详情
+     * @param EtaBusinessId 商家ID
+     * @returns
+     */
+    getAuthList:(params)=>{
+        return http.get('/eta_business/menu/list',params)
+    },
+    /**
+     * 设置商家权限
+     * @param EtaBusinessId 商家ID
+     * @param MenuIds 权限的ID列表
+     * @returns 
+     */
+    setAuthList:(params)=>{
+        return http.post('/eta_business/menu/relate/save',params)
     }
     }
 }
 }

+ 4 - 0
src/api/modules/rai/raiApi.js

@@ -1216,6 +1216,10 @@ const raiInterface = {
   activityTripSendGroupList: (params) => {
   activityTripSendGroupList: (params) => {
     return http.get("/cygx/special/trip/tempMsg/sendGroupList", params);
     return http.get("/cygx/special/trip/tempMsg/sendGroupList", params);
   },
   },
+  // 根据图片获取建会信息接口
+  activityImgToText: (params) => {
+    return http.post("/cygx/activity/imgToText", params);
+  },
 };
 };
 
 
 /* 权益小程序管理 专项调研模块*/
 /* 权益小程序管理 专项调研模块*/

+ 10 - 0
src/routes/modules/customRoutes.js

@@ -415,6 +415,16 @@ export default [
           pathFrom: "businessETAList",
           pathFrom: "businessETAList",
           pathName: "商家管理",
           pathName: "商家管理",
         }
         }
+      },
+      {
+        path:'businessETAAuth',
+        name:"商家权限",
+        component: () => import('@/views/business_ETA_manage/businessAuth.vue'),
+        hidden: false,
+        meta:{
+          pathFrom: "businessETAList",
+          pathName: "商家管理",
+        }
       }
       }
     ],
     ],
   },
   },

+ 201 - 0
src/views/business_ETA_manage/businessAuth.vue

@@ -0,0 +1,201 @@
+<template>
+    <div class="business-auth-wrap">
+        <div class="header">
+            <div class="name">{{$route.query.name||''}}</div>
+            <div class="btn-wrap">
+                <el-button @click="handleBtnClik('cancel')">取消</el-button>
+                <el-button type="primary" @click="handleBtnClik('save')">保存</el-button>
+            </div>
+        </div>
+        <div class="auth-wrap">
+            <el-tree 
+                v-loading="treeLoading"
+                ref="checkboxTree"
+                :data="authList" 
+                :props="{label:'Name',children:'Children'}" 
+                :default-expand-all="false"
+                show-checkbox 
+                node-key="MenuId"
+                :default-checked-keys="defaultCheckedKeys">
+            </el-tree>
+        </div>
+    </div>
+</template>
+
+<script>
+import {businessCustomInterence} from '@/api/api.js'
+export default {
+    data() {
+        return {
+            authList:[],
+            defaultCheckedKeys:[],
+            treeLoading:false
+        };
+    },
+    methods: {
+        getBusinessAuthList(){
+            const EtaBusinessId = this.$route.query.id
+            if(!EtaBusinessId) return 
+            this.treeLoading = true
+            businessCustomInterence.getAuthList({
+                EtaBusinessId:Number(EtaBusinessId)
+            }).then(res=>{
+                if(res.Ret!==200) return 
+                this.treeLoading = false
+                if(!res.Data) return
+                const {List,ChoiceList=[],HalfChoiceList=[]} = res.Data
+                this.authList = List||[]
+                this.defaultCheckedKeys = ChoiceList.filter((item)=>!HalfChoiceList.some((halfItem)=>item===halfItem))
+            })
+        },
+        async handleBtnClik(type){
+            if(type==='save'){
+                //获取树形列表选择的项 getCheckedKeys getHalfCheckedKeys
+                const keys = this.$refs.checkboxTree.getCheckedKeys()
+                const halfKeys = this.$refs.checkboxTree.getHalfCheckedKeys()
+                if(!keys.length&&!halfKeys.length){
+                    this.$message.warning('请至少选择一个权限')
+                    return
+                }
+                //合成一个数组并去重
+                const ChoiceList = Array.from(new Set([...keys,...halfKeys]))
+                //请求接口
+                const res = await businessCustomInterence.setAuthList({
+                    EtaBusinessId:Number(this.$route.query.id),
+                    MenuIds:ChoiceList,
+                    HalfMenuIds:halfKeys
+                })
+                if(res.Ret!==200) return 
+                this.$message.success('权限设置成功')
+            }
+            this.$router.push('/businessETAList')
+        }
+    },
+    mounted(){
+        this.getBusinessAuthList()
+    }
+};
+</script>
+
+<style lang="scss">
+.business-auth-wrap{
+    .el-tree {
+        border-top: 1px solid #E5E7ED;
+        border-left: 1px solid #E5E7ED;
+        border-right: 1px solid #E5E7ED;
+        width: 98%;
+        margin-bottom: 40px;
+        .el-tree-node__label{
+            margin:10px;
+        }
+        .el-tree-node__content{
+            min-width: 200px;
+            width: 200px;
+            white-space: normal;
+            box-sizing: border-box;
+        }
+        .el-tree-node{
+            .el-tree-node{
+                .el-tree-node__children{
+                    width: 100%;
+                }
+                .el-tree-node{
+                    &:not(:first-child){
+                    /* .el-tree-node__content{
+                        border-right: 1px solid #E5E7ED;
+                    } */
+                        border-top: 1px solid #E5E7ED;
+                    }
+                    .el-tree-node__content{
+                        border-right: 1px solid #E5E7ED;
+                    }
+                }
+    
+            }
+        }
+        .el-tree-node__content {
+            padding: 5px 10px !important;
+            height: auto;
+            .el-tree-node__expand-icon.el-icon-caret-right {
+            //display: none;
+            }
+        }
+        > .el-tree-node {
+            padding: 0 !important;
+            display: flex;
+            border-bottom: 1px solid #E5E7ED;
+
+            > .el-tree-node__children {
+            width: 100%;
+            > .el-tree-node {
+                &:not(:first-child) {
+                border-top: 1px solid #E5E7ED;
+                }
+                >.el-tree-node__content{
+                    border-left: 1px solid #E5E7ED;
+                    border-right: 1px solid #E5E7ED;
+                }
+            }
+            }
+        }
+        .el-tree-node__children {
+            display: flex;
+            flex-direction: column;
+            .el-tree-node {
+                display: flex;
+                flex: 1;
+                padding: 0px !important;
+                .el-tree-node__content {
+                    border-bottom: none;
+                    .custom-tree-node {
+                    height: 24px;
+                    display: flex;
+                    align-items: center;
+                    .tree-btn {
+                        margin-left: 10px;
+                        display: none;
+                    }
+                    .el-button {
+                        padding: 0px !important;
+                        border-radius: 4px;
+                        background: #363554;
+                        color: #ffffff;
+                    }
+                    }
+                }
+                .el-tree-node__children {
+                    .el-tree-node {
+                    &:not(:first-child) {
+                        .el-tree-node__content {
+                        //border-left: none;
+                        }
+                    }
+                    }
+                }
+            }
+        }
+    }
+
+}
+</style>
+<style scoped lang="scss">
+.business-auth-wrap{
+    border: 1px solid #ECECEC;
+    padding: 20px 30px;
+    background: #fff;
+    border-radius: 4px;
+    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
+    .header{
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        .name{
+            font-size: 18px;
+            font-weight: bold;
+        }
+    }
+    .auth-wrap{
+        margin-top:20px;
+    }
+}
+</style>

+ 12 - 0
src/views/business_ETA_manage/businessList.vue

@@ -99,6 +99,7 @@
                     </el-table-column>
                     </el-table-column>
                     <el-table-column
                     <el-table-column
                         label="操作"
                         label="操作"
+                        min-width="100"
                         align="center"
                         align="center"
                     >
                     >
                         <template slot-scope="scope">
                         <template slot-scope="scope">
@@ -113,6 +114,7 @@
                                     <span class="el-dropdown-link">
                                     <span class="el-dropdown-link">
                                         <i class="el-icon-more el-icon--right"></i>
                                         <i class="el-icon-more el-icon--right"></i>
                                         <el-dropdown-menu slot="dropdown">
                                         <el-dropdown-menu slot="dropdown">
+                                            <el-dropdown-item command="setAuth">权限设置</el-dropdown-item>
                                             <el-dropdown-item command="modifySale">修改销售</el-dropdown-item>
                                             <el-dropdown-item command="modifySale">修改销售</el-dropdown-item>
                                             <el-dropdown-item command="disable">{{scope.row.Enable?'禁用':'启用'}}</el-dropdown-item>
                                             <el-dropdown-item command="disable">{{scope.row.Enable?'禁用':'启用'}}</el-dropdown-item>
                                         </el-dropdown-menu>
                                         </el-dropdown-menu>
@@ -394,6 +396,16 @@ export default {
                 this.showModifySaller=true
                 this.showModifySaller=true
             }else if (type==='disable'){
             }else if (type==='disable'){
                 this.changeBusinessStatus(data)
                 this.changeBusinessStatus(data)
+            }else if(type==='setAuth'){
+                /* let {href} = this.$router.resolve({path:`/businessETAAuth`,query:{id:EtaBusinessId}});
+                 window.open(href,'_blank'); */
+                 this.$router.push({
+                    path:'/businessETAAuth',
+                    query:{
+                        id:data.EtaBusinessId,
+                        name:data.BusinessName
+                    }
+                })
             }
             }
         },
         },
 
 

+ 63 - 59
src/views/rai_manage/activityManage/activityManage.vue

@@ -5,16 +5,13 @@
     <el-card style="margin-bottom: 20px">
     <el-card style="margin-bottom: 20px">
       <div class="top-card-box">
       <div class="top-card-box">
         <div class="tabs-box">
         <div class="tabs-box">
-          <span
-            v-for="(item, index) in listTitle"
-            :key="item.ChartPermissionId"
-            @click="tabsBoxBtn(item, index)"
-            :class="index == tabsPitchon ? 'pitch' : ''"
-            >{{ item.PermissionName }}</span
-          >
+          <span v-for="(item, index) in listTitle" :key="item.ChartPermissionId" @click="tabsBoxBtn(item, index)" :class="index == tabsPitchon ? 'pitch' : ''">{{ item.PermissionName }}</span>
         </div>
         </div>
-        <div>
-          <el-button type="primary" @click="$router.push(!isResearch?'/addActivity':'/addPurchaserActivity')">添加活动</el-button>
+        <div style="display: flex">
+          <el-upload ref="imgUpload" action="#" :http-request="handleUploadImg" :show-file-list="false" accept="image/*">
+            <el-button type="primary">识图建会</el-button>
+          </el-upload>
+          <el-button style="margin-left: 20px" type="primary" @click="$router.push(!isResearch ? '/addActivity' : '/addPurchaserActivity')">添加活动</el-button>
         </div>
         </div>
       </div>
       </div>
     </el-card>
     </el-card>
@@ -23,47 +20,18 @@
       <!-- 选择部分 -->
       <!-- 选择部分 -->
       <div class="screen-box">
       <div class="screen-box">
         <div>
         <div>
-          <el-select placeholder="行业" clearable v-model="industry" @change="conditionChange" style="margin-bottom: 20px"
-          v-if="!isResearch">
-            <el-option
-              v-for="item in chartPermissionList"
-              :label="item.PermissionName"
-              :key="item.ChartPermissionId"
-              :value="item.ChartPermissionId"
-            ></el-option>
+          <el-select placeholder="行业" clearable v-model="industry" @change="conditionChange" style="margin-bottom: 20px" v-if="!isResearch">
+            <el-option v-for="item in chartPermissionList" :label="item.PermissionName" :key="item.ChartPermissionId" :value="item.ChartPermissionId"></el-option>
           </el-select>
           </el-select>
           <el-select placeholder="活动类型" clearable v-model="cactivityTypeVal" @change="conditionChange">
           <el-select placeholder="活动类型" clearable v-model="cactivityTypeVal" @change="conditionChange">
-            <el-option
-              v-for="item in cactivityTypeList"
-              :label="item.ActivityTypeName"
-              :key="item.ActivityTypeId"
-              :value="item.ActivityTypeId"
-            ></el-option>
+            <el-option v-for="item in cactivityTypeList" :label="item.ActivityTypeName" :key="item.ActivityTypeId" :value="item.ActivityTypeId"></el-option>
           </el-select>
           </el-select>
-          <el-date-picker
-            v-model="publishDate"
-            type="date"
-            placeholder="发布时间"
-            format="yyyy 年 MM 月 dd 日"
-            value-format="yyyy-MM-dd"
-            @change="conditionChange"
-          >
-          </el-date-picker>
-          <date-picker
-            style="margin-bottom: 20px"
-            v-model="issueTime"
-            type="date"
-            range
-            placeholder="活动时间"
-            value-type="format"
-            @change="conditionChange"
-          >
-          </date-picker>
+          <el-date-picker v-model="publishDate" type="date" placeholder="发布时间" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd" @change="conditionChange"> </el-date-picker>
+          <date-picker style="margin-bottom: 20px" v-model="issueTime" type="date" range placeholder="活动时间" value-type="format" @change="conditionChange"> </date-picker>
           <el-select placeholder="发布状态" clearable v-model="status" @change="conditionChange" style="margin-bottom: 20px">
           <el-select placeholder="发布状态" clearable v-model="status" @change="conditionChange" style="margin-bottom: 20px">
             <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option>
             <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option>
           </el-select>
           </el-select>
-          <el-input v-model="activityLabel" @input="titleInput" placeholder="请输入活动标签" clearable 
-          style="display: inline-block; width: 220px;margin-bottom: 20px">
+          <el-input v-model="activityLabel" @input="titleInput" placeholder="请输入活动标签" clearable style="display: inline-block; width: 220px; margin-bottom: 20px">
             <i slot="prefix" class="el-input__icon el-icon-search"></i>
             <i slot="prefix" class="el-input__icon el-icon-search"></i>
           </el-input>
           </el-input>
         </div>
         </div>
@@ -102,7 +70,7 @@
             <span class="editsty" @click="editBtn(row.ActivityId, row.PublishStatus)">编辑</span>
             <span class="editsty" @click="editBtn(row.ActivityId, row.PublishStatus)">编辑</span>
             &nbsp;&nbsp;
             &nbsp;&nbsp;
             <span class="deletesty" v-if="row.PublishStatus == 0 && tabsPitchon == 0" @click="operationBtn(row.ActivityId, '删除')">删除</span>
             <span class="deletesty" v-if="row.PublishStatus == 0 && tabsPitchon == 0" @click="operationBtn(row.ActivityId, '删除')">删除</span>
-            <span class="editsty" v-if="row.IsShowSigninButton " @click="handleDownLoadImg(row)">下载签到码</span>
+            <span class="editsty" v-if="row.IsShowSigninButton" @click="handleDownLoadImg(row)">下载签到码</span>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
@@ -112,22 +80,27 @@
       </el-col>
       </el-col>
     </el-card>
     </el-card>
     <atc-particulars :dialogVisible.sync="dialogVisible" :detailData.sync="detailData" />
     <atc-particulars :dialogVisible.sync="dialogVisible" :detailData.sync="detailData" />
+    <imgMeeting :isShowImgMeetingDlg.sync="isShowImgMeetingDlg" :imgMeetingData.sync="imgMeetingData" @childrenImgMeetingHandler="childrenImgMeetingHandler" />
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
+import * as OpenCC from "opencc-js";
+// 将繁体中文(香港)转换为简体中文(中国大陆)
+const converter = OpenCC.Converter({ from: "hk", to: "cn" });
 import mPage from "@/components/mPage.vue";
 import mPage from "@/components/mPage.vue";
-import { raiInterface } from "@/api/api.js";
+import { raiInterface, sealInterence } from "@/api/api.js";
 import AtcParticulars from "../components/atcParticulars.vue";
 import AtcParticulars from "../components/atcParticulars.vue";
+import imgMeeting from "./components/imgMeeting.vue";
 export default {
 export default {
   name: "",
   name: "",
-  components: { mPage, AtcParticulars },
+  components: { mPage, AtcParticulars, imgMeeting },
   props: {
   props: {
-    Type:{
-      type:String,
-      emnu:['hongze','purchaser'], // 弘则,研选
-      default:'hongze'
-    }
+    Type: {
+      type: String,
+      emnu: ["hongze", "purchaser"], // 弘则,研选
+      default: "hongze",
+    },
   },
   },
   data() {
   data() {
     return {
     return {
@@ -167,6 +140,9 @@ export default {
       detailData: {}, //
       detailData: {}, //
       activityLabel: "",
       activityLabel: "",
       publishDate: "",
       publishDate: "",
+      baseApi: process.env.API_ROOT,
+      isShowImgMeetingDlg: false,
+      imgMeetingData: [],
     };
     };
   },
   },
   computed: {
   computed: {
@@ -174,9 +150,9 @@ export default {
       return this.status >= 0 && typeof this.status == "number" ? this.status : 2;
       return this.status >= 0 && typeof this.status == "number" ? this.status : 2;
     },
     },
     // 弘则 研选 是否是研选
     // 弘则 研选 是否是研选
-    isResearch(){
-      return this.$route.path.indexOf("purchaser")!=-1?true:false
-    }
+    isResearch() {
+      return this.$route.path.indexOf("purchaser") != -1 ? true : false;
+    },
   },
   },
   created() {},
   created() {},
   mounted() {
   mounted() {
@@ -260,7 +236,7 @@ export default {
     //编辑
     //编辑
     editBtn(id, show) {
     editBtn(id, show) {
       this.$router.push({
       this.$router.push({
-        path: !this.isResearch?'/editActivity':'/editPurchaserActivity',
+        path: !this.isResearch ? "/editActivity" : "/editPurchaserActivity",
         query: {
         query: {
           id: id,
           id: id,
           isShow: show,
           isShow: show,
@@ -274,7 +250,7 @@ export default {
     },
     },
     //获取行业
     //获取行业
     chartPermission() {
     chartPermission() {
-      raiInterface.chartPermission({IsHideResearch:!this.isResearch}).then((res) => {
+      raiInterface.chartPermission({ IsHideResearch: !this.isResearch }).then((res) => {
         if (res.Ret === 200) {
         if (res.Ret === 200) {
           this.chartPermissionList = res.Data.List;
           this.chartPermissionList = res.Data.List;
         }
         }
@@ -282,7 +258,7 @@ export default {
     },
     },
     //活动类型
     //活动类型
     activityType() {
     activityType() {
-      raiInterface.getActivityType({IsResearch:this.isResearch}).then((res) => {
+      raiInterface.getActivityType({ IsResearch: this.isResearch }).then((res) => {
         if (res.Ret === 200) {
         if (res.Ret === 200) {
           this.cactivityTypeList = res.Data.List;
           this.cactivityTypeList = res.Data.List;
         }
         }
@@ -303,7 +279,7 @@ export default {
           ActiveState: this.activeStateId,
           ActiveState: this.activeStateId,
           ActivityLabel: this.activityLabel,
           ActivityLabel: this.activityLabel,
           PublishStartDate: this.publishDate,
           PublishStartDate: this.publishDate,
-          IsResearch:this.isResearch
+          IsResearch: this.isResearch,
         })
         })
         .then((res) => {
         .then((res) => {
           if (res.Ret !== 200) return;
           if (res.Ret !== 200) return;
@@ -345,6 +321,34 @@ export default {
         a.click();
         a.click();
       };
       };
     },
     },
+    async handleUploadImg(params) {
+      if (!params.file) return;
+      const fd = new FormData();
+      fd.append("file", params.file);
+      try {
+        const res = await sealInterence.resourceUpload(fd);
+        if (res.Ret === 200) {
+          const resImg = await raiInterface.activityImgToText({
+            ImgUrl: res.Data.ResourceUrl,
+          });
+          if (resImg.Ret === 200) {
+            this.isShowImgMeetingDlg = true;
+            this.imgMeetingData = resImg.Data.List.map((item) => {
+              return {
+                ...item,
+                Company: converter(item.Company),
+              };
+            });
+          }
+        }
+      } catch (err) {
+        console.log(err);
+      }
+    },
+    // 点击取消的回调事件
+    childrenImgMeetingHandler() {
+      this.$refs.imgUpload.clearFiles();
+    },
   },
   },
   /* 页面跳转前记录参数 */
   /* 页面跳转前记录参数 */
   beforeRouteLeave(to, form, next) {
   beforeRouteLeave(to, form, next) {

+ 124 - 0
src/views/rai_manage/activityManage/components/imgMeeting.vue

@@ -0,0 +1,124 @@
+<template>
+  <div class="container-img-meeting">
+    <el-dialog width="800px" v-dialogDrag :close-on-click-modal="false" :modal-append-to-body="false" center title="新建标的" :visible.sync="isShowImgMeetingDlg" :before-close="handleClose">
+      <div style="margin-bottom: 10px">
+        <p>请确认建会信息:</p>
+        <div class="box-content" style="padding-left:20px">
+          <div class="box-date">日期</div>
+          <div class="box-time">时间</div>
+          <div class="box-name">公司名称</div>
+        </div>
+      </div>
+      <div class="box-content hover-box-content" v-for="(item, index) in imgMeetingData" :key="item.id">
+        <div class="box-date">
+          <el-date-picker v-model="item.TitmeYMD" type="date" value-format="yyyy年MM月dd日" format="yyyy年MM月dd日  (周ddd)" placeholder="选择日期" style="width: 230px"> </el-date-picker>
+        </div>
+        <div class="box-time">
+          <el-time-picker v-model="item.TitmeHM" value-format="hh:mm A" format="hh:mm A" placeholder="任意时间点" style="width: 160px"> </el-time-picker>
+        </div>
+        <div class="box-name">
+          <el-input v-model="item.Company" placeholder="请输入内容" style="width: 100%" clearable></el-input>
+        </div>
+        <div class="delete-item-icon" @click="deleteLabelItem(item, index)">
+          <img src="~@/assets/img/icons/delete-Item.png" alt="" />
+        </div>
+      </div>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="confirmPerson">确定</el-button>
+        <el-button @click="handleClose">取消</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { raiInterface } from "@/api/api.js";
+export default {
+  name: "",
+  components: {},
+  props: {
+    isShowImgMeetingDlg: {
+      type: Boolean,
+      required: true,
+      default: false,
+    },
+    imgMeetingData: {
+      default: [],
+      required: true,
+      type: Array,
+    },
+  },
+  data() {
+    return {
+      value1: "",
+    };
+  },
+  computed: {},
+  watch: {},
+  created() {},
+  mounted() {},
+  methods: {
+    // 确定事件
+    async confirmPerson() {
+      let isConfirm = this.imgMeetingData.every((item) => item.TitmeYMD && item.TitmeHM && item.Company);
+      if (!isConfirm) return this.$message.error("每格的内容都必填。");
+      const res = await raiInterface.preserveAndPublishAdd({
+        ListImgToText: this.imgMeetingData,
+      });
+      console.log(res);
+      if (res.Ret === 200) {
+        this.$message.success("新增成功!");
+        this.$parent.page_no = 1;
+        this.$parent.getsummaryManageList();
+        this.handleClose();
+      }
+    },
+    handleClose() {
+      this.$emit("update:isShowImgMeetingDlg", false);
+
+      this.$emit("childrenImgMeetingHandler");
+    },
+    deleteLabelItem(item, index) {
+      this.$parent.imgMeetingData.splice(index, 1);
+    },
+  },
+};
+</script>
+<style scoped lang="scss">
+.container-img-meeting {
+  .box-content {
+    margin-top: 20px;
+    display: flex;
+    font-weight: 500;
+
+    .box-date {
+      width: 230px;
+      margin-right: 20px;
+    }
+    .box-time {
+      width: 160px;
+      margin-right: 20px;
+    }
+    .box-name {
+      width: 260px;
+    }
+    .delete-item-icon {
+      display: flex;
+      align-items: center;
+      margin-left: 20px;
+      img {
+        width: 15px;
+        height: 15px;
+      }
+    }
+  }
+  .hover-box-content {
+    margin-top: 0;
+    padding: 10px 20px;
+    &:hover {
+      background-color: #eaf3fe;
+    }
+  }
+}
+</style>