drawer.vue 8.0 KB

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