Sfoglia il codice sorgente

普通电话处理人设置

wuyunfeng 2 anni fa
parent
commit
57d61359c7

+ 5 - 1
languages/en.js

@@ -1032,6 +1032,10 @@ module.exports = {
     notManagedFrames:'Unserved Structures',
     settableEmployee:'Settable Staff',
     settedEmployee:'Setted Staff',
-    allEmployee:'All Staff'
+    allEmployee:'All Staff',
+    phoneAcceptorLabel:'The Phone Call Acceptor',
+    phoneAcceptorTipsLeft:'If Other Employee Of Same Role With ',
+    phoneAcceptorTipsMid:' Manage Space Frame Overlaping',
+    phoneAcceptorTipsRight:' Charge The Phone Call'
   }
 }

+ 5 - 1
languages/es.js

@@ -1030,6 +1030,10 @@ module.exports = {
     notManagedFrames:'Estructura de los servicios no prestados',
     settableEmployee:'Personal configurable',
     settedEmployee:'Personal fijo',
-    allEmployee:'Todo el personal'
+    allEmployee:'Todo el personal',
+    phoneAcceptorLabel:'Receptor de llamadas telefónicas',
+    phoneAcceptorTipsLeft:'Si otros empleados del mismo papel ',
+    phoneAcceptorTipsMid:' Superposición de marcos espaciales de gestión',
+    phoneAcceptorTipsRight:' Cargar el teléfono'
   }
 }

+ 5 - 1
languages/zh-CN.js

@@ -1031,6 +1031,10 @@ module.exports = {
     notManagedFrames:'未管理空间',
     settableEmployee:'可设置职员',
     settedEmployee:'已设置职员',
-    allEmployee:'所有职员'
+    allEmployee:'所有职员',
+    phoneAcceptorLabel:'普通电话接收人',
+    phoneAcceptorTipsLeft:'如有其他同角色职员与',
+    phoneAcceptorTipsMid:'管理空间重叠',
+    phoneAcceptorTipsRight:'负责处理普通电话呼叫'
   }
 }

+ 6 - 8
src/views/ncs-clerk-frame-manage/components/employeeView.vue

@@ -119,7 +119,7 @@
                     </el-tabs>
                     <div class="margin-top-xs text-center padding-content">
                         <el-row>
-                            <el-col :span="8"> <el-checkbox v-if="clerkManageFrame.permissions.some(k=>k==='MANAGE_BED')" v-model="clerkManageFrameSource.bool_phone_acceptor">如有其他{{clerkManageFrameSource.role_name}}与{{clerkManageFrameSource.clerk_name}}管理空间重叠,由{{clerkManageFrameSource.clerk_name}}处理普通电话呼叫</el-checkbox></el-col>
+                            <el-col :span="8"> <el-checkbox v-if="clerkManageFrame.permissions.some(k=>k==='MANAGE_BED')" v-model="clerkManageFrameSource.bool_phone_acceptor">{{this.$t('clerkFrameManage.phoneAcceptorTipsLeft')}}{{clerkManageFrameSource.clerk_name}}{{this.$t('clerkFrameManage.phoneAcceptorTipsMid')}},{{clerkManageFrameSource.clerk_name}}{{this.$t('clerkFrameManage.phoneAcceptorTipsRight')}}</el-checkbox></el-col>
                             <el-col :span="8"> <el-button type="primary" :disabled="!clerkManageFrame.permissions.some(k=>k==='MANAGE_BED')" @click="saveClerkManageFrame">{{this.$t('action.saveSettings')}}</el-button></el-col>
                             <el-col :span="8"></el-col>
                         </el-row>
@@ -229,7 +229,7 @@
                     </el-tabs>
                     <div class="margin-top-xs text-center padding-content">
                         <el-row>
-                            <el-col :span="8"> <el-checkbox v-if="clerkManageFrame.permissions.some(k=>k==='MANAGE_BED')" v-model="clerkManageFrameSource.bool_phone_acceptor">如有其他{{clerkManageFrameSource.role_name}}与{{clerkManageFrameSource.clerk_name}}管理空间重叠,由{{clerkManageFrameSource.clerk_name}}处理普通电话呼叫</el-checkbox></el-col>
+                            <el-col :span="8"> <el-checkbox v-if="clerkManageFrame.permissions.some(k=>k==='MANAGE_BED')" v-model="clerkManageFrameSource.bool_phone_acceptor">{{this.$t('clerkFrameManage.phoneAcceptorTipsLeft')}}{{clerkManageFrameSource.clerk_name}}{{this.$t('clerkFrameManage.phoneAcceptorTipsMid')}},{{clerkManageFrameSource.clerk_name}}{{this.$t('clerkFrameManage.phoneAcceptorTipsRight')}}</el-checkbox></el-col>
                             <el-col :span="8"> <el-button type="primary" :disabled="!clerkManageFrame.permissions.some(k=>k==='MANAGE_BED')" @click="saveClerkManageFrame">{{this.$t('action.saveSettings')}}</el-button></el-col>
                             <el-col :span="8"></el-col>
                         </el-row>
