list.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544
  1. <template>
  2. <div>
  3. <a-card size="small" :bordered="false" class="searchBoxNormal">
  4. <!-- 搜索条件 -->
  5. <div ref="tableSearch" class="table-page-search-wrapper">
  6. <a-form layout="inline" @keyup.enter.native="$refs.table.refresh(true)">
  7. <a-row :gutter="15">
  8. <a-col :md="6" :sm="24">
  9. <a-form-item label="审核时间">
  10. <rangeDate ref="rangeDate" :value="time" @change="dateChange" />
  11. </a-form-item>
  12. </a-col>
  13. <a-col :md="6" :sm="24">
  14. <a-form-item label="客户名称">
  15. <a-input id="outboundOrderList-demanderName" v-model.trim="queryParam.demanderName" allowClear placeholder="请输入客户名称"/>
  16. </a-form-item>
  17. </a-col>
  18. <a-col :md="6" :sm="24">
  19. <a-form-item label="出库单号">
  20. <a-input id="outboundOrderList-stockOutNo" v-model.trim="queryParam.stockOutNo" allowClear placeholder="请输入出库单号"/>
  21. </a-form-item>
  22. </a-col>
  23. <template v-if="advanced">
  24. <a-col :md="6" :sm="24">
  25. <a-form-item label="业务单号">
  26. <a-input id="outboundOrderList-outBizNo" v-model.trim="queryParam.outBizNo" allowClear placeholder="请输入业务单号"/>
  27. </a-form-item>
  28. </a-col>
  29. <a-col :md="6" :sm="24">
  30. <a-form-item label="备货单号">
  31. <a-input id="outboundOrderList-outBizSubNo" v-model.trim="queryParam.outBizSubNo" allowClear placeholder="请输入备货单号"/>
  32. </a-form-item>
  33. </a-col>
  34. <a-col :md="6" :sm="24">
  35. <a-form-item label="出库类型">
  36. <v-select
  37. v-model="queryParam.outBizType"
  38. ref="outBizType"
  39. id="outboundOrderList-outBizType"
  40. code="OUT_STOCK_TYPE"
  41. placeholder="请选择出库类型"
  42. allowClear></v-select>
  43. </a-form-item>
  44. </a-col>
  45. <a-col :md="6" :sm="24">
  46. <a-form-item label="出库状态">
  47. <v-select
  48. v-model="queryParam.state"
  49. ref="state"
  50. id="outboundOrderList-state"
  51. code="OUT_STATE"
  52. placeholder="请选择出库状态"
  53. allowClear></v-select>
  54. </a-form-item>
  55. </a-col>
  56. <a-col :md="6" :sm="24">
  57. <a-form-item label="发货状态">
  58. <v-select
  59. v-model="queryParam.sendFlag"
  60. ref="sendFlag"
  61. id="outboundOrderList-sendFlag"
  62. code="SEND_FLAG"
  63. placeholder="请选择发货状态"
  64. allowClear></v-select>
  65. </a-form-item>
  66. </a-col>
  67. <a-col :md="6" :sm="24">
  68. <a-form-model-item label="所在区域">
  69. <subarea id="outboundOrderList-subarea" ref="subarea" @change="subareaChange"></subarea>
  70. </a-form-model-item>
  71. </a-col>
  72. <a-col :md="6" :sm="24">
  73. <a-form-model-item label="地区" prop="shippingAddrProvinceSn">
  74. <Area id="outboundOrderList-shippingAddrProvinceSn" v-model="queryParam.shippingAddrProvinceSn" placeholder="请选择省"></Area>
  75. </a-form-model-item>
  76. </a-col>
  77. <a-col :md="6" :sm="24" v-show="isShowWarehouse">
  78. <a-form-model-item label="仓库">
  79. <chooseWarehouse ref="warehouse" v-model="queryParam.warehouseSn" :isPermission="true"></chooseWarehouse>
  80. </a-form-model-item>
  81. </a-col>
  82. <a-col :md="6" :sm="24" v-show="isShowCustomerSearch">
  83. <a-form-item label="客服">
  84. <customerService ref="customerName" v-model="queryParam.bizUserSn"></customerService>
  85. </a-form-item>
  86. </a-col>
  87. </template>
  88. <a-col :md="advanced ? (isShowWarehouse&&isShowCustomerSearch ? 24:6) : 6" :sm="24" style="margin-bottom: 10px;" :style="{textAlign: advanced ? (isShowWarehouse&&isShowCustomerSearch ? 'center': 'left') : 'left'}">
  89. <a-button type="primary" @click="searchTable" :disabled="disabled" id="outboundOrderList-refresh">查询</a-button>
  90. <a-button style="margin-left: 5px" @click="resetSearchForm" :disabled="disabled" id="outboundOrderList-reset">重置</a-button>
  91. <a @click="advanced=!advanced" style="margin-left: 5px">
  92. {{ advanced ? '收起' : '展开' }}
  93. <a-icon :type="advanced ? 'up' : 'down'"/>
  94. </a>
  95. </a-col>
  96. </a-row>
  97. </a-form>
  98. </div>
  99. </a-card>
  100. <a-card size="small" :bordered="false" class="outboundOrderList-wrap">
  101. <a-spin :spinning="spinning" tip="Loading...">
  102. <!-- 列表 -->
  103. <div style="margin-bottom: 10px">
  104. <a-button
  105. type="primary"
  106. v-if="$hasPermissions('B_stockOut')"
  107. id="outboundOrder-export"
  108. :loading="loading"
  109. @click="handleOutbound()">批量出库</a-button>
  110. <a-button
  111. type="primary"
  112. v-if="$hasPermissions('B_stockSend')"
  113. class="button-info"
  114. id="outboundOrder-send"
  115. :loading="loading"
  116. @click="handleSendGood()">批量发货</a-button>
  117. <span style="margin-left: 5px">
  118. <template v-if="rowSelectionInfo && rowSelectionInfo.selectedRowKeys.length>0">{{ `已选 ${rowSelectionInfo.selectedRowKeys.length} 项` }}</template>
  119. </span>
  120. </div>
  121. <s-table
  122. class="sTable fixPagination"
  123. ref="table"
  124. :style="{ height: tableHeight+70+'px' }"
  125. size="small"
  126. :rowKey="(record) => record.stockOutSn"
  127. rowKeyName="stockOutSn"
  128. :row-selection="($hasPermissions('B_stockOut')||$hasPermissions('B_stockSend'))?{ columnWidth: 40, getCheckboxProps: record => ({ props: { disabled: record.state == 'CANCEL' } }) }:null"
  129. @rowSelection="rowSelectionFun"
  130. :columns="columns"
  131. :data="loadData"
  132. :scroll="{ y: tableHeight }"
  133. :defaultLoadData="false"
  134. bordered>
  135. <!-- 单号 -->
  136. <template slot="stockOutNo" slot-scope="text, record">
  137. <span v-if="record.stockOutNo && detailPermissions(record)" class="link-bule" @click="handleDetail(record)">{{ record.stockOutNo }}</span>
  138. <span v-else-if="record.stockOutNo && !detailPermissions(record)">{{ record.stockOutNo }}</span>
  139. <span v-else>--</span>
  140. </template>
  141. <!-- 操作 -->
  142. <template slot="action" slot-scope="text, record">
  143. <a-button
  144. size="small"
  145. type="link"
  146. v-if="record.state=='WAIT'&&$hasPermissions('B_stockOut')"
  147. class="button-primary"
  148. @click="handleOutbound(record)"
  149. id="outboundOrderList-out-btn">出库</a-button>
  150. <a-button
  151. size="small"
  152. type="link"
  153. class="button-primary"
  154. v-if="record.sendFlag==0&&$hasPermissions('B_stockSend')"
  155. @click="handleSendGood(record)"
  156. id="outboundOrderList-sendBill">发货</a-button>
  157. <span v-if="record.sendFlag==1&&record.state=='FINISH'">--</span>
  158. </template>
  159. </s-table>
  160. </a-spin>
  161. <!-- 详情 -->
  162. <a-modal
  163. centered
  164. v-drag
  165. class="outboundOrderDetail-modal"
  166. :footer="null"
  167. :maskClosable="false"
  168. title="详情"
  169. v-model="openModal"
  170. v-if="openModal"
  171. @cancel="cancleModal"
  172. width="70%">
  173. <div>
  174. <pushOrderDetailModal v-if="outBizType=='SALES'" :outBizSubSn="orderSn" />
  175. <allocationDetailModal v-if="outBizType=='ALLOCATE'" :outBizSn="orderSn" />
  176. </div>
  177. </a-modal>
  178. <!-- 发货信息 -->
  179. <sendGoodModal
  180. v-drag
  181. ref="detailModal"
  182. modalTit="新增发货单"
  183. :openModal="showDetailModal"
  184. @ok="sendSuccess"
  185. @cancel="showDetailModal=false"></sendGoodModal>
  186. </a-card>
  187. </div>
  188. </template>
  189. <script>
  190. import { commonMixin } from '@/utils/mixin'
  191. import moment from 'moment'
  192. import rangeDate from '@/views/common/rangeDate.vue'
  193. import getDate from '@/libs/getDate.js'
  194. import subarea from '@/views/common/subarea.js'
  195. import Area from '@/views/common/area.js'
  196. import pushOrderDetailModal from '@/views/salesManagement/pushOrderManagement/detailForOut.vue'
  197. import allocationDetailModal from '@/views/allocationManagement/transferOut/detail.vue'
  198. import sendGoodModal from './sendGoodModal.vue'
  199. import { STable, VSelect } from '@/components'
  200. import chooseWarehouse from '@/views/common/chooseWarehouse'
  201. import customerService from '@/views/common/customerService'
  202. import { stockOutList, stockOutOut } from '@/api/stockOut'
  203. import { getCustomerInfo, validateStockOut } from '@/api/sendBill'
  204. export default {
  205. name: 'OutboundOrderList',
  206. mixins: [commonMixin],
  207. components: { STable, VSelect, rangeDate, pushOrderDetailModal, allocationDetailModal, subarea, Area, sendGoodModal, chooseWarehouse, customerService },
  208. data () {
  209. return {
  210. spinning: false,
  211. advanced: true, // 高级搜索 展开/关闭
  212. tableHeight: 0,
  213. time: [
  214. moment(getDate.getThreeMonthDays().starttime, 'YYYY-MM-DD'),
  215. moment(getDate.getCurrMonthDays().endtime, 'YYYY-MM-DD')
  216. ],
  217. queryParam: { // 查询条件
  218. beginDate: getDate.getThreeMonthDays().starttime,
  219. endDate: getDate.getCurrMonthDays().endtime,
  220. demanderName: '', // 客户名称
  221. outBizType: undefined, // 出库类型
  222. stockOutNo: '',
  223. outBizNo: '',
  224. state: undefined, // 状态
  225. subareaArea: {
  226. subareaSn: undefined,
  227. subareaAreaSn: undefined
  228. },
  229. shippingAddrProvinceSn: undefined,
  230. sendFlag: undefined,
  231. warehouseSn: undefined,
  232. outBizSubNo: '',
  233. bizUserSn: undefined
  234. },
  235. disabled: false, // 查询、重置按钮是否可操作
  236. loading: false,
  237. // 加载数据方法 必须为 Promise 对象
  238. loadData: parameter => {
  239. this.disabled = true
  240. this.spinning = true
  241. return stockOutList(Object.assign(parameter, this.queryParam)).then(res => {
  242. let data
  243. if (res.status == 200) {
  244. data = res.data
  245. const no = (data.pageNo - 1) * data.pageSize
  246. for (var i = 0; i < data.list.length; i++) {
  247. data.list[i].no = no + i + 1
  248. }
  249. this.disabled = false
  250. }
  251. this.spinning = false
  252. return data
  253. })
  254. },
  255. openModal: false,
  256. orderSn: undefined,
  257. outBizType: null, // 当前单子类型 SALES销售出库 ALLOCATE调拨出库
  258. rowSelectionInfo: null,
  259. showDetailModal: false
  260. }
  261. },
  262. computed: {
  263. columns () {
  264. const arr = [
  265. { title: '创建时间', dataIndex: 'createDate', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
  266. { title: '审核时间', dataIndex: 'auditTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
  267. { title: '出库单号', scopedSlots: { customRender: 'stockOutNo' }, width: '10%', align: 'center' },
  268. { title: '业务单号', dataIndex: 'outBizNo', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
  269. { title: '备货单号', dataIndex: 'outBizSubNo', width: '10%', align: 'center', customRender: function (text) { return text || '--' } },
  270. { title: '出库类型', dataIndex: 'outBizTypeDictValue', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
  271. { title: '客户名称', dataIndex: 'demanderName', width: '22%', align: 'left', customRender: function (text) { return text || '--' }, ellipsis: true },
  272. // { title: '仓库', dataIndex: 'warehouseName', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true },
  273. { title: '数量', dataIndex: 'productTotalQty', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
  274. // { title: '售价', dataIndex: 'productTotalPrice', width: '6%', align: 'center', customRender: function (text) { return ((text || text == 0) ? text : '--') } },
  275. { title: '出库时间', dataIndex: 'outTime', width: '8%', align: 'center', customRender: function (text) { return text || '--' } },
  276. { title: '出库状态', dataIndex: 'stateDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
  277. { title: '发货状态', dataIndex: 'sendFlagDictValue', width: '7%', align: 'center', customRender: function (text) { return text || '--' } },
  278. { title: '操作', scopedSlots: { customRender: 'action' }, width: '7%', align: 'center' }
  279. ]
  280. if (this.isShowWarehouse) {
  281. arr.splice(6, 0, { title: '仓库', dataIndex: 'warehouseName', width: '10%', align: 'center', customRender: function (text) { return text || '--' }, ellipsis: true })
  282. }
  283. if (this.$hasPermissions('M_outboundOrderList_salesPrice')) { // 售价权限
  284. arr.splice(this.isShowWarehouse ? 8 : 7, 0, { title: '售价', dataIndex: 'productTotalPrice', width: '6%', align: 'right', customRender: text => ((text || text == 0) ? this.toThousands(text) : '--') })
  285. }
  286. return arr
  287. }
  288. },
  289. methods: {
  290. // 表格选中项
  291. rowSelectionFun (obj) {
  292. this.rowSelectionInfo = obj || null
  293. },
  294. detailPermissions (row) {
  295. let state = false
  296. // 根据出库类型和对应功能权限 判断是否有查看详情的权限
  297. if (row.outBizType == 'SALES' && this.$hasPermissions('B_dispatchDetail')) { // 销售出库
  298. state = true
  299. } else if (row.outBizType == 'ALLOCATE' && this.$hasPermissions('M_transferOut_detail')) { // 调拨出库
  300. state = true
  301. }
  302. return state
  303. },
  304. // 时间 change
  305. dateChange (date) {
  306. this.queryParam.beginDate = date[0]
  307. this.queryParam.endDate = date[1]
  308. },
  309. searchTable () {
  310. this.$refs.table.clearSelected() // 清空表格选中项
  311. this.$refs.table.refresh(true)
  312. },
  313. subareaChange (val) {
  314. this.queryParam.subareaArea.subareaSn = val[0] ? val[0] : undefined
  315. this.queryParam.subareaArea.subareaAreaSn = val[1] ? val[1] : undefined
  316. },
  317. // 重置
  318. resetSearchForm () {
  319. this.$refs.rangeDate.resetDate(this.time)
  320. this.queryParam.beginDate = getDate.getThreeMonthDays().starttime
  321. this.queryParam.endDate = getDate.getCurrMonthDays().endtime
  322. this.queryParam.demanderName = ''
  323. this.queryParam.outBizType = undefined
  324. this.queryParam.state = undefined
  325. this.queryParam.stockOutNo = ''
  326. this.queryParam.outBizNo = ''
  327. this.queryParam.subareaArea.subareaSn = undefined
  328. this.queryParam.subareaArea.subareaAreaSn = undefined
  329. this.queryParam.shippingAddrProvinceSn = undefined
  330. this.queryParam.sendFlag = undefined
  331. this.queryParam.warehouseSn = undefined
  332. this.queryParam.outBizSubNo = ''
  333. this.queryParam.bizUserSn = undefined
  334. if (this.advanced) {
  335. this.$refs.subarea.clearData()
  336. }
  337. this.$refs.table.refresh(true)
  338. },
  339. // 详情
  340. handleDetail (row) {
  341. this.outBizType = row.outBizType
  342. // 根据出库类型跳转对应页面
  343. if (row.outBizType == 'SALES' && this.$hasPermissions('B_dispatchDetail')) { // 销售出库
  344. this.orderSn = row.outBizSubSn
  345. this.openModal = true
  346. } else if (row.outBizType == 'ALLOCATE' && this.$hasPermissions('M_transferOut_detail')) { // 调拨出库
  347. this.orderSn = row.outBizSn
  348. this.openModal = true
  349. } else if (row.outBizType == 'CHECK_ORDER_OUT') { // 库存盘点盘亏
  350. }
  351. },
  352. // 关闭弹框
  353. cancleModal () {
  354. this.outBizType = null
  355. this.orderSn = undefined
  356. this.openModal = false
  357. },
  358. // 出库/批量出库
  359. handleOutbound (row) {
  360. const _this = this
  361. let content = ''
  362. let params = []
  363. if (row) { // 单个出库
  364. content = '确认要出库吗?'
  365. params = [{
  366. stockOutSn: row.stockOutSn,
  367. outBizSn: row.outBizSn,
  368. outBizSubSn: row.outBizSubSn,
  369. outBizType: row.outBizType
  370. }]
  371. } else { // 批量出库
  372. content = '确认要批量出库吗?'
  373. const selectKeys = this.rowSelectionInfo ? this.rowSelectionInfo.selectedRowKeys : []
  374. if (!this.rowSelectionInfo || (selectKeys.length < 1)) {
  375. this.$message.warning('请在列表勾选后再进行批量操作!')
  376. return
  377. }
  378. // 判断是否右已出库的
  379. const list = this.rowSelectionInfo ? this.rowSelectionInfo.selectedRows : []
  380. const hasOut = list.find(item => item.state == 'FINISH')
  381. if (hasOut) {
  382. this.$info({
  383. title: '操作提示',
  384. centered: true,
  385. content: '已出库的数据无需再次出库,请重新选择!'
  386. })
  387. return
  388. }
  389. params = []
  390. // 根据审核时间排序
  391. list.sort(function (a, b) {
  392. const t1 = new Date(a.auditTime).getTime()
  393. const t2 = new Date(b.auditTime).getTime()
  394. return t2 - t1
  395. })
  396. list.map(item => {
  397. params.push({
  398. stockOutSn: item.stockOutSn,
  399. outBizSn: item.outBizSn,
  400. outBizSubSn: item.outBizSubSn,
  401. outBizType: item.outBizType
  402. })
  403. })
  404. }
  405. this.$confirm({
  406. title: '提示',
  407. content: content,
  408. centered: true,
  409. onOk () {
  410. if (!row) { // 批量出库
  411. _this.loading = true
  412. }
  413. _this.spinning = true
  414. stockOutOut(params).then(res => {
  415. _this.loading = false
  416. if (res.status == 200) {
  417. if (!row) { // 批量出库
  418. _this.$refs.table.clearSelected() // 清空表格选中项
  419. }
  420. _this.$message.success(res.message)
  421. _this.$refs.table.refresh()
  422. _this.spinning = false
  423. } else {
  424. _this.spinning = false
  425. }
  426. })
  427. }
  428. })
  429. },
  430. // 获取客户信息
  431. async getCustome (data, stockOutSnList) {
  432. this.spinning = true
  433. const customer = await getCustomerInfo({ stockOutSnList: stockOutSnList })
  434. const validRet = await validateStockOut({ stockOutSnList, ...customer.data })
  435. if (validRet.status == 200) {
  436. this.showDetailModal = true
  437. this.$refs.detailModal.setData(data, customer.data)
  438. this.spinning = false
  439. }
  440. },
  441. // 发货/批量发货
  442. handleSendGood (row) {
  443. const _this = this
  444. let stockOutSnList = []
  445. if (row) { // 单发货
  446. stockOutSnList = [row.stockOutSn]
  447. this.getCustome([row], stockOutSnList)
  448. } else { // 批量发货
  449. const list = _this.rowSelectionInfo ? _this.rowSelectionInfo.selectedRows : []
  450. const slen = list.length
  451. if (!_this.rowSelectionInfo || (_this.rowSelectionInfo && slen < 1)) {
  452. _this.$message.warning('请在列表勾选后再进行批量操作!')
  453. return
  454. }
  455. // 根据审核时间排序
  456. list.sort(function (a, b) {
  457. const t1 = new Date(a.auditTime).getTime()
  458. const t2 = new Date(b.auditTime).getTime()
  459. return t2 - t1
  460. })
  461. // 判断是否选择相同的客户
  462. const demanderName = list[0].demanderName
  463. const haseq = list.filter(item => item.demanderName == demanderName)
  464. const hasSend = list.find(item => item.sendFlag == 1)
  465. if (haseq.length == slen && !hasSend) {
  466. // 获取客户信息
  467. list.map(item => {
  468. stockOutSnList.push(item.stockOutSn)
  469. })
  470. _this.getCustome(list, stockOutSnList)
  471. } else {
  472. this.$info({
  473. title: '操作提示',
  474. centered: true,
  475. content: hasSend ? '已发货的数据不能再次发货,请重新选择' : '您所选择的出库单,不属于同一个客户,无法批量发货,请重新选择。只能针对一个客户的出库单进行批量发货。'
  476. })
  477. }
  478. }
  479. },
  480. // 发货成功
  481. sendSuccess () {
  482. this.showDetailModal = false
  483. this.$refs.table.refresh()
  484. this.$refs.table.clearSelected()
  485. },
  486. pageInit () {
  487. const _this = this
  488. this.$nextTick(() => { // 页面渲染完成后的回调
  489. _this.setTableH()
  490. })
  491. this.rowSelectionInfo = null
  492. this.$refs.table.clearSelected()
  493. },
  494. setTableH () {
  495. const tableSearchH = this.$refs.tableSearch.offsetHeight
  496. this.tableHeight = window.innerHeight - tableSearchH - 243
  497. }
  498. },
  499. watch: {
  500. advanced (newValue, oldValue) {
  501. const _this = this
  502. this.$nextTick(() => { // 页面渲染完成后的回调
  503. _this.setTableH()
  504. })
  505. },
  506. '$store.state.app.winHeight' (newValue, oldValue) { // 窗口变更时,需同时更改表格高度
  507. this.setTableH()
  508. }
  509. },
  510. mounted () {
  511. if (!this.$store.state.app.isNewTab) { // 页签刷新时调用
  512. this.pageInit()
  513. this.resetSearchForm()
  514. }
  515. },
  516. activated () {
  517. // 如果是新页签打开,则重置当前页面
  518. if (this.$store.state.app.isNewTab) {
  519. this.pageInit()
  520. this.resetSearchForm()
  521. }
  522. // 仅刷新列表,不重置页面
  523. if (this.$store.state.app.updateList) {
  524. this.pageInit()
  525. this.$refs.table.refresh()
  526. }
  527. },
  528. beforeRouteEnter (to, from, next) {
  529. next(vm => {})
  530. }
  531. }
  532. </script>
  533. <style lang="less">
  534. .outboundOrderList-wrap{
  535. .sTable{
  536. margin-top: 8px;
  537. }
  538. }
  539. </style>