|  |  | 
 |  |  |       :visible.sync="editConfig.visible" | 
 |  |  |       :width="dialogWidth" | 
 |  |  |       :before-close="handleClose" | 
 |  |  |       append-to-body | 
 |  |  |       custom-class="iframe-dialog" | 
 |  |  |     > | 
 |  |  |       <el-form | 
 |  |  |         ref="form" | 
 |  |  |         :model="editConfig.infomation" | 
 |  |  |         :rules="rules" | 
 |  |  |         label-position="right" | 
 |  |  |         label-width="308px" | 
 |  |  |         label-width="168px" | 
 |  |  |         size="mini" | 
 |  |  |         style="height: 60vh; overflow-x: hidden" | 
 |  |  |       > | 
 |  |  | 
 |  |  |           <div class="basic-info-view"> | 
 |  |  |             <el-row> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="客户名称" prop="customName"> | 
 |  |  |                 <el-form-item label="回访单编号" prop="number"> | 
 |  |  |                   <el-input | 
 |  |  |                     v-if=" | 
 |  |  |                       editConfig.title == '编辑' || | 
 |  |  |                       (editConfig.title == '新建' && codenumer && (explain != '' || isIdDisabled)) | 
 |  |  |                     " | 
 |  |  |                     :disabled="editConfig.title == '编辑'" | 
 |  |  |                     v-model="editConfig.infomation.number" | 
 |  |  |                     placeholder="请输入编码" | 
 |  |  |                   > | 
 |  |  |                   </el-input> | 
 |  |  |                   <span v-else-if="editConfig.title == '新建'" style="color: #f56c6c" | 
 |  |  |                     >请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span | 
 |  |  |                   > | 
 |  |  |                   <!-- <WordInput | 
 |  |  |                     v-if="codenumer && (explain != '' || isIdDisabled) && method == 0" | 
 |  |  |                     :codenumer="codenumer" | 
 |  |  |                     :sum="sum" | 
 |  |  |                     :disabled="editConfig.title !== '新建' || isIdDisabled" | 
 |  |  |                     :inputValue="inputValue" | 
 |  |  |                     @codeList="codeList" | 
 |  |  |                   /> | 
 |  |  |                   <span v-else-if="method == 0" style="color: #f56c6c" | 
 |  |  |                     >请优先配置编码规范 <el-button type="text" @click="numberClick"> 配置规范 </el-button></span | 
 |  |  |                   > | 
 |  |  |                   <span v-else>{{ editConfig.title === "新建" ? "自动生成" : editConfig.infomation.number }}</span> --> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="客户名称" prop="client_name"> | 
 |  |  |                   <div class="custom-name"> | 
 |  |  |                     <el-input v-model="editConfig.infomation.customName"></el-input> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div> | 
 |  |  |                     <el-autocomplete | 
 |  |  |                       v-model="editConfig.infomation.client_name" | 
 |  |  |                       :fetch-suggestions=" | 
 |  |  |                         (queryString, callback) => { | 
 |  |  |                           querySearchAsync(queryString, callback, 'client') | 
 |  |  |                         } | 
 |  |  |                       " | 
 |  |  |                       value-key="name" | 
 |  |  |                       @select="handleSelectClient('client', $event)" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     ></el-autocomplete> | 
 |  |  |                     <div class="common-select-btn" @click="selClientClick('client')"> | 
 |  |  |                       <i class="el-icon-circle-plus-outline" title="选择"></i> | 
 |  |  |                     </div> | 
 |  |  |                     <div | 
 |  |  |                       v-if="editConfig.infomation.client_name && editConfig.infomation.client_name.length > 0" | 
 |  |  |                       class="common-select-btn" | 
 |  |  |                       @click="clearupClient('client')" | 
 |  |  |                     > | 
 |  |  |                       <i class="el-icon-remove-outline" title="清除"></i> | 
 |  |  |                     </div> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="回访单编号" prop="followupNumber"> | 
 |  |  |                   <el-input v-model="editConfig.infomation.followupNumber"></el-input> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="联系人姓名" prop="contactName"> | 
 |  |  |                 <el-form-item label="联系人姓名" prop="contact_name"> | 
 |  |  |                   <div class="custom-name"> | 
 |  |  |                     <el-input v-model="editConfig.infomation.contactName"></el-input> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div> | 
 |  |  |                     <el-autocomplete | 
 |  |  |                       v-model="editConfig.infomation.contact_name" | 
 |  |  |                       :fetch-suggestions=" | 
 |  |  |                         (queryString, callback) => { | 
 |  |  |                           querySearchAsync(queryString, callback, 'contact') | 
 |  |  |                         } | 
 |  |  |                       " | 
 |  |  |                       value-key="name" | 
 |  |  |                       @select="handleSelectClient('contact', $event)" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     ></el-autocomplete> | 
 |  |  |                     <div class="common-select-btn" @click="selClientClick('contact')"> | 
 |  |  |                       <i class="el-icon-circle-plus-outline" title="选择"></i> | 
 |  |  |                     </div> | 
 |  |  |                     <div | 
 |  |  |                       v-if="editConfig.infomation.contact_name && editConfig.infomation.contact_name.length > 0" | 
 |  |  |                       class="common-select-btn" | 
 |  |  |                       @click="clearupClient('contact')" | 
 |  |  |                     > | 
 |  |  |                       <i class="el-icon-remove-outline" title="清除"></i> | 
 |  |  |                     </div> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="客户服务单" prop="customServiceForm"> | 
 |  |  |                 <el-form-item label="客户服务单" prop="service_number"> | 
 |  |  |                   <div class="custom-name"> | 
 |  |  |                     <el-input v-model="editConfig.infomation.customServiceForm"></el-input> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div> | 
 |  |  |                     <el-autocomplete | 
 |  |  |                       v-model="editConfig.infomation.service_number" | 
 |  |  |                       :fetch-suggestions=" | 
 |  |  |                         (queryString, callback) => { | 
 |  |  |                           querySearchAsync(queryString, callback, 'customService') | 
 |  |  |                         } | 
 |  |  |                       " | 
 |  |  |                       value-key="serviceNumber" | 
 |  |  |                       @select="handleSelectClient('customService', $event)" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     ></el-autocomplete> | 
 |  |  |                     <div class="common-select-btn" @click="selClientClick('customService')"> | 
 |  |  |                       <i class="el-icon-circle-plus-outline" title="选择"></i> | 
 |  |  |                     </div> | 
 |  |  |                     <div | 
 |  |  |                       v-if="editConfig.infomation.service_number && editConfig.infomation.service_number.length > 0" | 
 |  |  |                       class="common-select-btn" | 
 |  |  |                       @click="clearupClient('customService')" | 
 |  |  |                     > | 
 |  |  |                       <i class="el-icon-remove-outline" title="清除"></i> | 
 |  |  |                     </div> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="回访人" prop="visitor"> | 
 |  |  |                   <el-select v-model="editConfig.infomation.visitor" size="mini"> | 
 |  |  |                     <el-option v-for="item in visitorOptions" :key="item.value" :label="item.label" :value="item.value"> | 
 |  |  |                 <el-form-item label="回访人" prop="memberId"> | 
 |  |  |                   <el-select v-model="editConfig.infomation.memberId" size="mini" style="width: 100%"> | 
 |  |  |                     <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> | 
 |  |  |                     </el-option> | 
 |  |  |                   </el-select> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <!-- <el-col :span="12"> | 
 |  |  |                 <el-form-item label="项目计划" prop="planId"> | 
 |  |  |                   <div class="custom-name"> | 
 |  |  |                     <el-input v-model="editConfig.infomation.planId"></el-input> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> --> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="满意度" prop="satisfactionId"> | 
 |  |  |                   <div class="common-select"> | 
 |  |  |                     <el-select | 
 |  |  |                       v-model="editConfig.infomation.satisfactionId" | 
 |  |  |                       placeholder="请选择" | 
 |  |  |                       class="common-select-sel" | 
 |  |  |                       size="mini" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     > | 
 |  |  |                       <el-option v-for="item in satisfactionOptions" :key="item.id" :label="item.name" :value="item.id"> | 
 |  |  |                       </el-option> | 
 |  |  |                     </el-select> | 
 |  |  |                     <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> --> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="及时率" prop="timelyRateId"> | 
 |  |  |                   <div class="common-select"> | 
 |  |  |                     <el-select | 
 |  |  |                       v-model="editConfig.infomation.timelyRateId" | 
 |  |  |                       placeholder="请选择" | 
 |  |  |                       class="common-select-sel" | 
 |  |  |                       size="mini" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     > | 
 |  |  |                       <el-option v-for="item in timelyRateOptions" :key="item.id" :label="item.name" :value="item.id"> | 
 |  |  |                       </el-option> | 
 |  |  |                     </el-select> | 
 |  |  |                     <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> --> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="解决率" prop="solveRateId"> | 
 |  |  |                   <div class="common-select"> | 
 |  |  |                     <el-select | 
 |  |  |                       v-model="editConfig.infomation.solveRateId" | 
 |  |  |                       placeholder="请选择" | 
 |  |  |                       class="common-select-sel" | 
 |  |  |                       size="mini" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     > | 
 |  |  |                       <el-option v-for="item in solveRateOptions" :key="item.id" :label="item.name" :value="item.id"> | 
 |  |  |                       </el-option> | 
 |  |  |                     </el-select> | 
 |  |  |                     <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> --> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="原服务人员" prop="oldMemberId"> | 
 |  |  |                   <el-select v-model="editConfig.infomation.oldMemberId" size="mini" style="width: 100%"> | 
 |  |  |                     <el-option v-for="item in oldMemberOptions" :key="item.id" :label="item.username" :value="item.id"> | 
 |  |  |                     </el-option> | 
 |  |  |                   </el-select> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="项目计划" prop="projectPlan"> | 
 |  |  |                   <div class="custom-name"> | 
 |  |  |                     <el-input v-model="editConfig.infomation.projectPlan"></el-input> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="选择"></i></div> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-edit" title="编辑"></i></div> | 
 |  |  |                 <el-form-item label="服务人员是否来过" prop="isVisitId"> | 
 |  |  |                   <div class="common-select"> | 
 |  |  |                     <el-select | 
 |  |  |                       v-model="editConfig.infomation.isVisitId" | 
 |  |  |                       placeholder="请选择" | 
 |  |  |                       class="common-select-sel" | 
 |  |  |                       size="mini" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     > | 
 |  |  |                       <el-option v-for="item in isVisitOptions" :key="item.id" :label="item.name" :value="item.id"> | 
 |  |  |                       </el-option> | 
 |  |  |                     </el-select> | 
 |  |  |                     <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> --> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="满意度" prop="satisfaction"> | 
 |  |  |                   <CommonSelectView | 
 |  |  |                     :common-value="editConfig.infomation.satisfaction" | 
 |  |  |                     :common-options="satisfactionOptions" | 
 |  |  |                   /> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="及时率" prop="timelyRate"> | 
 |  |  |                   <CommonSelectView | 
 |  |  |                     :common-value="editConfig.infomation.timelyRate" | 
 |  |  |                     :common-options="satisfactionOptions" | 
 |  |  |                   /> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="解决率" prop="resolveRate"> | 
 |  |  |                   <CommonSelectView | 
 |  |  |                     :common-value="editConfig.infomation.resolveRate" | 
 |  |  |                     :common-options="satisfactionOptions" | 
 |  |  |                   /> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="原服务人员" prop="originServicePerson"> | 
 |  |  |                   <el-select v-model="editConfig.infomation.originServicePerson" size="mini"> | 
 |  |  |                     <el-option v-for="item in visitorOptions" :key="item.value" :label="item.label" :value="item.value"> | 
 |  |  |                     </el-option> | 
 |  |  |                   </el-select> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="服务人员是否来过" prop="haveBeen"> | 
 |  |  |                   <CommonSelectView :common-value="editConfig.infomation.haveBeen" :common-options="haveBeenOptions" /> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |             </el-row> | 
 |  |  | 
 |  |  |           <div class="basic-info-view"> | 
 |  |  |             <el-row> | 
 |  |  |               <el-col :span="24"> | 
 |  |  |                 <el-form-item label="备注" prop="notes"> | 
 |  |  |                 <el-form-item label="备注" prop="remark"> | 
 |  |  |                   <el-input | 
 |  |  |                     type="textarea" | 
 |  |  |                     :autosize="{ minRows: 2, maxRows: 4 }" | 
 |  |  |                     placeholder="请输入内容" | 
 |  |  |                     v-model="editConfig.infomation.notes" | 
 |  |  |                     v-model="editConfig.infomation.remark" | 
 |  |  |                   ></el-input> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |             </el-row> | 
 |  |  |           </div> | 
 |  |  |           <!-- 附件信息 --> | 
 |  |  |           <div class="basic-info-title">附件信息</div> | 
 |  |  |           <!-- <div class="basic-info-title">附件信息</div> | 
 |  |  |           <div class="basic-info-view"> | 
 |  |  |             <el-row> | 
 |  |  |               <el-col :span="12"> | 
 |  |  | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |             </el-row> | 
 |  |  |           </div> | 
 |  |  |           </div> --> | 
 |  |  |         </div> | 
 |  |  |       </el-form> | 
 |  |  |  | 
 |  |  |       <div slot="footer" class="dialog-footer"> | 
 |  |  |         <el-button type="primary" size="small" @click="editConfig.visible = false">保存</el-button> | 
 |  |  |         <el-button type="primary" size="small" @click="saveClick('form')">保存</el-button> | 
 |  |  |         <el-button size="small" @click="editConfig.visible = false">取消</el-button> | 
 |  |  |       </div> | 
 |  |  |       <!-- 选择客户 --> | 
 |  |  |       <SelectClientDialog | 
 |  |  |         v-if="editSelectClientConfig.editVisible" | 
 |  |  |         :edit-common-config="editSelectClientConfig" | 
 |  |  |         @selClient="selClient" | 
 |  |  |       /> | 
 |  |  |       <!-- 选择联系人 --> | 
 |  |  |       <SelectContactDialog | 
 |  |  |         v-if="editSelectContactConfig.editVisible" | 
 |  |  |         :edit-common-config="editSelectContactConfig" | 
 |  |  |         @selClient="selClient" | 
 |  |  |       /> | 
 |  |  |       <!-- 客户服务订单 --> | 
 |  |  |       <SelectCommonDialog | 
 |  |  |         v-if="editSelCommonConfig.editVisible" | 
 |  |  |         :edit-common-config="editSelCommonConfig" | 
 |  |  |         @selClient="selClient" | 
 |  |  |       /> | 
 |  |  |     </el-dialog> | 
 |  |  |   </div> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script> | 
 |  |  | import CommonSelectView from "@/components/makepager/CommonSelectView" | 
 |  |  | import { getAllData } from "@/api/client/client" | 
 |  |  | import { getAddServiceFollowup, getUpdateServiceFollowup } from "@/api/serviceManage/serviceFollowup" | 
 |  |  | import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" | 
 |  |  | import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog" | 
 |  |  | import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" | 
 |  |  | import codeMixin from "@/components/makepager/mixin/codeMixin" | 
 |  |  | export default { | 
 |  |  |   name: "AddServiceFollowupDialog", | 
 |  |  |   mixins: [codeMixin], | 
 |  |  |   props: { | 
 |  |  |     editCommonConfig: { | 
 |  |  |       type: Object, | 
 |  |  | 
 |  |  |         return { | 
 |  |  |           visible: false, | 
 |  |  |           title: "新建", | 
 |  |  |           infomation: { | 
 |  |  |             customName: "", | 
 |  |  |             followupNumber: "HF21", | 
 |  |  |             contactName: "", | 
 |  |  |             customServiceForm: "", | 
 |  |  |             visitor: "", | 
 |  |  |             projectPlan: "", | 
 |  |  |             satisfaction: "", | 
 |  |  |             timelyRate: "", | 
 |  |  |             resolveRate: "", | 
 |  |  |             originServicePerson: "", | 
 |  |  |             haveBeen: "", | 
 |  |  |             notes: "" | 
 |  |  |           } | 
 |  |  |           infomation: {} | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   components: { CommonSelectView }, | 
 |  |  |   components: { SelectClientDialog, SelectContactDialog, SelectCommonDialog }, | 
 |  |  |   computed: { | 
 |  |  |     searchCommonHeight() { | 
 |  |  |       return this.$refs.searchCommonView.offsetHeight | 
 |  |  |     clientList() { | 
 |  |  |       return this.$store.state.getClientName.clientList | 
 |  |  |     }, | 
 |  |  |     contactNamelist() { | 
 |  |  |       return this.$store.state.getClientName.contactNamelist | 
 |  |  |     }, | 
 |  |  |     serviceOrderList() { | 
 |  |  |       return this.$store.state.getClientName.serviceOrderList | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  |       dialogWidth: "80%", | 
 |  |  |       dialogWidth: "50%", | 
 |  |  |       editConfig: this.editCommonConfig, | 
 |  |  |       rules: { | 
 |  |  |         followupNumber: [{ required: true, message: "请输入回访单单编号", trigger: "blur" }], | 
 |  |  |         visitor: [{ required: true, message: "请选择", trigger: "change" }] | 
 |  |  |         number: [{ required: true, validator: this.validateCheckCode, trigger: ["blur", "change"] }], | 
 |  |  |         client_name: [{ required: true, message: "请选择客户名称", trigger: "change" }], | 
 |  |  |         service_number: [{ required: true, message: "请选择客户服务单", trigger: "change" }], | 
 |  |  |         memberId: [{ required: true, validator: this.validateMemberId, trigger: "change" }] | 
 |  |  |       }, | 
 |  |  |       satisfactionOptions: [], // 满意度 及时率 解决率 | 
 |  |  |       haveBeenOptions: [], // 服务人员是否来过 | 
 |  |  |       visitorOptions: [ | 
 |  |  |         // 回访人 | 
 |  |  |         { value: "1", label: "系统管理员" }, | 
 |  |  |         { value: "2", label: "销售总监" } | 
 |  |  |       ] | 
 |  |  |       satisfactionOptions: [], // 满意度 | 
 |  |  |       timelyRateOptions: [], // 及时率 | 
 |  |  |       solveRateOptions: [], // 解决率 | 
 |  |  |       oldMemberOptions: [], // 原服务人员 | 
 |  |  |       isVisitOptions: [], // 服务人员是否来过 | 
 |  |  |       memberOptions: [], | 
 |  |  |       editSelectClientConfig: { | 
 |  |  |         editVisible: false, | 
 |  |  |         title: "", | 
 |  |  |         infomation: {} | 
 |  |  |       }, | 
 |  |  |       editSelectContactConfig: { | 
 |  |  |         editVisible: false, | 
 |  |  |         title: "", | 
 |  |  |         infomation: {} | 
 |  |  |       }, | 
 |  |  |       editSelCommonConfig: { | 
 |  |  |         editVisible: false, | 
 |  |  |         title: "", | 
 |  |  |         infomation: {} | 
 |  |  |       }, | 
 |  |  |       clientId: this.editCommonConfig.infomation.clientId, | 
 |  |  |       contactId: this.editCommonConfig.infomation.contactId, | 
 |  |  |       serviceOrderId: this.editCommonConfig.infomation.serviceOrderId | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   created() {}, | 
 |  |  |   created() { | 
 |  |  |     this.$store.dispatch("geClient") | 
 |  |  |     this.$store.dispatch("geContact") | 
 |  |  |     this.$store.dispatch("geServiceOrder") | 
 |  |  |     this.getCommonData() | 
 |  |  |     this.formInfo() | 
 |  |  |   }, | 
 |  |  |   watch: { | 
 |  |  |     "editCommonConfig.visible"(val) { | 
 |  |  |       if (val) { | 
 |  |  |         this.formInfo() | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     formInfo() { | 
 |  |  |       this.objCode.type = "服务回访编码" | 
 |  |  |       this.objCode.codeStandID = "" | 
 |  |  |       if (this.editConfig.infomation.codeStandID) { | 
 |  |  |         this.objCode.codeStandID = this.editConfig.infomation.codeStandID | 
 |  |  |       } | 
 |  |  |       this.getRCodeStandardList() | 
 |  |  |     }, | 
 |  |  |     getCommonData() { | 
 |  |  |       getAllData() | 
 |  |  |         .then((res) => { | 
 |  |  |           this.memberOptions = res.data.member | 
 |  |  |           // this.$set(this.editConfig.infomation,'memberId',this.editConfig.infomation.memberId) | 
 |  |  |           if (this.editConfig.title === "新建") { | 
 |  |  |             let username = document.cookie.replace(/(?:(?:^|.*;\s*)username\s*=\s*([^;]*).*$)|^.*$/, "$1") | 
 |  |  |             this.memberOptions.map((item) => { | 
 |  |  |               if (item.username == username) { | 
 |  |  |                 this.$set(this.editConfig.infomation, "memberId", item.id) | 
 |  |  |               } | 
 |  |  |             }) | 
 |  |  |           } | 
 |  |  |           this.satisfactionOptions = res.data.satisfaction // 满意度 | 
 |  |  |           this.$set(this.editConfig.infomation, "satisfactionId", this.editConfig.infomation.satisfactionId) | 
 |  |  |           this.timelyRateOptions = res.data.timely_rate // 及时率 | 
 |  |  |           this.$set(this.editConfig.infomation, "timelyRateId", this.editConfig.infomation.timelyRateId) | 
 |  |  |           this.solveRateOptions = res.data.solve_rate // 解决率 | 
 |  |  |           this.$set(this.editConfig.infomation, "solveRateId", this.editConfig.infomation.solveRateId) | 
 |  |  |           this.oldMemberOptions = res.data.member // 原服务人员 | 
 |  |  |           this.$set(this.editConfig.infomation, "oldMemberId", this.editConfig.infomation.oldMemberId) | 
 |  |  |           this.isVisitOptions = res.data.isVisit // 服务人员是否来过 | 
 |  |  |           this.$set(this.editConfig.infomation, "isVisitId", this.editConfig.infomation.isVisitId) | 
 |  |  |         }) | 
 |  |  |         .catch((err) => { | 
 |  |  |           console.log(err) | 
 |  |  |         }) | 
 |  |  |     }, | 
 |  |  |     // 保存 | 
 |  |  |     saveClick(formName) { | 
 |  |  |       this.$refs[formName].validate((valid) => { | 
 |  |  |         if (valid) { | 
 |  |  |           console.log(this.editConfig.infomation) | 
 |  |  |           const params = this.saveParams() | 
 |  |  |           if (this.editConfig.title === "新建") { | 
 |  |  |             getAddServiceFollowup(params).then((res) => { | 
 |  |  |               console.log(res) | 
 |  |  |               this.editConfig.visible = false | 
 |  |  |               if (res.code === 200) { | 
 |  |  |                 this.$message.success("添加成功") | 
 |  |  |                 this.$parent.getData() | 
 |  |  |               } | 
 |  |  |             }) | 
 |  |  |           } else { | 
 |  |  |             getUpdateServiceFollowup(params).then((res) => { | 
 |  |  |               console.log(res) | 
 |  |  |               this.editConfig.visible = false | 
 |  |  |               if (res.code === 200) { | 
 |  |  |                 this.$message.success("编辑成功") | 
 |  |  |                 this.$parent.getData() | 
 |  |  |               } | 
 |  |  |             }) | 
 |  |  |           } | 
 |  |  |         } else { | 
 |  |  |           console.log("error submit") | 
 |  |  |           return false | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     saveParams() { | 
 |  |  |       let data = this.editConfig.infomation | 
 |  |  |       let params = { | 
 |  |  |         id: this.editConfig.title === "新建" ? 0 : data.id, | 
 |  |  |         clientId: this.clientId || 0, | 
 |  |  |         contactId: this.contactId || 0, | 
 |  |  |         file: data.file || "", | 
 |  |  |         isVisit: data.isVisitId || 0, | 
 |  |  |         memberId: data.memberId || 0, | 
 |  |  |         number: data.number || "", | 
 |  |  |         oldMemberId: data.oldMemberId || 0, | 
 |  |  |         planId: data.planId || 0, | 
 |  |  |         remark: data.remark || "", | 
 |  |  |         satisfaction: data.satisfactionId || 0, | 
 |  |  |         serviceOrderId: this.serviceOrderId || 0, | 
 |  |  |         solveRate: data.solveRateId || 0, | 
 |  |  |         timelyRate: data.timelyRateId || 0, | 
 |  |  |         codeStandID: data.ID | 
 |  |  |       } | 
 |  |  |       return params | 
 |  |  |     }, | 
 |  |  |     handleClose() { | 
 |  |  |       this.editConfig.visible = false | 
 |  |  |     }, | 
 |  |  |     // 选择客户相关方法 | 
 |  |  |     querySearchAsync(queryString, cb, value) { | 
 |  |  |       var restaurants = [] | 
 |  |  |       if (value === "client") { | 
 |  |  |         restaurants = this.clientList | 
 |  |  |       } else if (value === "contact") { | 
 |  |  |         restaurants = this.contactNamelist | 
 |  |  |       } else if (value === "customService") { | 
 |  |  |         console.log(this.serviceOrderList) | 
 |  |  |         restaurants = this.serviceOrderList | 
 |  |  |       } | 
 |  |  |       var results = queryString ? restaurants.filter(this.createStateFilter(queryString, value)) : restaurants | 
 |  |  |       cb(results) | 
 |  |  |     }, | 
 |  |  |     createStateFilter(queryString, value) { | 
 |  |  |       return (state) => { | 
 |  |  |         if (value === "customService") { | 
 |  |  |           return state.serviceNumber.toLowerCase().indexOf(queryString.toLowerCase()) === 0 | 
 |  |  |         } else { | 
 |  |  |           return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0 | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     handleSelectClient(value, item) { | 
 |  |  |       console.log(value) | 
 |  |  |       if (value === "client") { | 
 |  |  |         this.clientId = item.id | 
 |  |  |       } else if (value === "contact") { | 
 |  |  |         this.contactId = item.id | 
 |  |  |       } else if (value === "customService") { | 
 |  |  |         this.serviceOrderId = item.id | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     selClientClick(value) { | 
 |  |  |       if (value === "client") { | 
 |  |  |         this.editSelectClientConfig.editVisible = true | 
 |  |  |       } else if (value === "contact") { | 
 |  |  |         this.editSelectContactConfig.editVisible = true | 
 |  |  |       } else if (value === "customService") { | 
 |  |  |         this.editSelCommonConfig.title = "客户服务单" | 
 |  |  |         this.editSelCommonConfig.editVisible = true | 
 |  |  |         this.editSelCommonConfig.tableInfomation = [...this.serviceOrderList] | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     selClient(row, value) { | 
 |  |  |       console.log(value) | 
 |  |  |       if (value === "contact") { | 
 |  |  |         this.editConfig.infomation.contact_name = row.name | 
 |  |  |         this.contactId = row.id | 
 |  |  |       } else if (value === "client") { | 
 |  |  |         this.editConfig.infomation.client_name = row.name | 
 |  |  |         this.clientId = row.id | 
 |  |  |       } else if (value === "customService") { | 
 |  |  |         this.editConfig.infomation.service_number = row.serviceNumber | 
 |  |  |         this.serviceOrderId = row.id | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 清除已选择用户 | 
 |  |  |     clearupClient(value) { | 
 |  |  |       if (value === "client") { | 
 |  |  |         this.editConfig.infomation.client_name = "" | 
 |  |  |         this.clientId = 0 | 
 |  |  |       } else if (value === "contact") { | 
 |  |  |         this.editConfig.infomation.contact_name = "" | 
 |  |  |         this.contactId = 0 | 
 |  |  |       } else if (value === "customService") { | 
 |  |  |         this.editConfig.infomation.service_number = "" | 
 |  |  |         this.serviceOrderId = 0 | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 添加附件 | 
 |  |  |     addAnnexClick() {}, | 
 |  |  |     // 设置允许上传文件格式 | 
 |  |  |     setFormatClick() {} | 
 |  |  |     setFormatClick() {}, | 
 |  |  |     // 回访人自定义校验规则 | 
 |  |  |     validateMemberId(rule, value, callback) { | 
 |  |  |       if (this.editConfig.infomation?.memberId > 0) { | 
 |  |  |         callback() | 
 |  |  |       } else { | 
 |  |  |         callback(new Error("请选择回访人")) | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <!-- Add "scoped" attribute to limit CSS to this component only --> | 
 |  |  | <style lang="scss" scoped> | 
 |  |  | .service-followup { | 
 |  |  |   .basic-info { | 
 |  |  |     .basic-info-title { | 
 |  |  |       background-color: #f4f8fe; | 
 |  |  |       padding-left: 10px; | 
 |  |  |       font-size: 15px; | 
 |  |  |       font-weight: bold; | 
 |  |  |       color: #666; | 
 |  |  |       height: 42px; | 
 |  |  |       line-height: 42px; | 
 |  |  |     } | 
 |  |  |     .basic-info-view { | 
 |  |  |       margin-top: 10px; | 
 |  |  |       padding-right: 40px; | 
 |  |  |       .custom-name { | 
 |  |  | ::v-deep { | 
 |  |  |   .iframe-dialog .el-dialog__body { | 
 |  |  |     .basic-info { | 
 |  |  |       .basic-info-title { | 
 |  |  |         background-color: #f4f8fe; | 
 |  |  |         padding-left: 10px; | 
 |  |  |         font-size: 15px; | 
 |  |  |         font-weight: bold; | 
 |  |  |         color: #666; | 
 |  |  |         height: 42px; | 
 |  |  |         line-height: 42px; | 
 |  |  |       } | 
 |  |  |       .basic-info-view { | 
 |  |  |         margin-top: 10px; | 
 |  |  |         padding-right: 40px; | 
 |  |  |         .custom-name, | 
 |  |  |         .common-select { | 
 |  |  |           display: flex; | 
 |  |  |           .common-select-sel { | 
 |  |  |             width: 270px; | 
 |  |  |           } | 
 |  |  |           .common-select-btn { | 
 |  |  |             margin-left: 5px; | 
 |  |  |             font-size: 16px; | 
 |  |  |             cursor: pointer; | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |       .annex-view { | 
 |  |  |         display: flex; | 
 |  |  |         .common-select-btn { | 
 |  |  |           margin-left: 5px; | 
 |  |  |           font-size: 18px; | 
 |  |  |         color: #6166d3; | 
 |  |  |         .setFormat { | 
 |  |  |           margin-left: 10px; | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |     .address-view { | 
 |  |  |       margin-top: 10px; | 
 |  |  |       padding-right: 40px; | 
 |  |  |     } | 
 |  |  |     .annex-view { | 
 |  |  |     .unflod-collapse { | 
 |  |  |       display: flex; | 
 |  |  |       height: 30px; | 
 |  |  |       justify-content: center; | 
 |  |  |       align-items: center; | 
 |  |  |       color: #6166d3; | 
 |  |  |       .setFormat { | 
 |  |  |         margin-left: 10px; | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |   .unflod-collapse { | 
 |  |  |     display: flex; | 
 |  |  |     height: 30px; | 
 |  |  |     justify-content: center; | 
 |  |  |     align-items: center; | 
 |  |  |     color: #6166d3; | 
 |  |  |   } | 
 |  |  |   .dialog-footer { | 
 |  |  |     background-color: #f5f5f5; | 
 |  |  |     height: 55px; | 
 |  |  |     line-height: 55px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | ::v-deep { | 
 |  |  |   .el-dialog__header { | 
 |  |  |     padding: 12.5px 10px; | 
 |  |  |     border-bottom: 1px solid #e5e5e5; | 
 |  |  |     .el-dialog__title { | 
 |  |  |       font-size: 15px; | 
 |  |  |       color: #323232; | 
 |  |  |       font-weight: bold; | 
 |  |  |     .dialog-footer { | 
 |  |  |       background-color: #f5f5f5; | 
 |  |  |       height: 55px; | 
 |  |  |       line-height: 55px; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |   .el-dialog__body { | 
 |  |  |     padding: 0px; | 
 |  |  |   } | 
 |  |  |   .el-dialog__footer { | 
 |  |  |     padding: 0px; | 
 |  |  |     text-align: center; | 
 |  |  |     box-sizing: border-box; | 
 |  |  |     border-top: 1px solid #dadee5; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | </style> |