@@ -292,7 +292,6 @@
                     this.clerks = {...res}
                     this.currentClerk = {...this.clerks[Object.keys(this.clerks)[0]][0]}
                     this.getClerkManageFrame(this.currentClerk.clerk_id, 4)
-                    console.log(res)
                 })
             },
             handleOpen() {
@@ -304,7 +303,6 @@
             handleSelect(val){
                 let path =val.split('-').map(p=>Number(p))
                 this.currentClerk = {...this.clerks[Object.keys(this.clerks)[path[0]]][path[1]]}
-                console.log('path',this.currentClerk)
                 this.getClerkManageFrame(this.currentClerk.clerk_id, 4)
             },
 
@@ -325,8 +323,6 @@
                     this.managedRoomGroup = Object.entries(managedGroup)
                     const noManagedGroup = groupBy(this.clerkManageFrame.no_manage_frames, item => item.group_name)
                     this.noManagedRoomGroup = Object.entries(noManagedGroup)
-
-                    console.log(res)
                 })
             },
             handleCheckAll(checked, item) {
@@ -375,7 +371,6 @@
                 return _list
             },
             handlerSearchManaged(keywords,view) {
-                console.log('keywords', keywords === '')
                 if (keywords !== '') {
                     if(view===1){
                         this.clerkManageFrame.managed_frames =this.clerkManageFrameSource.managed_frames.filter(p => p.full_name.indexOf(keywords) > -1 || p.chidren !== null && p.children.length > 0 && p.children.some(k => k.full_name.indexOf(keywords) > -1))
@@ -478,5 +473,8 @@
     /deep/.el-checkbox__input.is-disabled.is-checked + span.el-checkbox__label{
         color: #1890ff;
     }
-
+ /deep/ .el-checkbox__label{
+     white-space: normal;
+     text-align: left;
+ }
 </style>

+ 333 - 165
src/views/ncs-clerk-frame-manage/components/frameView.vue

@@ -39,159 +39,277 @@
         <el-main>
 
             <el-card :style="{height: asideHeight -20 +'px'}">
-
-                <el-tabs v-model="activeName" >
-                    <el-tab-pane :label="this.$t('clerkFrameManage.settableEmployee')" name="first">
-
-                        <el-scrollbar wrap-class="scrollbar-wrapper" :style="{height: (asideHeight-160)+'px'}">
-                            <div style="padding: 0 15px">
-
-
-                                <el-row v-if="frameManagedClerk.settable!==undefined && Object.keys(frameManagedClerk.settable).length>0">
-                                    <el-col :span="24">
-
-                                        <div class="text item">
-
-                                            <fieldset style="margin-bottom: 10px"  v-for="(roleName,_index) in Object.keys(frameManagedClerk.settable)"  :key="_index">
-                                                <legend><span
-                                                        style="margin-right: 10px">{{roleName}}</span>
-                                                </legend>
-                                                <el-row :gutter="20" type="flex" style="padding: 10px">
-                                                    <el-col :span="24">
-                                                        <el-checkbox v-for="(clerk,index) in frameManagedClerk.settable[roleName]"  :key="index" v-model="clerk.checked"
-                                                        >{{ clerk.clerk_name }}
-                                                        </el-checkbox>
-                                                    </el-col>
-                                                </el-row>
-                                            </fieldset>
-                                        </div>
-
-
-                                    </el-col>
-                                </el-row>
-
-
-
-
-                            </div>
-                        </el-scrollbar>
-                    </el-tab-pane>
-                    <el-tab-pane :label="this.$t('clerkFrameManage.settedEmployee')" name="second">
-
-                        <el-scrollbar wrap-class="scrollbar-wrapper" :style="{height: (asideHeight-160)+'px'}">
-                            <div style="padding: 0 15px">
-
-
-                                <el-row v-if="frameManagedClerk.settable!==undefined && Object.keys(frameManagedClerk.settable).length>0">
-                                    <el-col :span="24">
-
-                                        <div class="text item">
-
-                                            <fieldset style="margin-bottom: 10px"  v-for="(roleName,_index) in Object.keys(frameManagedClerk.settable)" v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)" :key="_index">
-                                                <legend><span
-                                                        style="margin-right: 10px">{{roleName}}</span>
-                                                </legend>
-                                                <el-row :gutter="20" type="flex" style="padding: 10px">
-                                                    <el-col :span="24">
-                                                        <el-checkbox v-for="(clerk,index) in frameManagedClerk.settable[roleName]" v-if="clerk.checked" :key="index" v-model="clerk.checked"
-                                                        >{{ clerk.clerk_name }}
-                                                        </el-checkbox>
-                                                    </el-col>
-                                                </el-row>
-                                            </fieldset>
-                                        </div>
-
-
-                                    </el-col>
-                                </el-row>
-
-
-                                <el-row class="margin-top-sm" v-if="frameManagedClerk.un_settable!==undefined && Object.keys(frameManagedClerk.un_settable).length>0" >
-                                    <el-col :span="24">
-
-                                        <div class="text item">
-
-                                            <fieldset style="margin-bottom: 10px"  v-for="(roleName,_index) in Object.keys(frameManagedClerk.un_settable)" :key="_index" v-if="frameManagedClerk.un_settable[roleName].length>0&&frameManagedClerk.un_settable[roleName].some(p=>p.checked)">
-                                                <legend><span
-                                                        style="margin-right: 10px">{{roleName}}</span>
-                                                </legend>
-                                                <el-row :gutter="20" type="flex" style="padding: 10px">
-                                                    <el-col :span="24">
-                                                        <el-checkbox v-for="(clerk,index) in frameManagedClerk.un_settable[roleName]" v-if="clerk.checked" disabled :key="index" v-model="clerk.checked"
-                                                        >{{ clerk.clerk_name }}
-                                                        </el-checkbox>
-                                                    </el-col>
-                                                </el-row>
-                                            </fieldset>
-                                        </div>
-
-
-                                    </el-col>
-                                </el-row>
-
-                            </div>
-                        </el-scrollbar>
-                    </el-tab-pane>
-
-                    <el-tab-pane :label="this.$t('clerkFrameManage.allEmployee')" name="third">
-                        <el-scrollbar wrap-class="scrollbar-wrapper" :style="{height: (asideHeight-160)+'px'}">
-                        <div style="padding: 0 15px">
-
-
-                            <el-row v-if="frameManagedClerk.settable!==undefined && Object.keys(frameManagedClerk.settable).length>0">
-                                <el-col :span="24">
-
-                                    <div class="text item">
-
-                                        <fieldset style="margin-bottom: 10px"  v-for="(roleName,_index) in Object.keys(frameManagedClerk.settable)" :key="_index">
-                                            <legend><span
-                                                    style="margin-right: 10px">{{roleName}}</span>
-                                            </legend>
-                                            <el-row :gutter="20" type="flex" style="padding: 10px">
-                                                <el-col :span="24">
-                                                    <el-checkbox v-for="(clerk,index) in frameManagedClerk.settable[roleName]" :key="index" v-model="clerk.checked"
-                                                    >{{ clerk.clerk_name }}
-                                                    </el-checkbox>
-                                                </el-col>
-                                            </el-row>
-                                        </fieldset>
-                                    </div>
-
-
-                                </el-col>
-                            </el-row>
-
-
-                            <el-row class="margin-top-sm" v-if="frameManagedClerk.un_settable!==undefined && Object.keys(frameManagedClerk.un_settable).length>0">
-                                <el-col :span="24">
-
-                                    <div class="text item">
-
-                                        <fieldset style="margin-bottom: 10px"  v-for="(roleName,_index) in Object.keys(frameManagedClerk.un_settable)" :key="_index">
-                                            <legend><span
-                                                    style="margin-right: 10px">{{roleName}}</span>
-                                            </legend>
-                                            <el-row :gutter="20" type="flex" style="padding: 10px">
-                                                <el-col :span="24">
-                                                    <el-checkbox v-for="(clerk,index) in frameManagedClerk.un_settable[roleName]" disabled :key="index" v-model="clerk.checked"
-                                                    >{{ clerk.clerk_name }}
-                                                    </el-checkbox>
-                                                </el-col>
-                                            </el-row>
-                                        </fieldset>
-                                    </div>
-
-
-                                </el-col>
-                            </el-row>
-
-                        </div>
-                    </el-scrollbar></el-tab-pane>
-                </el-tabs>
-
-
+                <el-form>
+                    <el-tabs v-model="activeName">
+                        <el-tab-pane :label="this.$t('clerkFrameManage.settableEmployee')" name="first">
+
+                            <el-scrollbar wrap-class="scrollbar-wrapper" :style="{height: (asideHeight-160)+'px'}">
+                                <div style="padding: 0 15px">
+
+
+                                    <el-row v-if="frameManagedClerk.settable!==undefined && Object.keys(frameManagedClerk.settable).length>0">
+                                        <el-col :span="24">
+
+                                            <div class="text item">
+
+                                                <fieldset style="margin-bottom: 10px"
+                                                          v-for="(roleName,_index) in Object.keys(frameManagedClerk.settable)"
+                                                          :key="_index">
+                                                    <legend><span
+                                                            style="margin-right: 10px">{{roleName}}</span>
+                                                    </legend>
+                                                    <el-row :gutter="20" type="flex" style="padding: 10px">
+                                                        <el-col :span="24">
+                                                            <el-checkbox
+                                                                    v-for="(clerk,index) in frameManagedClerk.settable[roleName]"
+                                                                    @change="(val)=>{checkChange(val,roleName)}"
+                                                                    :key="index" v-model="clerk.checked"
+                                                            >{{ clerk.clerk_name }}
+                                                            </el-checkbox>
+                                                        </el-col>
+                                                    </el-row>
+                                                    <el-divider
+                                                            v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)"></el-divider>
+                                                    <el-row type="flex" :gutter="20" class="margin-top-sm"
+                                                            v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)">
+                                                        <el-col :span="24">
+                                                            <el-form-item
+                                                                    :label="i18n.t('clerkFrameManage.phoneAcceptorLabel')">
+                                                                <el-select
+                                                                        v-model="frameManagedClerk.phone_acceptor[roleName]"
+                                                                        @change="(val)=>{phoneAcceptorChange(val,roleName)}"
+                                                                        >
+                                                                    <el-option
+                                                                            v-for="(clerk,index) in frameManagedClerk.settable[roleName]"
+                                                                            v-if="clerk.checked"
+                                                                            :key="clerk.clerk_id"
+                                                                            :label="clerk.clerk_name"
+                                                                            :value="clerk.clerk_id">
+                                                                    </el-option>
+                                                                </el-select>
+                                                            </el-form-item>
+                                                        </el-col>
+                                                    </el-row>
+                                                </fieldset>
+                                            </div>
+
+
+                                        </el-col>
+                                    </el-row>
+
+
+                                </div>
+                            </el-scrollbar>
+                        </el-tab-pane>
+                        <el-tab-pane :label="this.$t('clerkFrameManage.settedEmployee')" name="second">
+
+                            <el-scrollbar wrap-class="scrollbar-wrapper" :style="{height: (asideHeight-160)+'px'}">
+                                <div style="padding: 0 15px">
+
+
+                                    <el-row v-if="frameManagedClerk.settable!==undefined && Object.keys(frameManagedClerk.settable).length>0">
+                                        <el-col :span="24">
+
+                                            <div class="text item">
+
+                                                <fieldset style="margin-bottom: 10px"
+                                                          v-for="(roleName,_index) in Object.keys(frameManagedClerk.settable)"
+                                                          v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)"
+                                                          :key="_index">
+                                                    <legend><span
+                                                            style="margin-right: 10px">{{roleName}}</span>
+                                                    </legend>
+                                                    <el-row :gutter="20" type="flex" style="padding: 10px">
+                                                        <el-col :span="24">
+                                                            <el-checkbox
+                                                                    v-for="(clerk,index) in frameManagedClerk.settable[roleName]"
+                                                                    v-if="clerk.checked"
+                                                                    @change="(val)=>{checkChange(val,roleName)}"
+                                                                    :key="index" v-model="clerk.checked">{{
+                                                                clerk.clerk_name }}
+                                                            </el-checkbox>
+                                                        </el-col>
+                                                    </el-row>
+                                                    <el-divider
+                                                            v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)"></el-divider>
+                                                    <el-row type="flex" :gutter="20" class="margin-top-sm"
+                                                            v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)">
+                                                        <el-col :span="24">
+                                                            <el-form-item
+                                                                    :label="i18n.t('clerkFrameManage.phoneAcceptorLabel')">
+                                                                <el-select
+                                                                        v-model="frameManagedClerk.phone_acceptor[roleName]"
+                                                                        @change="(val)=>{phoneAcceptorChange(val,roleName)}"
+                                                                       >
+                                                                    <el-option
+                                                                            v-for="(clerk,index) in frameManagedClerk.settable[roleName]"
+                                                                            v-if="clerk.checked"
+                                                                            :key="clerk.clerk_id"
+                                                                            :label="clerk.clerk_name"
+                                                                            :value="clerk.clerk_id">
+                                                                    </el-option>
+                                                                </el-select>
+                                                            </el-form-item>
+                                                        </el-col>
+                                                    </el-row>
+                                                </fieldset>
+                                            </div>
+
+
+                                        </el-col>
+                                    </el-row>
+
+
+                                    <el-row class="margin-top-sm"
+                                            v-if="frameManagedClerk.un_settable!==undefined && Object.keys(frameManagedClerk.un_settable).length>0">
+                                        <el-col :span="24">
+
+                                            <div class="text item">
+
+                                                <fieldset style="margin-bottom: 10px"
+                                                          v-for="(roleName,_index) in Object.keys(frameManagedClerk.un_settable)"
+                                                          :key="_index"
+                                                          v-if="frameManagedClerk.un_settable[roleName].length>0&&frameManagedClerk.un_settable[roleName].some(p=>p.checked)">
+                                                    <legend><span
+                                                            style="margin-right: 10px">{{roleName}}</span>
+                                                    </legend>
+                                                    <el-row :gutter="20" type="flex" style="padding: 10px">
+                                                        <el-col :span="24">
+                                                            <el-checkbox
+                                                                    v-for="(clerk,index) in frameManagedClerk.un_settable[roleName]"
+                                                                    v-if="clerk.checked" disabled :key="index"
+                                                                    v-model="clerk.checked"
+                                                            >{{ clerk.clerk_name }}
+                                                            </el-checkbox>
+                                                        </el-col>
+                                                    </el-row>
+                                                </fieldset>
+                                            </div>
+
+
+                                        </el-col>
+                                    </el-row>
+
+                                </div>
+                            </el-scrollbar>
+                        </el-tab-pane>
+
+                        <el-tab-pane :label="this.$t('clerkFrameManage.allEmployee')" name="third">
+                            <el-scrollbar wrap-class="scrollbar-wrapper" :style="{height: (asideHeight-160)+'px'}">
+                                <div style="padding: 0 15px">
+
+
+                                    <el-row v-if="frameManagedClerk.settable!==undefined && Object.keys(frameManagedClerk.settable).length>0">
+                                        <el-col :span="24">
+
+                                            <div class="text item">
+
+                                                <fieldset style="margin-bottom: 10px"
+                                                          v-for="(roleName,_index) in Object.keys(frameManagedClerk.settable)"
+                                                          :key="_index">
+                                                    <legend><span
+                                                            style="margin-right: 10px">{{roleName}}</span>
+                                                    </legend>
+                                                    <el-row :gutter="20" type="flex" style="padding: 10px">
+                                                        <el-col :span="24">
+                                                            <el-checkbox
+                                                                    v-for="(clerk,index) in frameManagedClerk.settable[roleName]"
+                                                                    :key="index" v-model="clerk.checked"
+                                                                    @change="(val)=>{checkChange(val,roleName)}"
+                                                            >{{ clerk.clerk_name }}
+                                                            </el-checkbox>
+                                                        </el-col>
+                                                    </el-row>
+                                                    <el-divider
+                                                            v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)"></el-divider>
+                                                    <el-row type="flex" :gutter="20" class="margin-top-sm"
+                                                            v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)">
+                                                        <el-col :span="24">
+                                                            <el-form-item
+                                                                    :label="i18n.t('clerkFrameManage.phoneAcceptorLabel')">
+                                                                <el-select
+                                                                        v-model="frameManagedClerk.phone_acceptor[roleName]"
+                                                                        @change="(val)=>{phoneAcceptorChange(val,roleName)}"
+                                                                       >
+                                                                    <el-option
+                                                                            v-for="(clerk,index) in frameManagedClerk.settable[roleName]"
+                                                                            v-if="clerk.checked"
+                                                                            :key="clerk.clerk_id"
+                                                                            :label="clerk.clerk_name"
+                                                                            :value="clerk.clerk_id">
+                                                                    </el-option>
+                                                                </el-select>
+                                                            </el-form-item>
+                                                        </el-col>
+                                                    </el-row>
+                                                </fieldset>
+                                            </div>
+
+
+                                        </el-col>
+                                    </el-row>
+
+
+                                    <el-row class="margin-top-sm"
+                                            v-if="frameManagedClerk.un_settable!==undefined && Object.keys(frameManagedClerk.un_settable).length>0">
+                                        <el-col :span="24">
+
+                                            <div class="text item">
+
+                                                <fieldset style="margin-bottom: 10px"
+                                                          v-for="(roleName,_index) in Object.keys(frameManagedClerk.un_settable)"
+                                                          :key="_index">
+                                                    <legend><span
+                                                            style="margin-right: 10px">{{roleName}}</span>
+                                                    </legend>
+                                                    <el-row :gutter="20" type="flex" style="padding: 10px">
+                                                        <el-col :span="24">
+                                                            <el-checkbox
+                                                                    v-for="(clerk,index) in frameManagedClerk.un_settable[roleName]"
+                                                                    disabled :key="index" v-model="clerk.checked"
+                                                            >{{ clerk.clerk_name }}
+                                                            </el-checkbox>
+                                                        </el-col>
+                                                    </el-row>
+                                                    <el-divider
+                                                            v-if="frameManagedClerk.un_settable[roleName].length>0&&frameManagedClerk.un_settable[roleName].some(p=>p.checked)"></el-divider>
+                                                    <el-row type="flex" :gutter="20" class="margin-top-sm"
+                                                            v-if="frameManagedClerk.un_settable[roleName].length>0&&frameManagedClerk.un_settable[roleName].some(p=>p.checked)">
+                                                        <el-col :span="24">
+                                                            <el-form-item
+                                                                    :label="i18n.t('clerkFrameManage.phoneAcceptorLabel')">
+                                                                <el-select
+                                                                        v-model="frameManagedClerk.phone_acceptor[roleName]"
+                                                                        @change="(val)=>{phoneAcceptorChange(val,roleName)}"
+                                                                        disabled>
+                                                                    <el-option
+                                                                            v-for="(clerk,index) in frameManagedClerk.un_settable[roleName]"
+                                                                            v-if="clerk.checked"
+                                                                            :key="clerk.clerk_id"
+                                                                            :label="clerk.clerk_name"
+                                                                            :value="clerk.clerk_id">
+                                                                    </el-option>
+                                                                </el-select>
+                                                            </el-form-item>
+                                                        </el-col>
+                                                    </el-row>
+                                                </fieldset>
+                                            </div>
+
+
+                                        </el-col>
+                                    </el-row>
+
+                                </div>
+                            </el-scrollbar>
+                        </el-tab-pane>
+                    </el-tabs>
+
+                </el-form>
                 <div class="margin-top-xs text-center padding-content">
