drawer.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <template>
  2. <el-drawer
  3. :visible.sync="drawer"
  4. direction="rtl"
  5. :append-to-body="true"
  6. size="90%"
  7. >
  8. <div slot="title" class="title">
  9. <span style="margin: 0" class="name">订单编号:{{ row.orderNo }}</span>
  10. <span>项目名称:{{ row.projectName }}</span>
  11. <span>客户名称:{{ row.partaName }}</span>
  12. <span>销售类型:{{ row.saleTypeName }}</span>
  13. </div>
  14. <headerTitle title="摘要卡片" style="margin-top: 15px"></headerTitle>
  15. <!-- <div class="card">
  16. <span>预算:</span>
  17. <span> 赢单率:</span>
  18. <span>预计结单日期:</span>
  19. </div> -->
  20. <div class="ele-body" style="height: calc(100% - 124px)">
  21. <el-tabs v-model="activeName" style="width: 100%" type="border-card">
  22. <el-tab-pane label="详细信息" name="详细信息">
  23. <saleOrderInfo ref="saleOrderInfoRef"></saleOrderInfo>
  24. </el-tab-pane>
  25. <el-tab-pane label="发货单" name="发货单">
  26. <invoice :saleOrderData="row" :key="row.id"></invoice>
  27. </el-tab-pane>
  28. <el-tab-pane label="退货单" name="退货单">
  29. <returnGoods :saleOrderData="row" :key="row.id"></returnGoods>
  30. </el-tab-pane>
  31. <el-tab-pane label="对账单" name="对账单">
  32. <accountstatement
  33. :saleOrderData="row"
  34. :key="row.id"
  35. ></accountstatement>
  36. </el-tab-pane>
  37. <el-tab-pane label="采购计划" name="采购计划">
  38. <purchasePlanManage
  39. :saleOrderData="row"
  40. :key="row.id"
  41. ></purchasePlanManage>
  42. </el-tab-pane>
  43. <el-tab-pane label="生产计划" name="生产计划">
  44. <productionPlan :saleOrderData="row" :key="row.id"></productionPlan>
  45. </el-tab-pane>
  46. <el-tab-pane label="生产工单" name="生产工单">
  47. <produceOrder :saleOrderData="row" :key="row.id"></produceOrder>
  48. </el-tab-pane>
  49. <el-tab-pane label="领料" name="领料">
  50. <pick :saleOrderData="row" :key="row.id"> </pick>
  51. </el-tab-pane>
  52. <el-tab-pane label="退料" name="退料">
  53. <materialReturn :saleOrderData="row" :key="row.id"> </materialReturn>
  54. </el-tab-pane>
  55. <el-tab-pane label="入库单" name="入库单">
  56. <warehousing :saleOrderData="row" :key="row.id"></warehousing>
  57. </el-tab-pane>
  58. <el-tab-pane label="应收款" name="应收款">
  59. <receivableManage
  60. :saleOrderData="row"
  61. :key="row.id"
  62. ></receivableManage>
  63. </el-tab-pane>
  64. <el-tab-pane label="审批流程" name="审批流程" v-if="row.processInstanceId">
  65. <bpmDetail
  66. v-if="row.processInstanceId"
  67. :id="row.processInstanceId"
  68. :key="row.id"
  69. ></bpmDetail>
  70. </el-tab-pane>
  71. </el-tabs>
  72. </div>
  73. </el-drawer>
  74. </template>
  75. <script>
  76. import { getSaleOrderDetail } from '@/api/saleManage/saleorder';
  77. import dictMixins from '@/mixins/dictMixins';
  78. import bpmDetail from '@/views/bpm/processInstance/detail.vue';
  79. import saleOrderInfo from './darwerComponents/saleOrderInfo.vue';
  80. //发货单
  81. import invoice from '@/views/saleManage/saleOrder/invoice/index.vue';
  82. //退货单
  83. import returnGoods from '@/views/saleManage/saleOrder/returnGoods/index.vue';
  84. //对账单
  85. import accountstatement from '@/views/saleManage/saleOrder/accountstatement/index.vue';
  86. //采购计划
  87. import purchasePlanManage from '@/views/purchasingManage/purchasePlanManage/index.vue';
  88. //生成计划
  89. import productionPlan from './darwerComponents/productionPlan.vue';
  90. //生成工单
  91. import produceOrder from './darwerComponents/produceOrder.vue';
  92. //领料
  93. import pick from './darwerComponents/pick/index.vue';
  94. //退料
  95. import materialReturn from './darwerComponents/materialReturn/index.vue';
  96. //入库
  97. import warehousing from './darwerComponents/warehousing/index.vue';
  98. //应收
  99. import receivableManage from '@/views/financialManage/receivableManage/index.vue';
  100. export default {
  101. mixins: [dictMixins],
  102. components: {
  103. bpmDetail,
  104. saleOrderInfo,
  105. invoice,
  106. returnGoods,
  107. accountstatement,
  108. purchasePlanManage,
  109. productionPlan,
  110. produceOrder,
  111. pick,
  112. materialReturn,
  113. warehousing,
  114. receivableManage
  115. },
  116. data() {
  117. return {
  118. drawer: false,
  119. title: '',
  120. activeName: '详细信息',
  121. row: { contactId: '' },
  122. content: ''
  123. };
  124. },
  125. created() {},
  126. methods: {
  127. async open(row) {
  128. this.row = await getSaleOrderDetail(row.id);
  129. this.drawer = true;
  130. this.$nextTick(() => {
  131. this.$refs.saleOrderInfoRef.init(this.row);
  132. // this.$refs.followListRef.init(row);
  133. // this.$refs.businessAddTable &&
  134. // this.$refs.businessAddTable.putTableValue(
  135. // this.row.competAnalysisList
  136. // );
  137. // this.$refs.personnelAddTable &&
  138. // this.$refs.personnelAddTable.putTableValue(
  139. // this.row.partyList,
  140. // this.row.contactId
  141. // );
  142. // this.$refs.inventoryTable &&
  143. // this.$refs.inventoryTable.putTableValue(this.row);
  144. });
  145. },
  146. handleClose(done) {
  147. this.$confirm('确认关闭?')
  148. .then((_) => {
  149. done();
  150. })
  151. .catch((_) => {});
  152. }
  153. }
  154. };
  155. </script>
  156. <style lang="scss" scoped>
  157. .ele-body {
  158. display: flex;
  159. }
  160. :deep(.el-tabs__content) {
  161. padding: 10px;
  162. height: calc(100% - 40px);
  163. overflow: auto;
  164. }
  165. :deep(.el-input.is-disabled .el-input__inner) {
  166. color: #606266;
  167. }
  168. .card {
  169. display: flex;
  170. padding: 15px;
  171. font-size: 16px;
  172. span {
  173. flex: 1;
  174. }
  175. }
  176. .title {
  177. span {
  178. margin-left: 50px;
  179. }
  180. .name {
  181. font-weight: 800;
  182. color: #40a9ff;
  183. }
  184. }
  185. </style>