| <template> | 
|   <div class="detail-view"> | 
|     <el-drawer | 
|       :visible.sync="detailConfig.visible" | 
|       size="80%" | 
|       :before-close="handleClose" | 
|       :wrapperClosable="false" | 
|       :append-to-body="true" | 
|     > | 
|       <template slot="title"> | 
|         <div class="header"> | 
|           <span class="header-label">销售退货单编号</span> | 
|           <span class="header-title">{{ detailConfig.infomation.number }}</span> | 
|         </div> | 
|       </template> | 
|       <div class="content"> | 
|         <div class="tab-view"> | 
|           <el-tabs v-model="activeName" @tab-click="tabsClick"> | 
|             <el-tab-pane label="详情" name="first"></el-tab-pane> | 
|             <el-tab-pane label="销售退款单" name="refundForm"> | 
|               <!-- <template slot="label"> | 
|                 <div>跟进记录<el-badge type="primary" :value="2"> </el-badge></div> | 
|               </template> --> | 
|             </el-tab-pane> | 
|           </el-tabs> | 
|         </div> | 
|         <div v-if="activeName === 'first'" class="detail"> | 
|           <!-- 基本信息 --> | 
|           <div class="basic-info"> | 
|             <div class="basic-info-label" @click="expandClick('basic')"> | 
|               <i v-if="isBasicExpand" class="el-icon-arrow-down"></i> | 
|               <i v-else class="el-icon-arrow-up"></i> | 
|               <span style="margin-left: 10px">基本信息</span> | 
|             </div> | 
|             <div v-show="isBasicExpand" class="basic-info-content"> | 
|               <ul> | 
|                 <li v-for="(item, i) in basicInfoList" :key="i"> | 
|                   <div class="left"> | 
|                     <div class="content-title">{{ item.leftStr + ":" }}</div> | 
|                     <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div> | 
|                   </div> | 
|                   <div v-if="item.rightStr" class="right"> | 
|                     <div class="content-title">{{ item.rightStr + ":" }}</div> | 
|                     <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div> | 
|                   </div> | 
|                 </li> | 
|               </ul> | 
|             </div> | 
|           </div> | 
|           <!-- 动态信息 --> | 
|           <div class="basic-info"> | 
|             <div class="basic-info-label" @click="expandClick('dynamic')"> | 
|               <i v-if="isDynamicExpand" class="el-icon-arrow-down"></i> | 
|               <i v-else class="el-icon-arrow-up"></i> | 
|               <span style="margin-left: 10px">动态信息</span> | 
|             </div> | 
|             <div v-show="isDynamicExpand" class="basic-info-content"> | 
|               <ul> | 
|                 <li v-for="(item, i) in dynamicInfoList" :key="i"> | 
|                   <div class="left"> | 
|                     <div class="content-title">{{ item.leftStr + ":" }}</div> | 
|                     <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div> | 
|                   </div> | 
|                   <div v-if="item.rightStr" class="right"> | 
|                     <div class="content-title">{{ item.rightStr + ":" }}</div> | 
|                     <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div> | 
|                   </div> | 
|                 </li> | 
|               </ul> | 
|             </div> | 
|           </div> | 
|           <!-- 备注信息 --> | 
|           <div class="basic-info"> | 
|             <div class="basic-info-label" @click="expandClick('remark')"> | 
|               <i v-if="isRemarkExpand" class="el-icon-arrow-down"></i> | 
|               <i v-else class="el-icon-arrow-up"></i> | 
|               <span style="margin-left: 10px">备注信息</span> | 
|             </div> | 
|             <div v-show="isRemarkExpand" class="basic-info-content"> | 
|               <ul> | 
|                 <li> | 
|                   <div class="left remark"> | 
|                     <div class="content-title">{{ "退货原因:" }}</div> | 
|                     <div class="content-data">{{ detailConfig.infomation.reason }}</div> | 
|                   </div> | 
|                 </li> | 
|               </ul> | 
|             </div> | 
|           </div> | 
|           <!-- 附件信息 --> | 
|           <!-- <div class="basic-info"> | 
|             <div class="basic-info-label" @click="expandClick('annex')"> | 
|               <i v-if="isAnnexExpand" class="el-icon-arrow-down"></i> | 
|               <i v-else class="el-icon-arrow-up"></i> | 
|               <span style="margin-left: 10px">附件信息</span> | 
|             </div> | 
|             <div v-show="isAnnexExpand" class="basic-info-content"> | 
|               <ul> | 
|                 <li> | 
|                   <div class="left remark"> | 
|                     <div class="content-title">{{ "附件:" }}</div> | 
|                     <div class="content-data">{{ "" }}</div> | 
|                   </div> | 
|                 </li> | 
|               </ul> | 
|             </div> | 
|           </div> --> | 
|           <!-- 产品管理 --> | 
|           <div class="basic-info"> | 
|             <div class="basic-info-label" @click="expandClick('product')"> | 
|               <i v-if="isProductExpand" class="el-icon-arrow-down"></i> | 
|               <i v-else class="el-icon-arrow-up"></i> | 
|               <span style="margin-left: 10px">产品管理</span> | 
|               <span style="margin-left: 30px">{{ "币种:" + "人民币(¥)" }}</span> | 
|             </div> | 
|             <div v-show="isProductExpand" class="basic-info-content"> | 
|               <CommonFormTableView | 
|                 :detail-enter="true" | 
|                 :show-summary="showSummary" | 
|                 :product-table-list="productTableList" | 
|               /> | 
|             </div> | 
|           </div> | 
|         </div> | 
|         <div v-if="activeName === 'refundForm'" class="second"> | 
|           <RefundForm :isDetail="true" :add-config="addConfig" /> | 
|         </div> | 
|       </div> | 
|     </el-drawer> | 
|   </div> | 
| </template> | 
|   | 
| <script> | 
| import RefundForm from "@/views/sales/refundForm" | 
| import CommonFormTableView from "@/components/makepager/CommonFormTableView" | 
| export default { | 
|   name: "DetailSpecification", | 
|   props: { | 
|     returnDetail: { | 
|       type: Object, | 
|       default: () => { | 
|         return { | 
|           visible: false, | 
|           infomation: {} | 
|         } | 
|       } | 
|     } | 
|   }, | 
|   components: { RefundForm, CommonFormTableView }, | 
|   computed: {}, | 
|   data() { | 
|     return { | 
|       detailConfig: this.returnDetail, | 
|       activeName: "first", | 
|       isBasicExpand: true, // 基本信息 | 
|       basicInfoList: [], | 
|       isDynamicExpand: true, // 动态信息 | 
|       dynamicInfoList: [], | 
|       isRemarkExpand: true, // 备注信息 | 
|       isAnnexExpand: true, // 附件信息 | 
|       isProductExpand: true, // 产品管理 | 
|       showSummary: { | 
|         show: true, | 
|         total: true, | 
|         sumProp: ["amount", "price", "total"], | 
|         mergeNumber: 1 | 
|       }, | 
|       productTableList: {}, | 
|       addConfig: {} | 
|     } | 
|   }, | 
|   created() { | 
|     this.setData(this.detailConfig.infomation) | 
|     this.addConfig = { | 
|       keywordType: "销售退货单", | 
|       keyword: this.detailConfig.infomation.number, | 
|       id: this.detailConfig.infomation.id, | 
|       client_name: this.detailConfig.infomation.client.name, | 
|       contact_name: this.detailConfig.infomation.contact_name, | 
|       client_id: this.detailConfig.infomation.client_id, | 
|       contact_id: this.detailConfig.infomation.contact_id | 
|     } | 
|     this.setTableForm() | 
|   }, | 
|   mounted() {}, | 
|   methods: { | 
|     setData(item) { | 
|       this.basicInfoList = [ | 
|         { | 
|           leftStr: "客户名称", | 
|           leftValue: item.client.name, | 
|           rightStr: "销售退货单编号", | 
|           rightValue: item.number | 
|         }, | 
|         { | 
|           leftStr: "选择源单", | 
|           leftValue: "", | 
|           rightStr: "退入仓库", | 
|           rightValue: item.repository | 
|         }, | 
|         { | 
|           leftStr: "销售负责人", | 
|           leftValue: item.Member.username, | 
|           rightStr: "审批状态", | 
|           rightValue: "" | 
|         }, | 
|         { | 
|           leftStr: "退货日期", | 
|           leftValue: item.returnDate, | 
|           rightStr: "创建时间", | 
|           rightValue: "" | 
|         }, | 
|         { | 
|           leftStr: "创建人", | 
|           leftValue: "", | 
|           rightStr: "", | 
|           rightValue: "" | 
|         } | 
|       ] | 
|       this.dynamicInfoList = [ | 
|         { | 
|           leftStr: "修改时间", | 
|           leftValue: "", | 
|           rightStr: "应退款", | 
|           rightValue: "" | 
|         }, | 
|         { | 
|           leftStr: "状态", | 
|           leftValue: item.SalesReturnStatus.name, | 
|           rightStr: "已退款", | 
|           rightValue: "" | 
|         } | 
|       ] | 
|     }, | 
|     handleClose() { | 
|       this.detailConfig.visible = false | 
|     }, | 
|     // tab切换 | 
|     tabsClick(tab, event) { | 
|       console.log(tab, event) | 
|     }, | 
|     // 展开收起点击事件 | 
|     expandClick(value) { | 
|       console.log(value) | 
|       if (value === "basic") { | 
|         this.isBasicExpand = !this.isBasicExpand | 
|       } else if (value === "dynamic") { | 
|         this.isDynamicExpand = !this.isLabelExpand | 
|       } else if (value === "remark") { | 
|         this.isRemarkExpand = !this.isRemarkExpand | 
|       } else if (value === "annex") { | 
|         this.isAnnexExpand = !this.isAnnexExpand | 
|       } else if (value === "product") { | 
|         this.isProductExpand = !this.isProductExpand | 
|       } | 
|     }, | 
|     setTableForm() { | 
|       this.productTableList = { | 
|         tableData: this.detailConfig.infomation.products, | 
|         tableColumn: [ | 
|           { label: "产品名称", prop: "name", productName: true, isRequird: true }, | 
|           { label: "产品编号", prop: "number" }, | 
|           { label: "数量", prop: "amount", inputNumber: true, isRequird: true }, | 
|           { label: "销售单价", prop: "price", inputFloat: true }, | 
|           { label: "价税合计", prop: "total", inputFloat: true } | 
|         ] | 
|       } | 
|     } | 
|   } | 
| } | 
| </script> | 
|   | 
| <!-- Add "scoped" attribute to limit CSS to this component only --> | 
| <style lang="scss" scoped> | 
| ::v-deep { | 
|   .el-drawer__header { | 
|     padding: 0; | 
|     margin-bottom: 0px; | 
|     .header { | 
|       height: 56px; | 
|       display: flex; | 
|       align-items: center; | 
|       padding-left: 10px; | 
|       .header-label { | 
|         padding: 5px; | 
|         border-radius: 4px; | 
|         background-color: #ff6600; | 
|         color: #fff; | 
|         font-size: 12px; | 
|       } | 
|       .header-title { | 
|         color: #323232; | 
|         font-size: 15px; | 
|         margin-left: 10px; | 
|         font-weight: inherit; | 
|       } | 
|     } | 
|   } | 
|   .el-tabs--top .el-tabs__item.is-top:nth-child(2) { | 
|     padding-left: 20px; | 
|   } | 
|   .el-tabs__item.is-active, | 
|   .el-tabs__item:hover, | 
|   .el-tabs__active-bar { | 
|     color: $color-primary; | 
|   } | 
|   .el-tabs__header { | 
|     margin: 0; | 
|   } | 
|   .el-drawer__body { | 
|     .content { | 
|       background-color: rgb(230, 233, 240); | 
|       padding: 8px; | 
|       .tab-view { | 
|         background: #fff; | 
|         .item { | 
|           position: absolute; | 
|           top: 0px; | 
|           right: 0px; | 
|         } | 
|       } | 
|       .detail { | 
|         .basic-info { | 
|           .basic-info-label { | 
|             padding-left: 10px; | 
|             height: 42px; | 
|             line-height: 42px; | 
|             background: #f4f8fe; | 
|             color: #333; | 
|             font-size: 14px; | 
|           } | 
|           .basic-info-content { | 
|             background: #fff; | 
|             ul { | 
|               padding-inline-start: 0; | 
|             } | 
|             li { | 
|               display: flex; | 
|               font-size: 14px; | 
|               font-family: PingFangSC; | 
|               border-bottom: 1px solid #f9f9fb; | 
|               .left, | 
|               .right, | 
|               .all { | 
|                 width: 50%; | 
|                 display: flex; | 
|                 align-items: center; | 
|                 height: 40px; | 
|                 .content-title { | 
|                   width: 320px; | 
|                   text-align: right; | 
|                   color: #555; | 
|                 } | 
|                 .content-data { | 
|                   text-align: left; | 
|                   margin-left: 25px; | 
|                   color: #333; | 
|                 } | 
|               } | 
|               .all { | 
|                 width: 100%; | 
|               } | 
|               .remark { | 
|                 width: 100%; | 
|               } | 
|               .history { | 
|                 .content-title { | 
|                   width: 200px; | 
|                   color: #8b0000; | 
|                 } | 
|                 .content-data { | 
|                   color: #8b0000; | 
|                 } | 
|               } | 
|             } | 
|             .step-view { | 
|               padding: 30px 60px 5px; | 
|               height: 100px; | 
|               .step-title-view { | 
|                 margin-top: 10px; | 
|                 font-size: 12px; | 
|                 color: #555; | 
|                 position: relative; | 
|                 .step-label { | 
|                   margin-top: -65px; | 
|                   height: 60px; | 
|                 } | 
|                 .step-btn { | 
|                   position: absolute; | 
|                   bottom: -25px; | 
|                   left: 50%; | 
|                   margin-left: -28px; | 
|                   width: 56px; | 
|                   height: 24px; | 
|                   line-height: 24px; | 
|                   text-align: center; | 
|                   color: #2d82f4; | 
|                   border: 1px solid #2d82f4; | 
|                   border-radius: 15px; | 
|                   cursor: pointer; | 
|                 } | 
|                 .step-desc { | 
|                   margin-top: 15px; | 
|                 } | 
|               } | 
|               .el-step__head.is-process { | 
|                 color: #ff8707; | 
|                 border-color: #ff8707; | 
|               } | 
|               .el-step__head.is-finish .el-step__line { | 
|                 background-color: #409eff; | 
|               } | 
|             } | 
|             .termsConditions { | 
|               display: flex; | 
|               align-items: center; | 
|               font-size: 14px; | 
|               font-family: PingFangSC; | 
|               // padding: 5px 0; | 
|               .content-title { | 
|                 width: 320px; | 
|                 text-align: right; | 
|                 color: #555; | 
|               } | 
|               .content-termsConditions { | 
|                 margin-left: 25px; | 
|                 font-size: 13px; | 
|                 color: #333; | 
|                 li { | 
|                   margin: 5px 0; | 
|                   border-bottom: 0px solid #f9f9fb; | 
|                 } | 
|               } | 
|             } | 
|           } | 
|         } | 
|       } | 
|       .second { | 
|         background: #fff; | 
|         .followup-records { | 
|           .table-view { | 
|             margin-top: 0 !important; | 
|             margin-bottom: 0; | 
|           } | 
|         } | 
|       } | 
|     } | 
|   } | 
| } | 
| </style> |