-                    <el-button type="primary"  :disabled="frameManagedClerk['type']===4" @click="saveFrameManagedClerk">{{this.$t('action.saveSettings')}}</el-button>
+                    <el-button type="primary" :disabled="frameManagedClerk['type']!==5" @click="saveFrameManagedClerk">
+                        {{this.$t('action.saveSettings')}}
+                    </el-button>
                 </div>
             </el-card>
 
@@ -202,6 +320,7 @@
 <script>
     import * as API_FrameGroup from '@/api/ncs_frameGroup'
     import {FRAME_TYPE} from '@/utils/enum/FrameTypeEnum'
+    import i18n from "../../../utils/i18n"
 
     export default {
         name: "frameView",
@@ -212,7 +331,6 @@
         },
         watch: {
             selectedNodeId(newval, old) {
-                console.log('watch', newval)
                 // this.selectedNode = this.findNodeById(this.treeData, newval)
             },
             filterText(val) {
@@ -236,10 +354,10 @@
                 selectedNodeId: 0,
                 selectedNode: {},
                 filterText: '',
-                frameManagedClerk:{
-
-                },
-                activeName:'first'
+                abc: [],
+                frameManagedClerk: {},
+                activeName: 'first',
+                i18n:i18n
             }
         },
         methods: {
@@ -256,11 +374,52 @@
                     })
                 })
             },
