drawer.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. <template>
  2. <el-drawer
  3. :visible.sync="drawer"
  4. direction="rtl"
  5. :append-to-body="true"
  6. size="100%"
  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. <div>
  17. <span> 订单数量</span>
  18. <span class="value"
  19. >{{ orderNoCountData.saleOrderNumber }}
  20. &nbsp;&nbsp;
  21. </span>
  22. </div>
  23. <div>
  24. <span> 订单总金额</span>
  25. <span class="value"
  26. >{{ orderNoCountData.totalAmountSaleOrder }}
  27. &nbsp;&nbsp;元
  28. </span>
  29. </div>
  30. <div>
  31. <span> 应收款</span>
  32. <span class="value"
  33. >{{ orderNoCountData.receivable }}
  34. &nbsp;&nbsp;元
  35. </span>
  36. </div>
  37. <div>
  38. <span> 发货数量</span>
  39. <span class="value"
  40. >{{ orderNoCountData.sendNumber }}
  41. &nbsp;&nbsp;
  42. </span>
  43. </div>
  44. <div>
  45. <span> 退货数量</span>
  46. <span class="value"
  47. >{{ orderNoCountData.returnNumber }}
  48. &nbsp;&nbsp;
  49. </span>
  50. </div>
  51. <div>
  52. <span> 退货金额</span>
  53. <span class="value"
  54. >{{ orderNoCountData.returnAmount }}
  55. &nbsp;&nbsp;元
  56. </span>
  57. </div>
  58. <!-- <span>预计结单日期:</span> -->
  59. </div>
  60. <div class="ele-body" style="height: calc(100% - 124px)">
  61. <el-tabs v-model="activeName" style="width: 100%" type="border-card">
  62. <el-tab-pane label="详细信息" name="详细信息">
  63. <saleOrderInfo ref="saleOrderInfoRef"></saleOrderInfo>
  64. </el-tab-pane>
  65. <el-tab-pane label="发货单" name="发货单">
  66. <invoice :saleOrderData="row" :key="row.id"></invoice>
  67. </el-tab-pane>
  68. <el-tab-pane label="退货单" name="退货单">
  69. <returnGoods :saleOrderData="row" :key="row.id"></returnGoods>
  70. </el-tab-pane>
  71. <el-tab-pane label="对账单" name="对账单">
  72. <accountstatement
  73. :saleOrderData="row"
  74. :key="row.id"
  75. ></accountstatement>
  76. </el-tab-pane>
  77. <el-tab-pane label="采购计划" name="采购计划">
  78. <purchasePlanManage
  79. :saleOrderData="row"
  80. :key="row.id"
  81. ></purchasePlanManage>
  82. </el-tab-pane>
  83. <el-tab-pane label="生产计划" name="生产计划">
  84. <productionPlan :saleOrderData="row" :key="row.id"></productionPlan>
  85. </el-tab-pane>
  86. <el-tab-pane label="生产工单" name="生产工单">
  87. <produceOrder :saleOrderData="row" :key="row.id"></produceOrder>
  88. </el-tab-pane>
  89. <el-tab-pane label="领料" name="领料">
  90. <pick :saleOrderData="row" :key="row.id"> </pick>
  91. </el-tab-pane>
  92. <el-tab-pane label="退料" name="退料">
  93. <materialReturn :saleOrderData="row" :key="row.id"> </materialReturn>
  94. </el-tab-pane>
  95. <el-tab-pane label="入库单" name="入库单">
  96. <warehousing :saleOrderData="row" :key="row.id"></warehousing>
  97. </el-tab-pane>
  98. <el-tab-pane label="应收款" name="应收款">
  99. <receivableManage
  100. :saleOrderData="row"
  101. :key="row.id"
  102. ></receivableManage>
  103. </el-tab-pane>
  104. <el-tab-pane label="催单记录" name="催单记录">
  105. <saleOrderReminderList
  106. ref="saleOrderReminderListRef"
  107. ></saleOrderReminderList>
  108. </el-tab-pane>
  109. <el-tab-pane
  110. label="审批流程"
  111. name="审批流程"
  112. v-if="row.processInstanceId"
  113. >
  114. <bpmDetail
  115. v-if="row.processInstanceId && activeName == '审批流程'"
  116. :id="row.processInstanceId"
  117. :key="row.id"
  118. ></bpmDetail>
  119. </el-tab-pane>
  120. </el-tabs>
  121. </div>
  122. </el-drawer>
  123. </template>
  124. <script>
  125. import {
  126. getSaleOrderDetail,
  127. queryOrderNoCount
  128. } from '@/api/saleManage/saleorder';
  129. import dictMixins from '@/mixins/dictMixins';
  130. import bpmDetail from '@/views/bpm/processInstance/detail.vue';
  131. import saleOrderInfo from './darwerComponents/saleOrderInfo.vue';
  132. //发货单
  133. import invoice from '@/views/saleManage/saleOrder/invoice/index.vue';
  134. //退货单
  135. import returnGoods from '@/views/saleManage/saleOrder/returnGoods/index.vue';
  136. //对账单
  137. import accountstatement from '@/views/saleManage/saleOrder/accountstatement/index.vue';
  138. //采购计划
  139. import purchasePlanManage from '@/views/purchasingManage/purchasePlanManage/index.vue';
  140. //生成计划
  141. import productionPlan from './darwerComponents/productionPlan.vue';
  142. //生成工单
  143. import produceOrder from './darwerComponents/produceOrder.vue';
  144. //领料
  145. import pick from './darwerComponents/pick/index.vue';
  146. //退料
  147. import materialReturn from './darwerComponents/materialReturn/index.vue';
  148. //入库
  149. import warehousing from './darwerComponents/warehousing/index.vue';
  150. //应收
  151. import receivableManage from '@/views/financialManage/receivableManage/index.vue';
  152. //催单
  153. import saleOrderReminderList from './darwerComponents/saleOrderReminderList.vue';
  154. export default {
  155. mixins: [dictMixins],
  156. components: {
  157. bpmDetail,
  158. saleOrderInfo,
  159. invoice,
  160. returnGoods,
  161. accountstatement,
  162. purchasePlanManage,
  163. productionPlan,
  164. produceOrder,
  165. pick,
  166. materialReturn,
  167. warehousing,
  168. receivableManage,saleOrderReminderList
  169. },
  170. data() {
  171. return {
  172. drawer: false,
  173. title: '',
  174. activeName: '详细信息',
  175. row: { contactId: '' },
  176. content: '',
  177. orderNoCountData: {
  178. saleOrderNumber: '', //订单数量
  179. totalAmountSaleOrder: '', //订单总金额
  180. sendNumber: '', //发货数量
  181. receivable: '', //应收款
  182. returnNumber: '', //退货数量
  183. returnAmount: '' //退货金额
  184. }
  185. };
  186. },
  187. created() {},
  188. methods: {
  189. async open(row) {
  190. this.row = await getSaleOrderDetail(row.id);
  191. this.orderNoCountData = await queryOrderNoCount(row.orderNo);
  192. this.drawer = true;
  193. this.$nextTick(() => {
  194. this.$refs.saleOrderInfoRef.init(this.row);
  195. this.$refs.saleOrderReminderListRef.init(this.row.reminderRecord)
  196. });
  197. },
  198. handleClose(done) {
  199. this.$confirm('确认关闭?')
  200. .then((_) => {
  201. done();
  202. })
  203. .catch((_) => {});
  204. }
  205. }
  206. };
  207. </script>
  208. <style lang="scss" scoped>
  209. .ele-body {
  210. display: flex;
  211. }
  212. :deep(.el-tabs__content) {
  213. padding: 10px;
  214. height: calc(100% - 40px);
  215. overflow: auto;
  216. }
  217. :deep(.el-input.is-disabled .el-input__inner) {
  218. color: #606266;
  219. }
  220. .card {
  221. display: flex;
  222. padding: 15px;
  223. font-size: 16px;
  224. span {
  225. flex: 1;
  226. }
  227. }
  228. .title {
  229. span {
  230. margin-left: 50px;
  231. }
  232. .name {
  233. font-weight: 800;
  234. color: #40a9ff;
  235. }
  236. }
  237. .card {
  238. display: flex;
  239. padding: 15px;
  240. font-size: 16px;
  241. > div {
  242. flex: 1;
  243. margin: 0px 40px;
  244. background: #1890ff;
  245. color: #fff;
  246. display: flex;
  247. flex-direction: column;
  248. align-items: center;
  249. justify-content: center;
  250. padding: 12px;
  251. border-radius: 10px;
  252. .value {
  253. margin-top: 8px;
  254. }
  255. }
  256. }
  257. </style>