|  |  | 
 |  |  |   <div class="saleInvoice"> | 
 |  |  |     <div v-if="isDetail" class="detail-top"> | 
 |  |  |       <DetailListCommonBtn :query-class-options="queryClassOptions" /> | 
 |  |  |       <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> | 
 |  |  |     </div> | 
 |  |  |     <div v-else class="top"> | 
 |  |  |       <SearchCommonView | 
 |  |  |         ref="searchCommonView" | 
 |  |  |         :query-class-options="queryClassOptions" | 
 |  |  |         :search-options="searchOptions" | 
 |  |  |         :search-sel="searchSel" | 
 |  |  |         @searchClick="searchClick" | 
 |  |  |         @resetClick="resetClick" | 
 |  |  |       /> | 
 |  |  |       <div class="btn-pager"> | 
 |  |  |         <PublicFunctionBtnView :statistics="true" :operates-list="operatesList" @batchDelete="delClick" /> | 
 |  |  |         <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> | 
 |  |  |     <div v-else class="filter"> | 
 |  |  |       <div class="filter-card"> | 
 |  |  |         <CommonSearch | 
 |  |  |           :show-add="false" | 
 |  |  |           :show-download="false" | 
 |  |  |           :amount-view="false" | 
 |  |  |           :show-action-btn="false" | 
 |  |  |           placeholder="请输入销售发票编号" | 
 |  |  |           @searchClick="onFilterSearch" | 
 |  |  |         > | 
 |  |  |           <template slot="leftButton"> | 
 |  |  |             <el-button size="small" type="primary" @click="addBtnClick">新建</el-button> | 
 |  |  |             <!--            <el-button size="small"  @click="delClick">删除</el-button>--> | 
 |  |  |           </template> | 
 |  |  |         </CommonSearch> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |     <TableCommonView | 
 |  |  |       ref="tableListRef" | 
 |  |  |       v-loading="loading" | 
 |  |  |       :table-list="tableList" | 
 |  |  |       :select-box="!isDetail" | 
 |  |  |       @getSelectArray="getSelectArray" | 
 |  |  |     > | 
 |  |  |       <!-- <template slot="tableButton"> | 
 |  |  |         <el-table-column label="操作" width="60" fixed="right"> | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |       </template> --> | 
 |  |  |     </TableCommonView> | 
 |  |  |     <div class="body"> | 
 |  |  |       <div class="body-card"> | 
 |  |  |         <div class="list-view"> | 
 |  |  |           <TableCommonView ref="tableListRef" :table-list="tableList" @selTableCol="selTableCol"> </TableCommonView> | 
 |  |  |         </div> | 
 |  |  |         <div class="btn-pager"> | 
 |  |  |           <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> | 
 |  |  |         </div> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |     <!-- 新建/编辑 --> | 
 |  |  |     <AddSaleInvoice v-if="editConfig.visible" :edit-common-config="editConfig" /> | 
 |  |  |     <!-- 客户详情 --> | 
 |  |  |     <DetailClientManage v-if="clientDeail.visible" :client-manage-detail="clientDeail" /> | 
 |  |  |   </div> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   mixins: [pageMixin], | 
 |  |  |   components: { AddSaleInvoice }, | 
 |  |  |   components: { AddSaleInvoice, DetailClientManage: () => import("@/views/client/client/DetailClientManage") }, | 
 |  |  |   computed: {}, | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  | 
 |  |  |         infomation: {} | 
 |  |  |       }, | 
 |  |  |       saleChanceName: "", | 
 |  |  |       contactsDeail: { | 
 |  |  |         visible: false, | 
 |  |  |         infomation: {} | 
 |  |  |       }, | 
 |  |  |       clientDeail: { | 
 |  |  |         visible: false, | 
 |  |  |         infomation: {} | 
 |  |  |       }, | 
 |  |  |       selValueList: [], | 
 |  |  |       searchSel: { | 
 |  |  |         value: "topic", | 
 |  |  |         label: "" | 
 |  |  |       }, | 
 |  |  |       search_map: {}, | 
 |  |  |       keyword: "", | 
 |  |  |       keywordType: "" | 
 |  |  |       keywordType: "", | 
 |  |  |       tableColumn: [ | 
 |  |  |         { label: "发票编号", prop: "number", default: true }, | 
 |  |  |         { label: "主题", prop: "subject" }, | 
 |  |  |         { label: "客户名称", prop: "client_name" }, | 
 |  |  |         { label: "票据类型", prop: "invoiceType_name" }, | 
 |  |  |         { label: "开票日期", prop: "invoiceDate" }, | 
 |  |  |         { label: "销售负责人", prop: "principalId" }, | 
 |  |  |         { label: "产品名称", prop: "name", isProductName: true }, | 
 |  |  |         { label: "数量", prop: "amount", isProductAmount: true }, | 
 |  |  |         { label: "含税单价", prop: "price", isProductPrice: true }, | 
 |  |  |         { label: "价税合计", prop: "total", isProductTotal: true } | 
 |  |  |       ], | 
 |  |  |       showCol: [ | 
 |  |  |         "发票编号", | 
 |  |  |         "主题", | 
 |  |  |         "客户名称", | 
 |  |  |         "票据类型", | 
 |  |  |         "开票日期", | 
 |  |  |         "销售负责人", | 
 |  |  |         "产品名称", | 
 |  |  |         "数量", | 
 |  |  |         "含税单价", | 
 |  |  |         "价税合计" | 
 |  |  |       ] | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |   created() { | 
 |  |  | 
 |  |  |   methods: { | 
 |  |  |     setTable() { | 
 |  |  |       this.tableList = { | 
 |  |  |         selectIndex: true, | 
 |  |  |         tableInfomation: [], | 
 |  |  |         tableColumn: [ | 
 |  |  |           { label: "发票编号", prop: "invoiceNumber" }, | 
 |  |  |           { label: "主题", prop: "subject" }, | 
 |  |  |           { label: "客户名称", prop: "client_name" }, | 
 |  |  |           { label: "票据类型", prop: "invoiceType_name" }, | 
 |  |  |           { label: "开票日期", prop: "invoiceDate" }, | 
 |  |  |           { label: "销售负责人", prop: "principalId" }, | 
 |  |  |           { label: "产品名称", prop: "name", isProductName: true }, | 
 |  |  |           { label: "数量", prop: "amount", isProductAmount: true }, | 
 |  |  |           { label: "含税单价", prop: "price", isProductCommon: true }, | 
 |  |  |           { label: "价税合计", prop: "total", isProductCommon: true } | 
 |  |  |         ] | 
 |  |  |         allcol: [], | 
 |  |  |         showcol: this.showCol, | 
 |  |  |         tableColumn: this.setColumnVisible(this.showCol) | 
 |  |  |       } | 
 |  |  |       this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label) | 
 |  |  |       this.searchOptions = [] | 
 |  |  |       for (let i = 0; i < this.tableList.tableColumn.length; i++) { | 
 |  |  |         const label = this.tableList.tableColumn[i].label | 
 |  |  | 
 |  |  |         this.searchOptions.push({ value: value, label: label }) | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     setColumnVisible(showCol) { | 
 |  |  |       return this.tableColumn.map((ele) => { | 
 |  |  |         return { | 
 |  |  |           ...ele, | 
 |  |  |           isShowColumn: showCol.includes(ele.label) | 
 |  |  |         } | 
 |  |  |       }) | 
 |  |  |     }, | 
 |  |  |     selTableCol(val) { | 
 |  |  |       this.showcol = val | 
 |  |  |       this.tableList.tableColumn = this.setColumnVisible(val) | 
 |  |  |     }, | 
 |  |  |     // 请求数据 | 
 |  |  |     async getData() { | 
 |  |  |       this.loading = true | 
 |  |  |       await getInvoiceList({ | 
 |  |  |         keyword: this.keyword, | 
 |  |  |         keywordType: this.keywordType, | 
 |  |  |         page: this.pagerOptions.currPage, | 
 |  |  |         pageSize: this.pagerOptions.pageSize | 
 |  |  |       }) | 
 |  |  |       console.log(this.addConfig) | 
 |  |  |       let params = {} | 
 |  |  |       let sourceTyle = this.addConfig.keywordType === "销售明细单" ? 1 : 2 | 
 |  |  |       if (this.addConfig.id) { | 
 |  |  |         params = { | 
 |  |  |           sourceId: this.addConfig.id, | 
 |  |  |           sourceType: sourceTyle, | 
 |  |  |           page: this.pagerOptions.currPage, | 
 |  |  |           pageSize: this.pagerOptions.pageSize | 
 |  |  |         } | 
 |  |  |       } else { | 
 |  |  |         params = { | 
 |  |  |           keyword: this.keyword, | 
 |  |  |           keywordType: this.keywordType, | 
 |  |  |           page: this.pagerOptions.currPage, | 
 |  |  |           pageSize: this.pagerOptions.pageSize | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |       await getInvoiceList(params) | 
 |  |  |         .then((res) => { | 
 |  |  |           if (res.data.code === 200) { | 
 |  |  |             if (res.data.data.data && res.data.data.data.length > 0) { | 
 |  |  |               const list = res.data.data.data.map((item) => { | 
 |  |  |           if (res.code === 200) { | 
 |  |  |             if (res.data.data && res.data.data.length > 0) { | 
 |  |  |               const list = res.data.data.map((item) => { | 
 |  |  |                 return { | 
 |  |  |                   ...item, | 
 |  |  |                   client_name: item.Client.name, | 
 |  |  | 
 |  |  |       this.editConfig.visible = true | 
 |  |  |       this.editConfig.title = "新建" | 
 |  |  |       this.editConfig.sourceType = this.sourceType | 
 |  |  |       this.editConfig.infomation = { ...this.addConfig } | 
 |  |  |       this.editConfig.infomation = { ...this.addConfig, number: "" } | 
 |  |  |     }, | 
 |  |  |     // 客户名称详情 | 
 |  |  |     selClientClick(row) { | 
 |  |  |       console.log(row) | 
 |  |  |       this.clientDeail.visible = true | 
 |  |  |       this.clientDeail.infomation = { | 
 |  |  |         ...row.Client, | 
 |  |  |         client_name: row.Client.name, | 
 |  |  |         client_level: row.Client.client_level.name, | 
 |  |  |         client_status: row.Client.client_status.name, | 
 |  |  |         contact_name: row.contact.name | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | 
 |  |  | <!-- Add "scoped" attribute to limit CSS to this component only --> | 
 |  |  | <style lang="scss" scoped> | 
 |  |  | .saleInvoice { | 
 |  |  |   .top { | 
 |  |  |     margin-bottom: 20px; | 
 |  |  |   height: 100%; | 
 |  |  |   overflow: hidden; | 
 |  |  |   .filter { | 
 |  |  |     height: 80px; | 
 |  |  |     display: flex; | 
 |  |  |     align-items: center; | 
 |  |  |     padding: 12px 20px 0 20px; | 
 |  |  |     &-card { | 
 |  |  |       height: 80px; | 
 |  |  |       display: flex; | 
 |  |  |       align-items: center; | 
 |  |  |       box-sizing: border-box; | 
 |  |  |       padding: 10px 20px; | 
 |  |  |       flex: 1; | 
 |  |  |       border-radius: 12px; | 
 |  |  |       background-color: #fff; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |   .body { | 
 |  |  |     box-sizing: border-box; | 
 |  |  |     padding: 10px 20px; | 
 |  |  |     border-radius: 12px; | 
 |  |  |     height: calc(100% - 92px); | 
 |  |  |     .body-card { | 
 |  |  |       background-color: #fff; | 
 |  |  |       border-radius: 12px; | 
 |  |  |       height: 100%; | 
 |  |  |       overflow: hidden; | 
 |  |  |     } | 
 |  |  |     .list-view { | 
 |  |  |       height: calc(100% - 60px); | 
 |  |  |       overflow: hidden; | 
 |  |  |     } | 
 |  |  |     .btn-pager { | 
 |  |  |       display: flex; | 
 |  |  |       margin-top: 10px; | 
 |  |  |       .page { | 
 |  |  |         margin-left: auto; | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |   .detail-top { | 
 |  |  |     display: flex; | 
 |  |  |     .page { | 
 |  |  |       margin-left: auto; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | ::v-deep .el-table__body-wrapper .el-table .el-table__cell { | 
 |  |  |   padding: 6px 0 !important; | 
 |  |  |   height: 35px; | 
 |  |  |   text-align: center; | 
 |  |  | } | 
 |  |  | </style> |