+            checkChange(val, roleName) {
+
+                const roleCheckedClerk = this.frameManagedClerk.settable[roleName].filter(p => p.checked)
 
+                if (roleCheckedClerk.length === 0) {
+                    this.frameManagedClerk.phone_acceptor[roleName]=null
+                    this.frameManagedClerk.settable[roleName].forEach(item => {
+                        item.bool_phone_acceptor = false
+                    })
+                } else if (roleCheckedClerk.length === 1) {  //角色群组中只选中了一个职员,把该职员设为默认的电话接收人
+                    this.frameManagedClerk.phone_acceptor[roleName] = roleCheckedClerk[0].clerk_id
+                    this.frameManagedClerk.settable[roleName].forEach(item => {
+                        if (item.clerk_id === roleCheckedClerk[0].clerk_id) {
+                            item.bool_phone_acceptor = true
+                        } else {
+                            item.bool_phone_acceptor = false
+                        }
+                    })
+                } else if (roleCheckedClerk.length > 1) {//查看当前电话接收人是否是选中状态,如果不是选中状态,修改电话接收人
+                    const currentPhoneAcceptor = this.frameManagedClerk.settable[roleName].filter(p => p.clerk_id === this.frameManagedClerk.phone_acceptor[roleName])[0]
+                    if (currentPhoneAcceptor !== undefined && !currentPhoneAcceptor.checked) {
+                        this.frameManagedClerk.phone_acceptor[roleName] = roleCheckedClerk[0].clerk_id
+                        this.frameManagedClerk.settable[roleName].forEach(item => {
+                            if (item.clerk_id === roleCheckedClerk[0].clerk_id) {
+                                item.bool_phone_acceptor = true
+                            } else {
+                                item.bool_phone_acceptor = false
+                            }
+                        })
+                    }
+
+                }
+            },
+            phoneAcceptorChange(val, roleName) {
+                const phoneAcceptor = this.frameManagedClerk.phone_acceptor[roleName]
+                this.frameManagedClerk.settable[roleName].forEach(item => {
+                    if (item.clerk_id === phoneAcceptor) {
+                        item.bool_phone_acceptor = true
+                    } else {
+                        item.bool_phone_acceptor = false
+                    }
+                })
+            },
             getFrameManagedClerk(frameId) {
                 API_FrameGroup.getFrameManagedClerk(frameId).then(res => {
-                    console.log(res)
-                    this.frameManagedClerk={...res}
+                    this.frameManagedClerk = {...res}
                 }).catch(err => {
 
                 })
@@ -278,12 +437,12 @@
                 this.getFrameManagedClerk(data.id)
             },
 
