orderInvoice.vue 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. <template>
  2. <!-- 发票管理 -->
  3. <div class="order-invoice">
  4. <!-- 搜索栏 -->
  5. <div class="search-bar">
  6. <el-form :inline="true" class="search-form" ref="searchForm" :model="searchForm" label-width="auto" size="small">
  7. <div class="input-row">
  8. <el-form-item prop="orderNumber" :label="$t('order.number')+':'">
  9. <el-input v-model="searchForm.orderNumber" type="text" clearable :placeholder="$t('order.number')"></el-input>
  10. </el-form-item>
  11. <el-form-item prop="invoiceState" label="发票状态:">
  12. <template>
  13. <el-select
  14. v-model="searchForm.invoiceState"
  15. clearable
  16. placeholder="发票状态"
  17. >
  18. <el-option
  19. v-for="item in invoiceStates"
  20. :key="item.value"
  21. :label="item.label"
  22. :value="item.value"
  23. ></el-option>
  24. </el-select>
  25. </template>
  26. </el-form-item>
  27. <el-form-item prop="orderStatus" :label="$t('order.status')+':'">
  28. <template>
  29. <el-select
  30. v-model="searchForm.orderStatus"
  31. clearable
  32. :placeholder="this.$i18n.t('order.status')"
  33. >
  34. <el-option
  35. v-for="item in orderStatus"
  36. :key="item.value"
  37. :label="item.label"
  38. :value="item.value"
  39. ></el-option>
  40. </el-select>
  41. </template>
  42. </el-form-item>
  43. <el-form-item>
  44. <div class="default-btn primary-btn" @click="searchChange(true)">{{ $t('crud.searchBtn') }}</div>
  45. <div class="default-btn" @click="resetForm()">重置</div>
  46. </el-form-item>
  47. </div>
  48. </el-form>
  49. </div>
  50. <!-- 搜索栏end -->
  51. <div class="main-container">
  52. <!-- 表格 -->
  53. <div class="table-con invoice-table">
  54. <el-table
  55. ref="InvoiceTable"
  56. :data="dataList"
  57. header-cell-class-name="table-header"
  58. style="width: 100%"
  59. >
  60. <!-- 订单id -->
  61. <el-table-column :label="$t('order.number')" prop="orderNumber">
  62. <template slot-scope="{row}">
  63. <span>{{ row.orderNumber }}</span>
  64. </template>
  65. </el-table-column>
  66. <!-- 抬头类型 1.单位 2.个人 -->
  67. <el-table-column label="发票抬头" prop="headerType">
  68. <template slot-scope="{row}">
  69. <span>{{ ['',$t('order.unit'),$t('order.personal')][row.headerType] }}</span>
  70. </template>
  71. </el-table-column>
  72. <!-- 发票状态 1.申请中 2.已开票 -->
  73. <el-table-column label="发票状态" prop="invoiceState">
  74. <template slot-scope="{row}">
  75. <span>{{ ['',$t('order.applicationInProgress'),$t('order.invoiceIssued'),$t('order.fail')][row.invoiceState] }}</span>
  76. </template>
  77. </el-table-column>
  78. <!-- 订单状态 -->
  79. <el-table-column
  80. :label="$t('order.status')"
  81. prop="orderStatus"
  82. >
  83. <template slot-scope="scope">
  84. <span v-if="scope.row.orderStatus === 1">{{$t('order.pendingPayment')}}</span>
  85. <span v-if="scope.row.orderStatus === 2">{{$t('order.toBeShipped')}}</span>
  86. <span v-if="scope.row.orderStatus === 3">{{$t('order.pendingReceipt')}}</span>
  87. <span v-if="scope.row.orderStatus === 4">{{$t('order.toBeEvaluated')}}</span>
  88. <span v-if="scope.row.orderStatus === 5">{{$t('order.success')}}</span>
  89. <span v-if="scope.row.orderStatus === 6">{{$t('order.fail')}}</span>
  90. <span v-if="scope.row.orderStatus === 7">{{$t('group.waitGroup')}}</span>
  91. </template>>
  92. </el-table-column>
  93. <!-- 申请时间 -->
  94. <el-table-column :label="$t('order.applicationTime')" prop="applicationTime">
  95. <template slot-scope="{row}">
  96. <span>{{ row.applicationTime }}</span>
  97. </template>
  98. </el-table-column>
  99. <!-- 上传时间 -->
  100. <el-table-column label="上传时间" prop="uploadTime">
  101. <template slot-scope="{row}">
  102. <span>{{ row.uploadTime }}</span>
  103. </template>
  104. </el-table-column>
  105. <el-table-column
  106. :label="$t('crud.menu')"
  107. fixed="right"
  108. align="center"
  109. width="200"
  110. >
  111. <template slot-scope="{row}">
  112. <el-button type="text" @click="viewOrderHandle(row.orderNumber, row.shopId, row.status, )">
  113. {{ $t('order.viewOrder') }}
  114. </el-button>
  115. <el-button v-if="isAuth('order:orderInvoice:update')" type="text" @click="addOrUpdateHandle(row.orderInvoiceId)">
  116. {{ $t('text.editBtn') }}
  117. </el-button>
  118. </template>
  119. </el-table-column>
  120. </el-table>
  121. </div>
  122. <!-- 分页 -->
  123. <el-pagination
  124. @size-change="handleSizeChange"
  125. @current-change="handleCurrentChange"
  126. :current-page="page.currentPage"
  127. :page-sizes="[10, 20, 50, 100]"
  128. :page-size="page.pageSize"
  129. :total="page.total"
  130. layout="total, sizes, prev, pager, next, jumper"
  131. ></el-pagination>
  132. </div>
  133. <!-- 弹窗, 新增 / 修改 -->
  134. <add-or-update v-if="addOrUpdateVisible"
  135. ref="addOrUpdate"
  136. @refreshDataList="refreshChange"></add-or-update>
  137. <order-info ref="orderInfo"></order-info>
  138. </div>
  139. </template>
  140. <script>
  141. import AddOrUpdate from './orderInvoice-add-or-update'
  142. import OrderInfo from "./orderInfo";
  143. export default {
  144. components: {
  145. OrderInfo,
  146. AddOrUpdate
  147. },
  148. data () {
  149. return {
  150. theData: null, // 保存上次点击查询的请求条件
  151. dataList: [],
  152. page: {
  153. total: 0, // 总页数
  154. currentPage: 1, // 当前页数
  155. pageSize: 10 // 每页显示多少条
  156. },
  157. searchForm: {},
  158. invoiceStates: [
  159. {
  160. label: this.$i18n.t('order.applicationInProgress'),
  161. value: 1
  162. },
  163. {
  164. label: this.$i18n.t('order.invoiceIssued'),
  165. value: 2
  166. },
  167. {
  168. label: this.$i18n.t('order.fail'),
  169. value: 3
  170. }
  171. ],
  172. orderStatus: [
  173. {
  174. label: "待发货",
  175. value: 2
  176. },
  177. {
  178. label: "待收货",
  179. value: 3
  180. },
  181. {
  182. label: "成功",
  183. value: 5
  184. },
  185. {
  186. label: "失败",
  187. value: 6
  188. }
  189. ],
  190. // 编辑弹窗显隐
  191. addOrUpdateVisible: false
  192. }
  193. },
  194. mounted () {
  195. this.getDataList()
  196. },
  197. methods: {
  198. // 获取数据列表
  199. getDataList (page, newData = false) {
  200. this.dataListLoading = true
  201. if (newData || !this.theData) {
  202. this.theData = JSON.parse(JSON.stringify(this.searchForm))
  203. }
  204. this.$http({
  205. url: this.$http.adornUrl('/m/orderInvoice/page'),
  206. method: 'get',
  207. params: this.$http.adornParams(
  208. Object.assign(
  209. {
  210. current: page ? page.currentPage : this.page.currentPage,
  211. size: page ? page.pageSize : this.page.pageSize
  212. },
  213. this.theData
  214. )
  215. )
  216. }).then(({ data }) => {
  217. this.dataList = data.records
  218. this.page.total = data.total
  219. })
  220. },
  221. // 条件查询
  222. searchChange (newData = false) {
  223. this.page.currentPage = 1
  224. this.getDataList(this.page, newData)
  225. },
  226. /**
  227. * 查看订单
  228. */
  229. viewOrderHandle (orderNumber, shopId, status) {
  230. this.$refs.orderInfo.init({
  231. orderNumber: orderNumber,
  232. shopId: shopId,
  233. status: status
  234. })
  235. /*this.$router.push({
  236. path: '/order-orderInfo',
  237. query: {
  238. orderNumber: id
  239. }
  240. })*/
  241. },
  242. // 新增 / 修改
  243. addOrUpdateHandle (id) {
  244. this.addOrUpdateVisible = true
  245. this.$nextTick(() => {
  246. this.$refs.addOrUpdate.init(id)
  247. })
  248. },
  249. handleSizeChange (val) {
  250. this.page.pageSize = val
  251. this.getDataList(this.page)
  252. },
  253. handleCurrentChange (val) {
  254. this.page.currentPage = val
  255. this.getDataList(this.page)
  256. },
  257. // 重置
  258. resetForm () {
  259. this.searchForm = {}
  260. },
  261. // 刷新回调用
  262. refreshChange () {
  263. this.page.current = 1
  264. this.getDataList(this.page)
  265. }
  266. }
  267. }
  268. </script>
  269. <style lang="scss" scoped>
  270. </style>