|  |  | 
 |  |  |       :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="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-autocomplete | 
 |  |  |                       v-model="editConfig.infomation.client_name" | 
 |  |  |                       :fetch-suggestions="querySearchAsync" | 
 |  |  |                       :fetch-suggestions=" | 
 |  |  |                         (queryString, callback) => { | 
 |  |  |                           querySearchAsync(queryString, callback, 'client') | 
 |  |  |                         } | 
 |  |  |                       " | 
 |  |  |                       value-key="name" | 
 |  |  |                       @select="handleSelectClient" | 
 |  |  |                       @select="handleSelectClient('client', $event)" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     ></el-autocomplete> | 
 |  |  |                     <div class="common-select-btn" @click="selClientClick"> | 
 |  |  |                     <div class="common-select-btn" @click="selClientClick('client')"> | 
 |  |  |                       <i class="el-icon-circle-plus-outline" title="选择"></i> | 
 |  |  |                     </div> | 
 |  |  |                     <div class="common-select-btn" @click="clearupClient"> | 
 |  |  |                       <i class="el-icon-edit-outline" title="清除"></i> | 
 |  |  |                     <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="number"> | 
 |  |  |                   <el-input v-model="editConfig.infomation.number"></el-input> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  | 
 |  |  |                     v-model="editConfig.infomation.memberId" | 
 |  |  |                     placeholder="请选择" | 
 |  |  |                     size="mini" | 
 |  |  |                     style="width: 63%" | 
 |  |  |                     style="width: 100%" | 
 |  |  |                   > | 
 |  |  |                     <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> | 
 |  |  |                     </el-option> | 
 |  |  | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="联系人姓名" prop="contactId"> | 
 |  |  |                 <el-form-item label="联系人姓名" prop="contact_name"> | 
 |  |  |                   <div class="custom-name"> | 
 |  |  |                     <el-input v-model="editConfig.infomation.contactId"></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="saleChanceId"> | 
 |  |  |                 <el-form-item label="销售机会" prop="sale_chance_name"> | 
 |  |  |                   <div class="custom-name"> | 
 |  |  |                     <el-input v-model="editConfig.infomation.saleChanceId"></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.sale_chance_name" | 
 |  |  |                       :fetch-suggestions=" | 
 |  |  |                         (queryString, callback) => { | 
 |  |  |                           querySearchAsync(queryString, callback, 'chance') | 
 |  |  |                         } | 
 |  |  |                       " | 
 |  |  |                       value-key="name" | 
 |  |  |                       @select="handleSelectClient('chance', $event)" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     ></el-autocomplete> | 
 |  |  |                     <div class="common-select-btn" @click="selClientClick('chance')"> | 
 |  |  |                       <i class="el-icon-circle-plus-outline"></i> | 
 |  |  |                     </div> | 
 |  |  |                     <div | 
 |  |  |                       v-if="editConfig.infomation.sale_chance_name && editConfig.infomation.sale_chance_name.length > 0" | 
 |  |  |                       class="common-select-btn" | 
 |  |  |                       @click="clearupClient('chance')" | 
 |  |  |                     > | 
 |  |  |                       <i class="el-icon-remove-outline"></i> | 
 |  |  |                     </div> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="合同订单" prop="contractId"> | 
 |  |  |                 <el-form-item label="合同订单" prop="contract_number"> | 
 |  |  |                   <div class="custom-name"> | 
 |  |  |                     <el-input v-model="editConfig.infomation.contractId"></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.contract_number" | 
 |  |  |                       :fetch-suggestions=" | 
 |  |  |                         (queryString, callback) => { | 
 |  |  |                           querySearchAsync(queryString, callback, 'contract') | 
 |  |  |                         } | 
 |  |  |                       " | 
 |  |  |                       value-key="number" | 
 |  |  |                       @select="handleSelectClient('contract', $event)" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     ></el-autocomplete> | 
 |  |  |                     <div class="common-select-btn" @click="selClientClick('contract')"> | 
 |  |  |                       <i class="el-icon-circle-plus-outline" title="选择"></i> | 
 |  |  |                     </div> | 
 |  |  |                     <div | 
 |  |  |                       v-if="editConfig.infomation.contract_number && editConfig.infomation.contract_number.length > 0" | 
 |  |  |                       class="common-select-btn" | 
 |  |  |                       @click="clearupClient('contract')" | 
 |  |  |                     > | 
 |  |  |                       <i class="el-icon-remove-outline" title="清除"></i> | 
 |  |  |                     </div> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="报价单" prop="quotationId"> | 
 |  |  |                 <el-form-item label="报价单" prop="quotation_number"> | 
 |  |  |                   <div class="custom-name"> | 
 |  |  |                     <el-input v-model="editConfig.infomation.quotationId"></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.quotation_number" | 
 |  |  |                       :fetch-suggestions=" | 
 |  |  |                         (queryString, callback) => { | 
 |  |  |                           querySearchAsync(queryString, callback, 'quotation') | 
 |  |  |                         } | 
 |  |  |                       " | 
 |  |  |                       value-key="number" | 
 |  |  |                       @select="handleSelectClient('quotation', $event)" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     ></el-autocomplete> | 
 |  |  |                     <div class="common-select-btn" @click="selClientClick('quotation')"> | 
 |  |  |                       <i class="el-icon-circle-plus-outline" title="选择"></i> | 
 |  |  |                     </div> | 
 |  |  |                     <div | 
 |  |  |                       v-if="editConfig.infomation.quotation_number && editConfig.infomation.quotation_number.length > 0" | 
 |  |  |                       class="common-select-btn" | 
 |  |  |                       @click="clearupClient('quotation')" | 
 |  |  |                     > | 
 |  |  |                       <i class="el-icon-remove-outline" title="清除"></i> | 
 |  |  |                     </div> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="合同类型" prop="typeId"> | 
 |  |  |                 <el-form-item label="合同类型" prop="serviceContractTypeId"> | 
 |  |  |                   <div class="common-select"> | 
 |  |  |                     <el-select | 
 |  |  |                       v-model="editConfig.infomation.typeId" | 
 |  |  |                       v-model="editConfig.infomation.serviceContractTypeId" | 
 |  |  |                       placeholder="请选择" | 
 |  |  |                       class="common-select-sel" | 
 |  |  |                       size="mini" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     > | 
 |  |  |                       <el-option v-for="item in contractTypeOptions" :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 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="signTime"> | 
 |  |  |                   <el-date-picker v-model="editConfig.infomation.signTime" type="date" placeholder="选择日期"> | 
 |  |  |                   <el-date-picker | 
 |  |  |                     v-model="editConfig.infomation.signTime" | 
 |  |  |                     value-format="yyyy-MM-dd" | 
 |  |  |                     type="date" | 
 |  |  |                     placeholder="选择日期" | 
 |  |  |                     style="width: 100%" | 
 |  |  |                   > | 
 |  |  |                   </el-date-picker> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="服务开始日期" prop="startTime"> | 
 |  |  |                   <el-date-picker v-model="editConfig.infomation.startTime" type="date" placeholder="选择日期"> | 
 |  |  |                   <el-date-picker | 
 |  |  |                     v-model="editConfig.infomation.startTime" | 
 |  |  |                     value-format="yyyy-MM-dd" | 
 |  |  |                     type="date" | 
 |  |  |                     placeholder="选择日期" | 
 |  |  |                     style="width: 100%" | 
 |  |  |                   > | 
 |  |  |                   </el-date-picker> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="服务到期日" prop="endTime"> | 
 |  |  |                   <el-date-picker v-model="editConfig.infomation.endTime" type="date" placeholder="选择日期"> | 
 |  |  |                   <el-date-picker | 
 |  |  |                     v-model="editConfig.infomation.endTime" | 
 |  |  |                     value-format="yyyy-MM-dd" | 
 |  |  |                     type="date" | 
 |  |  |                     placeholder="选择日期" | 
 |  |  |                     style="width: 100%" | 
 |  |  |                   > | 
 |  |  |                   </el-date-picker> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  | 
 |  |  |           <div class="basic-info-view"> | 
 |  |  |             <el-row> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="合同状态" prop="statusId"> | 
 |  |  |                 <el-form-item label="合同状态" prop="serviceContractStatusId"> | 
 |  |  |                   <div class="common-select"> | 
 |  |  |                     <el-select | 
 |  |  |                       v-model="editConfig.infomation.statusId" | 
 |  |  |                       v-model="editConfig.infomation.serviceContractStatusId" | 
 |  |  |                       placeholder="请选择" | 
 |  |  |                       class="common-select-sel" | 
 |  |  |                       size="mini" | 
 |  |  |                       style="width: 100%" | 
 |  |  |                     > | 
 |  |  |                       <el-option | 
 |  |  |                         v-for="item in contractStatusOptions" | 
 |  |  | 
 |  |  |                       > | 
 |  |  |                       </el-option> | 
 |  |  |                     </el-select> | 
 |  |  |                     <div class="common-select-btn"><i class="el-icon-setting"></i></div> | 
 |  |  |                     <!-- <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="serviceTimes"> | 
 |  |  |                   <el-input v-model="editConfig.infomation.serviceTimes"></el-input> | 
 |  |  |                   <el-input-number | 
 |  |  |                     v-model="editConfig.infomation.serviceTimes" | 
 |  |  |                     placeholder="请输入" | 
 |  |  |                     :min="0" | 
 |  |  |                     :precision="2" | 
 |  |  |                     :controls="false" | 
 |  |  |                     style="width: 100%" | 
 |  |  |                   ></el-input-number> | 
 |  |  |                 </el-form-item> | 
 |  |  |               </el-col> | 
 |  |  |             </el-row> | 
 |  |  | 
 |  |  |             </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 class="basic-info-title" style="display: flex"> | 
 |  |  |             产品管理 | 
 |  |  | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  |           <div class="product-view"> | 
 |  |  |             <CommonFormTableView :show-summary="showSummary" :product-table-list="productTableList" /> | 
 |  |  |             <CommonFormTableView | 
 |  |  |               :show-summary="showSummary" | 
 |  |  |               :product-table-list="productTableList" | 
 |  |  |               @inputContent="inputContent" | 
 |  |  |               @addProductClick="addProductClick" | 
 |  |  |               @emptyProductClick="emptyProductClick" | 
 |  |  |               @recalculateProductClick="recalculateProductClick" | 
 |  |  |               @clearupProduct="clearupProduct" | 
 |  |  |             /> | 
 |  |  |           </div> | 
 |  |  |           <!-- 选择审批流程 --> | 
 |  |  |           <!-- <div class="basic-info-title">选择审批流程</div> | 
 |  |  | 
 |  |  |         :edit-common-config="editSelectClientConfig" | 
 |  |  |         @selClient="selClient" | 
 |  |  |       /> | 
 |  |  |       <!-- 选择联系人 --> | 
 |  |  |       <SelectContactDialog | 
 |  |  |         v-if="editSelectContactConfig.editVisible" | 
 |  |  |         :edit-common-config="editSelectContactConfig" | 
 |  |  |         @selClient="selClient" | 
 |  |  |       /> | 
 |  |  |       <!-- 选择销售机会 --> | 
 |  |  |       <SelectChanceDialog | 
 |  |  |         v-if="editSelectChanceConfig.editVisible" | 
 |  |  |         :edit-common-config="editSelectChanceConfig" | 
 |  |  |         @selClient="selClient" | 
 |  |  |       /> | 
 |  |  |       <!-- 合同订单 --> | 
 |  |  |       <SelectCommonDialog | 
 |  |  |         v-if="editSelCommonConfig.editVisible" | 
 |  |  |         :edit-common-config="editSelCommonConfig" | 
 |  |  |         @selClient="selClient" | 
 |  |  |       /> | 
 |  |  |     </el-dialog> | 
 |  |  |   </div> | 
 |  |  | </template> | 
 |  |  | 
 |  |  | import { getAllData } from "@/api/client/client" | 
 |  |  | import { getAddServiceContract, getUpdateServiceContract } from "@/api/serviceManage/serviceContract" | 
 |  |  | import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog" | 
 |  |  | import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog" | 
 |  |  | import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog" | 
 |  |  | import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" | 
 |  |  | import codeMixin from "@/components/makepager/mixin/codeMixin" | 
 |  |  | export default { | 
 |  |  |   name: "AddServiceContractDialog", | 
 |  |  |   mixins: [codeMixin], | 
 |  |  |   props: { | 
 |  |  |     editCommonConfig: { | 
 |  |  |       type: Object, | 
 |  |  | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   components: { CommonFormTableView, SelectClientDialog }, | 
 |  |  |   components: { CommonFormTableView, SelectClientDialog, SelectContactDialog, SelectChanceDialog, SelectCommonDialog }, | 
 |  |  |   computed: { | 
 |  |  |     searchCommonHeight() { | 
 |  |  |       return this.$refs.searchCommonView.offsetHeight | 
 |  |  |     }, | 
 |  |  |     clientList() { | 
 |  |  |       return this.$store.state.getClientName.clientList | 
 |  |  |     }, | 
 |  |  |     contactNamelist() { | 
 |  |  |       return this.$store.state.getClientName.contactNamelist | 
 |  |  |     }, | 
 |  |  |     saleChancelist() { | 
 |  |  |       return this.$store.state.getClientName.saleChancelist | 
 |  |  |     }, | 
 |  |  |     salesDetailsList() { | 
 |  |  |       return this.$store.state.getClientName.salesDetailsList | 
 |  |  |     }, | 
 |  |  |     quotationList() { | 
 |  |  |       return this.$store.state.getClientName.quotationList | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  |       dialogWidth: "80%", | 
 |  |  |       dialogWidth: "50%", | 
 |  |  |       editConfig: this.editCommonConfig, | 
 |  |  |       rules: { | 
 |  |  |         number: [{ required: true, message: "请输入服务合同编号", trigger: "blur" }], | 
 |  |  |         number: [{ required: true, validator: this.validateCheckCode, trigger: ["blur", "change"] }], | 
 |  |  |         client_name: [{ required: true, message: "请选择客户名称", trigger: "change" }], | 
 |  |  |         signTime: [{ required: true, message: "请选择", trigger: "change" }], | 
 |  |  |         memberId: [{ required: true, message: "请选择负责人", trigger: "change" }] | 
 |  |  |         memberId: [{ required: true, validator: this.validateMemberId, trigger: "change" }] | 
 |  |  |       }, | 
 |  |  |       memberOptions: [], | 
 |  |  |       contractTypeOptions: [], // 合同类型 | 
 |  |  |       contractStatusOptions: [], // 合同状态 | 
 |  |  |       currencyOptions: [ | 
 |  |  |         { value: "1", label: "人民币(¥)" }, | 
 |  |  |         { value: "2", label: "英镑(£)" }, | 
 |  |  |         { value: "3", label: "欧元(€)" } | 
 |  |  |       ], // 币种 | 
 |  |  |       currencyOptions: [{ id: 1, name: "人民币" }], // 币种 | 
 |  |  |       approvalWorkflowOptions: [], // 审批流程 | 
 |  |  |       productTableList: {}, | 
 |  |  |       showSummary: { | 
 |  |  |         show: true, | 
 |  |  |         total: true, | 
 |  |  |         sumProp: ["other1", "other2", "other3", "other4"], | 
 |  |  |         mergeNumber: 3 | 
 |  |  |         sumProp: ["Amount", "Unit", "total"], | 
 |  |  |         mergeNumber: 2 | 
 |  |  |       }, | 
 |  |  |       editSelectClientConfig: { | 
 |  |  |         editVisible: false, | 
 |  |  |         title: "", | 
 |  |  |         infomation: {} | 
 |  |  |       } | 
 |  |  |       }, | 
 |  |  |       editSelectContactConfig: { | 
 |  |  |         editVisible: false, | 
 |  |  |         title: "", | 
 |  |  |         infomation: {} | 
 |  |  |       }, | 
 |  |  |       editSelectChanceConfig: { | 
 |  |  |         editVisible: false, | 
 |  |  |         title: "", | 
 |  |  |         infomation: {} | 
 |  |  |       }, | 
 |  |  |       editSelCommonConfig: { | 
 |  |  |         editVisible: false, | 
 |  |  |         title: "", | 
 |  |  |         infomation: {} | 
 |  |  |       }, | 
 |  |  |       clientId: this.editCommonConfig.infomation.clientId, | 
 |  |  |       contactId: this.editCommonConfig.infomation.contactId, | 
 |  |  |       saleChanceId: this.editCommonConfig.infomation.saleChanceId, | 
 |  |  |       contractId: this.editCommonConfig.infomation.salesDetailsId, | 
 |  |  |       quotationId: this.editCommonConfig.infomation.quotationId, | 
 |  |  |       tableData: [], | 
 |  |  |       productId: 1, | 
 |  |  |       isNoProduct: true | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   created() { | 
 |  |  |     this.$store.dispatch("geClient") | 
 |  |  |     this.$store.dispatch("geContact") | 
 |  |  |     this.$store.dispatch("geChance") | 
 |  |  |     this.$store.dispatch("geSalesDetails") | 
 |  |  |     this.$store.dispatch("geQuotation") | 
 |  |  |     this.setTableForm() | 
 |  |  |     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) => { | 
 |  |  |           if (res.code === 200) { | 
 |  |  |             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.contractTypeOptions = res.data.serviceContractType | 
 |  |  |             this.$set( | 
 |  |  |               this.editConfig.infomation, | 
 |  |  |               "serviceContractTypeId", | 
 |  |  |               this.editConfig.infomation.serviceContractTypeId | 
 |  |  |             ) | 
 |  |  |             this.contractStatusOptions = res.data.serviceContractStatus | 
 |  |  |             this.currencyOptions = res.data.currency | 
 |  |  |             this.$set( | 
 |  |  |               this.editConfig.infomation, | 
 |  |  |               "serviceContractStatusId", | 
 |  |  |               this.editConfig.infomation.serviceContractStatusId | 
 |  |  |             ) | 
 |  |  |             // this.currencyOptions = res.data.currency | 
 |  |  |           } | 
 |  |  |         }) | 
 |  |  |         .catch((err) => { | 
 |  |  | 
 |  |  |       this.$refs[formName].validate((valid) => { | 
 |  |  |         if (valid) { | 
 |  |  |           console.log(this.editConfig.infomation) | 
 |  |  |           const params = this.saveParams() | 
 |  |  |           console.log(params) | 
 |  |  |           if (this.editConfig.title === "新建") { | 
 |  |  |             getAddServiceContract(params) | 
 |  |  |               .then((res) => { | 
 |  |  |                 console.log(res) | 
 |  |  |                 this.editConfig.visible = false | 
 |  |  |                 if (res.code === 200) { | 
 |  |  |                   this.$message({ | 
 |  |  |                     message: "添加成功", | 
 |  |  |                     type: "success" | 
 |  |  |                   }) | 
 |  |  |                   this.$parent.getData() | 
 |  |  |                 } | 
 |  |  |               }) | 
 |  |  |               .catch((err) => { | 
 |  |  |                 console.log(err) | 
 |  |  |               }) | 
 |  |  |           for (let i = 0; i < this.tableData.length; i++) { | 
 |  |  |             if (this.tableData[i].name.length === 0) { | 
 |  |  |               this.isNoProduct = true | 
 |  |  |               break | 
 |  |  |             } else { | 
 |  |  |               this.isNoProduct = false | 
 |  |  |             } | 
 |  |  |           } | 
 |  |  |           if (this.isNoProduct) { | 
 |  |  |             this.$message.error("产品名称不能为空") | 
 |  |  |           } else { | 
 |  |  |             getUpdateServiceContract(params) | 
 |  |  |               .then((res) => { | 
 |  |  |             const params = this.saveParams() | 
 |  |  |             if (this.editConfig.title === "新建") { | 
 |  |  |               getAddServiceContract(params).then((res) => { | 
 |  |  |                 console.log(res) | 
 |  |  |                 this.editConfig.visible = false | 
 |  |  |                 if (res.code === 200) { | 
 |  |  |                   this.$message({ | 
 |  |  |                     message: "编辑成功", | 
 |  |  |                     type: "success" | 
 |  |  |                   }) | 
 |  |  |                   this.$message.success("添加成功") | 
 |  |  |                   this.$parent.getData() | 
 |  |  |                 } | 
 |  |  |               }) | 
 |  |  |               .catch((err) => { | 
 |  |  |                 console.log(err) | 
 |  |  |             } else { | 
 |  |  |               getUpdateServiceContract(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") | 
 |  |  | 
 |  |  |       let data = this.editConfig.infomation | 
 |  |  |       let params = { | 
 |  |  |         id: this.editConfig.title === "新建" ? 0 : data.id, | 
 |  |  |         clientId: parseInt(data.clientId) || 0, | 
 |  |  |         contactId: data.contactId || 0, | 
 |  |  |         contractId: data.contractId || 0, | 
 |  |  |         clientId: this.clientId || 0, | 
 |  |  |         contactId: this.contactId || 0, | 
 |  |  |         endTime: data.endTime || "", | 
 |  |  |         memberId: data.memberId || 0, | 
 |  |  |         number: data.number || "", | 
 |  |  |         products: [ | 
 |  |  |           { | 
 |  |  |             amount: 0, | 
 |  |  |             desc: "", | 
 |  |  |             id: 0, | 
 |  |  |             name: "", | 
 |  |  |             number: "", | 
 |  |  |             price: 0, | 
 |  |  |             total: 0 | 
 |  |  |           } | 
 |  |  |         ], | 
 |  |  |         quotationId: data.quotationId || 0, | 
 |  |  |         products: this.tableData, | 
 |  |  |         quotationId: this.quotationId || 0, | 
 |  |  |         remark: data.remark || "", | 
 |  |  |         saleChanceId: data.saleChanceId || 0, | 
 |  |  |         saleChanceId: this.saleChanceId || 0, | 
 |  |  |         salesDetailsId: this.contractId || 0, | 
 |  |  |         serviceTimes: data.serviceTimes || 0, | 
 |  |  |         signTime: data.signTime || "", | 
 |  |  |         startTime: data.startTime || "", | 
 |  |  |         statusId: data.statusId || 0, | 
 |  |  |         statusId: 0, | 
 |  |  |         terms: data.terms || "", | 
 |  |  |         typeId: data.typeId || 0 | 
 |  |  |         typeId: 0, | 
 |  |  |         serviceContractTypeId: data.serviceContractTypeId || 0, | 
 |  |  |         serviceContractStatusId: data.serviceContractStatusId || 0, | 
 |  |  |         codeStandID: data.ID | 
 |  |  |       } | 
 |  |  |       return params | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     handleClose() { | 
 |  |  |       this.editConfig.visible = false | 
 |  |  |     }, | 
 |  |  |     // 选择客户相关方法 | 
 |  |  |     querySearchAsync(queryString, cb) { | 
 |  |  |       var restaurants = this.clientList | 
 |  |  |       var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants | 
 |  |  |     querySearchAsync(queryString, cb, value) { | 
 |  |  |       var restaurants = [] | 
 |  |  |       if (value === "client") { | 
 |  |  |         restaurants = this.clientList | 
 |  |  |       } else if (value === "contact") { | 
 |  |  |         restaurants = this.contactNamelist | 
 |  |  |       } else if (value === "chance") { | 
 |  |  |         restaurants = this.saleChancelist | 
 |  |  |       } else if (value === "contract") { | 
 |  |  |         restaurants = this.salesDetailsList | 
 |  |  |       } else if (value === "quotation") { | 
 |  |  |         restaurants = this.quotationList | 
 |  |  |       } | 
 |  |  |       var results = queryString ? restaurants.filter(this.createStateFilter(queryString, value)) : restaurants | 
 |  |  |       cb(results) | 
 |  |  |     }, | 
 |  |  |     createStateFilter(queryString) { | 
 |  |  |     createStateFilter(queryString, value) { | 
 |  |  |       return (state) => { | 
 |  |  |         return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0 | 
 |  |  |         if (value === "contract" || value === "quotation") { | 
 |  |  |           return state.number.toLowerCase().indexOf(queryString.toLowerCase()) === 0 | 
 |  |  |         } else { | 
 |  |  |           return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0 | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     handleSelectClient(item) { | 
 |  |  |       this.editConfig.infomation.client_id = item.id | 
 |  |  |     handleSelectClient(value, item) { | 
 |  |  |       console.log(value) | 
 |  |  |       if (value === "client") { | 
 |  |  |         this.clientId = item.id | 
 |  |  |       } else if (value === "contact") { | 
 |  |  |         this.contactId = item.id | 
 |  |  |       } else if (value === "chance") { | 
 |  |  |         this.saleChanceId = item.id | 
 |  |  |       } else if (value === "contract") { | 
 |  |  |         this.contractId = item.id | 
 |  |  |       } else if (value === "quotation") { | 
 |  |  |         this.quotationId = item.id | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     selClientClick() { | 
 |  |  |       this.editSelectClientConfig.editVisible = true | 
 |  |  |     selClientClick(value) { | 
 |  |  |       if (value === "client") { | 
 |  |  |         this.editSelectClientConfig.editVisible = true | 
 |  |  |       } else if (value === "contact") { | 
 |  |  |         this.editSelectContactConfig.editVisible = true | 
 |  |  |       } else if (value === "chance") { | 
 |  |  |         this.editSelectChanceConfig.editVisible = true | 
 |  |  |       } else if (value === "contract") { | 
 |  |  |         this.editSelCommonConfig.title = "销售明细单" | 
 |  |  |         this.editSelCommonConfig.editVisible = true | 
 |  |  |       } else if (value === "quotation") { | 
 |  |  |         this.editSelCommonConfig.title = "报价单" | 
 |  |  |         this.editSelCommonConfig.editVisible = true | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     selClient(row) { | 
 |  |  |       console.log(row) | 
 |  |  |       this.editConfig.infomation.client_name = row.name | 
 |  |  |       this.editConfig.infomation.client_id = row.id | 
 |  |  |     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 === "chance") { | 
 |  |  |         this.editConfig.infomation.sale_chance_name = row.name | 
 |  |  |         this.saleChanceId = row.id | 
 |  |  |       } else if (value === "contract") { | 
 |  |  |         this.editConfig.infomation.contract_number = row.number | 
 |  |  |         this.contractId = row.id | 
 |  |  |       } else if (value === "quotation") { | 
 |  |  |         this.editConfig.infomation.quotation_number = row.number | 
 |  |  |         this.quotationId = row.id | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 清除已选择用户 | 
 |  |  |     clearupClient() { | 
 |  |  |       this.editConfig.infomation.client_name = "" | 
 |  |  |       this.editConfig.infomation.client_id = 0 | 
 |  |  |     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 === "chance") { | 
 |  |  |         this.editConfig.infomation.sale_chance_name = "" | 
 |  |  |         this.saleChanceId = 0 | 
 |  |  |       } else if (value === "contract") { | 
 |  |  |         this.editConfig.infomation.contract_number = "" | 
 |  |  |         this.contractId = 0 | 
 |  |  |       } else if (value === "quotation") { | 
 |  |  |         this.editConfig.infomation.quotation_number = "" | 
 |  |  |         this.quotationId = 0 | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 添加附件 | 
 |  |  |     addAnnexClick() {}, | 
 |  |  |     // 设置允许上传文件格式 | 
 |  |  |     setFormatClick() {}, | 
 |  |  |     setTableForm() { | 
 |  |  |       this.productTableList = { | 
 |  |  |         tableData: [ | 
 |  |  |       if (this.editConfig.title === "新建" || this.editConfig.infomation.products.length === 0) { | 
 |  |  |         this.tableData = [ | 
 |  |  |           { | 
 |  |  |             id: "1", | 
 |  |  |             productName: "上海有限公司", | 
 |  |  |             other0: "ZDYBD03-1", | 
 |  |  |             other1: "12", | 
 |  |  |             other2: "5.00", | 
 |  |  |             other4: "3.00", | 
 |  |  |             other3: "2.00" | 
 |  |  |             productId: this.productId, | 
 |  |  |             id: 0, | 
 |  |  |             amount: 0, | 
 |  |  |             desc: "", | 
 |  |  |             name: "", | 
 |  |  |             number: "", | 
 |  |  |             price: 0, | 
 |  |  |             total: 0, | 
 |  |  |             unit: "" | 
 |  |  |           } | 
 |  |  |         ], | 
 |  |  |         tableColumn: [ | 
 |  |  |           { label: "#", prop: "id", width: 40 }, | 
 |  |  |           { label: "产品名称", prop: "productName", input: true, isRequird: true }, | 
 |  |  |           { label: "产品编号", prop: "other0" }, | 
 |  |  |           { label: "服务开始日", prop: "other5", date: true, isRequird: true, min: 100 }, | 
 |  |  |           { label: "服务到期日", prop: "other6", date: true, isRequird: true, min: 100 }, | 
 |  |  |           { label: "数量", prop: "other1", input: true, isRequird: true }, | 
 |  |  |           { label: "含税单价", prop: "other9", input: true }, | 
 |  |  |           { label: "不含税单价", prop: "other7", input: true }, | 
 |  |  |           { label: "折扣率(%)", prop: "other6", input: true }, | 
 |  |  |           { label: "折扣额", prop: "other2" }, | 
 |  |  |           { label: "税(销售)", prop: "other7", input: true }, | 
 |  |  |           { label: "实际含税单价", prop: "other3" }, | 
 |  |  |           { label: "不含税金额", prop: "other4" }, | 
 |  |  |           { label: "价税合计", prop: "other3", input: true }, | 
 |  |  |           { label: "描述", prop: "other8" } | 
 |  |  |         ] | 
 |  |  |       } else { | 
 |  |  |         this.tableData = this.editConfig.infomation.products | 
 |  |  |         this.tableData.map((item, index) => { | 
 |  |  |           item.productId = index + 1 | 
 |  |  |         }) | 
 |  |  |       } | 
 |  |  |       this.productTableList = { | 
 |  |  |         tableData: this.tableData, | 
 |  |  |         tableColumn: [ | 
 |  |  |           { label: "#", prop: "productId", width: 40 }, | 
 |  |  |           { label: "产品名称", prop: "name", productName: true, isRequird: true }, | 
 |  |  |           { label: "产品编号", prop: "number" }, | 
 |  |  |           { label: "数量", prop: "amount", inputNumber: true, isRequird: true }, | 
 |  |  |           { label: "单位", prop: "unit" }, | 
 |  |  |           { label: "销售单价", prop: "price", inputFloat: true }, | 
 |  |  |           { label: "价税合计", prop: "total", inputFloat: true } | 
 |  |  |         ] | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     // 产品列表输入 | 
 |  |  |     inputContent(val, prop, row) { | 
 |  |  |       this.productId = row.productId | 
 |  |  |       this.tableData.map((item) => { | 
 |  |  |         if (item.productId === row.productId) { | 
 |  |  |           item[prop] = val | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     // 产品新增 | 
 |  |  |     addProductClick() { | 
 |  |  |       this.productId++ | 
 |  |  |       this.tableData.push({ | 
 |  |  |         productId: this.productId, | 
 |  |  |         id: 0, | 
 |  |  |         amount: 0, | 
 |  |  |         desc: "", | 
 |  |  |         name: "", | 
 |  |  |         number: "", | 
 |  |  |         price: 0, | 
 |  |  |         total: 0, | 
 |  |  |         unit: "" | 
 |  |  |       }) | 
 |  |  |       this.showSummary.show = true | 
 |  |  |     }, | 
 |  |  |     //  产品清空 | 
 |  |  |     emptyProductClick() { | 
 |  |  |       this.productId = 1 | 
 |  |  |       this.tableData = [ | 
 |  |  |         { | 
 |  |  |           productId: this.productId, | 
 |  |  |           id: 0, | 
 |  |  |           amount: 0, | 
 |  |  |           desc: "", | 
 |  |  |           name: "", | 
 |  |  |           number: "", | 
 |  |  |           price: 0, | 
 |  |  |           total: 0, | 
 |  |  |           unit: "" | 
 |  |  |         } | 
 |  |  |       ] | 
 |  |  |       this.productTableList.tableData = this.tableData | 
 |  |  |     }, | 
 |  |  |     // 产品重算 | 
 |  |  |     recalculateProductClick() {}, | 
 |  |  |     clearupProduct(data) { | 
 |  |  |       this.tableData = data | 
 |  |  |       this.productTableList.tableData = this.tableData | 
 |  |  |     }, | 
 |  |  |     // 负责人自定义校验规则 | 
 |  |  |     validateMemberId(rule, value, callback) { | 
 |  |  |       if (this.editConfig.infomation?.memberId > 0) { | 
 |  |  |         callback() | 
 |  |  |       } else { | 
 |  |  |         callback(new Error("请输入负责人")) | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | 
 |  |  |  | 
 |  |  | <!-- Add "scoped" attribute to limit CSS to this component only --> | 
 |  |  | <style lang="scss" scoped> | 
 |  |  | .add-service-contract { | 
 |  |  |   .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 { | 
 |  |  | ::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-sel { | 
 |  |  |           width: 270px; | 
 |  |  |         } | 
 |  |  |         .common-select-btn { | 
 |  |  |           margin-left: 5px; | 
 |  |  |           font-size: 16px; | 
 |  |  |           cursor: pointer; | 
 |  |  |         color: #6166d3; | 
 |  |  |         .setFormat { | 
 |  |  |           margin-left: 10px; | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |     .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; | 
 |  |  |     .dialog-footer { | 
 |  |  |       background-color: #f5f5f5; | 
 |  |  |       height: 55px; | 
 |  |  |       line-height: 55px; | 
 |  |  |     } | 
 |  |  |     .el-input__inner { | 
 |  |  |       text-align: left; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | </style> |