-            saveFrameManagedClerk(){
-                API_FrameGroup.saveFrameManagedClerk(this.frameManagedClerk).then(res=>{
+            saveFrameManagedClerk() {
+                API_FrameGroup.saveFrameManagedClerk(this.frameManagedClerk).then(res => {
 
                     this.getFrameManagedClerk(res.id)
                     this.$message.success(this.$t('action.saveSuccess'))
-                }).catch(err=>{
+                }).catch(err => {
                     this.$message.error(err.message)
                 })
             }
@@ -322,11 +481,20 @@
         border: 1px solid #DCDFE6;
         border-radius: 5px;
     }
-    .margin-top-sm{margin-top: 20px}
-    /deep/.el-checkbox__input.is-disabled.is-checked + span.el-checkbox__label{
+
+    .margin-top-sm {
+        margin-top: 10px
+    }
+
+    /deep/ .el-checkbox__input.is-disabled.is-checked + span.el-checkbox__label {
         color: #1890ff;
     }
-    /deep/ .el-scrollbar__wrap{
+
+    /deep/ .el-scrollbar__wrap {
         overflow-x: hidden;
     }
+
+    /deep/ .el-form-item {
+        margin-bottom: 10px;
+    }
 </style>

+ 136 - 4
src/views/ncs-clerk-frame-manage/components/multiClerkManageFrame.vue

@@ -38,7 +38,7 @@
         <el-main>
 
             <el-card :style="{height: asideHeight -20 +'px'}">
-
+                <el-form>
                 <el-tabs v-model="activeName" >
                     <el-tab-pane :label="this.$t('clerkFrameManage.settableEmployee')" name="first">
 
@@ -58,10 +58,33 @@
                                                 <el-row :gutter="20" type="flex" style="padding: 10px">
                                                     <el-col :span="24">
                                                         <el-checkbox v-for="(clerk,index) in frameManagedClerk.settable[roleName]"  :key="index" v-model="clerk.checked"
+                                                                     @change="(val)=>{checkChange(val,roleName)}"
                                                         >{{ clerk.clerk_name }}
                                                         </el-checkbox>
                                                     </el-col>
                                                 </el-row>
+                                                <el-divider
+                                                        v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)"></el-divider>
+                                                <el-row type="flex" :gutter="20" class="margin-top-sm"
+                                                        v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)">
+                                                    <el-col :span="24">
+                                                        <el-form-item
+                                                                :label="i18n.t('clerkFrameManage.phoneAcceptorLabel')">
+                                                            <el-select
+                                                                    v-model="frameManagedClerk.phone_acceptor[roleName]"
+                                                                    @change="(val)=>{phoneAcceptorChange(val,roleName)}"
+                                                                    >
+                                                                <el-option
+                                                                        v-for="(clerk,index) in frameManagedClerk.settable[roleName]"
+                                                                        v-if="clerk.checked"
+                                                                        :key="clerk.clerk_id"
+                                                                        :label="clerk.clerk_name"
+                                                                        :value="clerk.clerk_id">
+                                                                </el-option>
+                                                            </el-select>
+                                                        </el-form-item>
+                                                    </el-col>
+                                                </el-row>
                                             </fieldset>
                                         </div>
 
@@ -93,10 +116,33 @@
                                                 <el-row :gutter="20" type="flex" style="padding: 10px">
                                                     <el-col :span="24">
                                                         <el-checkbox v-for="(clerk,index) in frameManagedClerk.settable[roleName]" v-if="clerk.checked" :key="index" v-model="clerk.checked"
+                                                                     @change="(val)=>{checkChange(val,roleName)}"
                                                         >{{ clerk.clerk_name }}
                                                         </el-checkbox>
                                                     </el-col>
                                                 </el-row>
+                                                <el-divider
+                                                        v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)"></el-divider>
+                                                <el-row type="flex" :gutter="20" class="margin-top-sm"
+                                                        v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)">
+                                                    <el-col :span="24">
+                                                        <el-form-item
+                                                                :label="i18n.t('clerkFrameManage.phoneAcceptorLabel')">
+                                                            <el-select
+                                                                    v-model="frameManagedClerk.phone_acceptor[roleName]"
+                                                                    @change="(val)=>{phoneAcceptorChange(val,roleName)}"
+                                                                    >
+                                                                <el-option
+                                                                        v-for="(clerk,index) in frameManagedClerk.settable[roleName]"
+                                                                        v-if="clerk.checked"
+                                                                        :key="clerk.clerk_id"
+                                                                        :label="clerk.clerk_name"
+                                                                        :value="clerk.clerk_id">
+                                                                </el-option>
+                                                            </el-select>
+                                                        </el-form-item>
+                                                    </el-col>
+                                                </el-row>
                                             </fieldset>
                                         </div>
 
@@ -121,6 +167,28 @@
                                                         </el-checkbox>
                                                     </el-col>
                                                 </el-row>
+                                                <el-divider
+                                                        v-if="frameManagedClerk.un_settable[roleName].length>0&&frameManagedClerk.un_settable[roleName].some(p=>p.checked)"></el-divider>
+                                                <el-row type="flex" :gutter="20" class="margin-top-sm"
+                                                        v-if="frameManagedClerk.un_settable[roleName].length>0&&frameManagedClerk.un_settable[roleName].some(p=>p.checked)">
+                                                    <el-col :span="24">
+                                                        <el-form-item
+                                                                :label="i18n.t('clerkFrameManage.phoneAcceptorLabel')">
+                                                            <el-select
+                                                                    v-model="frameManagedClerk.phone_acceptor[roleName]"
+                                                                    @change="(val)=>{phoneAcceptorChange(val,roleName)}"
+                                                                    disabled>
+                                                                <el-option
+                                                                        v-for="(clerk,index) in frameManagedClerk.un_settable[roleName]"
+                                                                        v-if="clerk.checked"
+                                                                        :key="clerk.clerk_id"
+                                                                        :label="clerk.clerk_name"
+                                                                        :value="clerk.clerk_id">
+                                                                </el-option>
+                                                            </el-select>
+                                                        </el-form-item>
+                                                    </el-col>
+                                                </el-row>
                                             </fieldset>
                                         </div>
 
@@ -149,10 +217,33 @@
                                                 <el-row :gutter="20" type="flex" style="padding: 10px">
                                                     <el-col :span="24">
                                                         <el-checkbox v-for="(clerk,index) in frameManagedClerk.settable[roleName]" :key="index" v-model="clerk.checked"
+                                                                     @change="(val)=>{checkChange(val,roleName)}"
                                                         >{{ clerk.clerk_name }}
                                                         </el-checkbox>
                                                     </el-col>
                                                 </el-row>
+                                                <el-divider
+                                                        v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)"></el-divider>
+                                                <el-row type="flex" :gutter="20" class="margin-top-sm"
+                                                        v-if="frameManagedClerk.settable[roleName].length>0&&frameManagedClerk.settable[roleName].some(p=>p.checked)">
+                                                    <el-col :span="24">
+                                                        <el-form-item
+                                                                :label="i18n.t('clerkFrameManage.phoneAcceptorLabel')">
+                                                            <el-select
+                                                                    v-model="frameManagedClerk.phone_acceptor[roleName]"
+                                                                    @change="(val)=>{phoneAcceptorChange(val,roleName)}"
+                                                                    >
+                                                                <el-option
+                                                                        v-for="(clerk,index) in frameManagedClerk.settable[roleName]"
+                                                                        v-if="clerk.checked"
+                                                                        :key="clerk.clerk_id"
+                                                                        :label="clerk.clerk_name"
+                                                                        :value="clerk.clerk_id">
+                                                                </el-option>
+                                                            </el-select>
+                                                        </el-form-item>
+                                                    </el-col>
+                                                </el-row>
                                             </fieldset>
                                         </div>
 
@@ -192,6 +283,7 @@
                 <div class="margin-top-xs text-center padding-content">
                     <el-button type="primary"  :disabled="frameManagedClerk['type']===4" @click="saveFrameManagedClerk">{{this.$t('action.saveSettings')}}</el-button>
                 </div>
+                </el-form>
             </el-card>
 
         </el-main>
@@ -201,6 +293,7 @@
 <script>
     import * as API_FrameGroup from '@/api/ncs_frameGroup'
     import {FRAME_TYPE} from '@/utils/enum/FrameTypeEnum'
+    import i18n from "../../../utils/i18n"
     export default {
         name: "multiClerkManageFrame",
         computed: {
@@ -210,7 +303,6 @@
         },
         watch: {
             selectedNodeId(newval, old) {
-                console.log('watch', newval)
                 // this.selectedNode = this.findNodeById(this.treeData, newval)
             },
             filterText(val) {
@@ -242,7 +334,8 @@
                 frameManagedClerk:{
 
                 },
-                activeName:'first'
+                activeName:'first',
+                i18n:i18n
             }
         },
         methods: {
@@ -262,13 +355,52 @@
 
             getFrameManagedClerk(frameId) {
                 API_FrameGroup.getFrameManagedClerk(frameId).then(res => {
-                    console.log(res)
                     this.frameManagedClerk={...res}
                 }).catch(err => {
 
                 })
             },
+            checkChange(val, roleName) {
+                const roleCheckedClerk = this.frameManagedClerk.settable[roleName].filter(p => p.checked)
+                if (roleCheckedClerk.length === 0) {
+                    this.frameManagedClerk.phone_acceptor[roleName]=null
+                    this.frameManagedClerk.settable[roleName].forEach(item => {
+                        item.bool_phone_acceptor = false
+                    })
+                } else if (roleCheckedClerk.length === 1) {  //角色群组中只选中了一个职员,把该职员设为默认的电话接收人
+                    this.frameManagedClerk.phone_acceptor[roleName] = roleCheckedClerk[0].clerk_id
+                    this.frameManagedClerk.settable[roleName].forEach(item => {
+                        if (item.clerk_id === roleCheckedClerk[0].clerk_id) {
+                            item.bool_phone_acceptor = true
+                        } else {
+                            item.bool_phone_acceptor = false
+                        }
+                    })
+                } else if (roleCheckedClerk.length > 1) {//查看当前电话接收人是否是选中状态,如果不是选中状态,修改电话接收人
+                    const currentPhoneAcceptor = this.frameManagedClerk.settable[roleName].filter(p => p.clerk_id === this.frameManagedClerk.phone_acceptor[roleName])[0]
+                    if (currentPhoneAcceptor !== undefined && !currentPhoneAcceptor.checked) {
+                        this.frameManagedClerk.phone_acceptor[roleName] = roleCheckedClerk[0].clerk_id
+                        this.frameManagedClerk.settable[roleName].forEach(item => {
+                            if (item.clerk_id === roleCheckedClerk[0].clerk_id) {
+                                item.bool_phone_acceptor = true
+                            } else {
+                                item.bool_phone_acceptor = false
+                            }
+                        })
+                    }
 
+                }
+            },
+            phoneAcceptorChange(val, roleName) {
+                const phoneAcceptor = this.frameManagedClerk.phone_acceptor[roleName]
+                this.frameManagedClerk.settable[roleName].forEach(item => {
+                    if (item.clerk_id === phoneAcceptor) {
+                        item.bool_phone_acceptor = true
+                    } else {
+                        item.bool_phone_acceptor = false
+                    }
+                })
+            },
 
             /** 节点过滤方法 **/
             filterNode(value, data) {