Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

inventoryDetails.vue 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <template>
  2. <div>
  3. <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom:10px;">
  4. <div>
  5. <el-input
  6. size="small"
  7. style="width: 200px;margin-left:10px;"
  8. class="filter-item"
  9. v-model.trim="searchKey"
  10. placeholder="请输入耗材名称"
  11. />
  12. <el-button
  13. size="small"
  14. class="filter-item"
  15. type="primary"
  16. icon="el-icon-search"
  17. @click="search">搜索</el-button>
  18. </div>
  19. <!-- <div>
  20. <el-button size="small" type="primary" @click="print">打印</el-button>
  21. <el-button size="small" type="primary" @click="exportList">导出</el-button>
  22. </div> -->
  23. </div>
  24. <el-table :data="tableData" border :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }" @selection-change="changePrice" >
  25. <el-table-column type="selection" width="55" align="center"> </el-table-column>
  26. <el-table-column prop="date" label="耗材名称" align="center">
  27. <template slot-scope="scope">
  28. {{scope.row.good_name}}
  29. </template>
  30. </el-table-column>
  31. <el-table-column prop="name" label="规格" width="200" align="center">
  32. <template slot-scope="scope">
  33. {{scope.row.specification_name}}
  34. </template>
  35. </el-table-column>
  36. <el-table-column prop="name" label="有效日期" width="200" align="center">
  37. <template slot-scope="scope">
  38. {{getTime(scope.row.product_date)}}
  39. </template>
  40. </el-table-column>
  41. <el-table-column prop="name" label="盘点前数量" width="100" align="center">
  42. <template slot-scope="scope">
  43. <span>{{scope.row.stock_count?scope.row.stock_count:0}}</span>
  44. </template>
  45. </el-table-column>
  46. <el-table-column prop="name" label="盘点后数量" width="100" align="center">
  47. <template slot-scope="scope">
  48. <span>{{scope.row.last_stock_count?scope.row.last_stock_count:0}}</span>
  49. </template>
  50. </el-table-column>
  51. <el-table-column prop="name" label="盘盈类型" width="100" align="center">
  52. <template slot-scope="scope">
  53. <span v-if="scope.row.count > scope.row.last_stock_count">盘盈</span>
  54. <span v-if="scope.row.count < scope.row.last_stock_count">盘亏</span>
  55. </template>
  56. </el-table-column>
  57. <el-table-column prop="name" label="盘点原因" width="230" align="center">
  58. <template slot-scope="scope">
  59. <span v-if="scope.row.inventory_type ==0">默认</span>
  60. <span v-if="scope.row.inventory_type ==1">到期退货</span>
  61. <span v-if="scope.row.inventory_type ==2">异常退货</span>
  62. <span v-if="scope.row.inventory_type ==3">退货</span>
  63. <span v-if="scope.row.inventory_type ==4">人为损坏</span>
  64. <span v-if="scope.row.inventory_type ==5">不计入报损分析</span>
  65. </template>
  66. </el-table-column>
  67. </el-table>
  68. <el-pagination
  69. @size-change="handleSizeChange"
  70. @current-change="handleCurrentChange"
  71. :page-sizes="[10, 20, 40, 100]"
  72. :page-size="10"
  73. background
  74. style="margin-top:20px;text-align: right"
  75. layout="total, sizes, prev, pager, next, jumper"
  76. :total="total"
  77. >
  78. </el-pagination>
  79. </div>
  80. </template>
  81. <script>
  82. import { uParseTime } from '@/utils/tools'
  83. import { getInventoryDetailList } from "@/api/stock"
  84. export default {
  85. name: "inventory",
  86. data() {
  87. return{
  88. searchKey:'',
  89. value1:'',
  90. value2:'',
  91. tableData: [],
  92. dialogVisible:false,
  93. form: {
  94. name: '',
  95. },
  96. total: 0,
  97. limit:10,
  98. page:1,
  99. ids:"",
  100. damageList:[],
  101. }
  102. },
  103. methods:{
  104. search(){
  105. this.getlist()
  106. },
  107. print(){
  108. if(this.ids == ""){
  109. this.$message.error("请勾选打印数据")
  110. return false
  111. }
  112. this.$router.push({path:'/stock/inventoryDetailPrint?ids='+this.ids})
  113. },
  114. handleSizeChange(val){
  115. this.limit = val
  116. this.getlist()
  117. },
  118. handleCurrentChange(val){
  119. this.page = val
  120. this.getlist()
  121. },
  122. getlist(){
  123. var params = {
  124. keyword:this.searchKey,
  125. limit:this.limit,
  126. page:this.page,
  127. }
  128. this.tableData = []
  129. getInventoryDetailList(params).then(response=>{
  130. if(response.data.state == 1){
  131. var list = response.data.data.list
  132. console.log("盘点列表23223232323",list)
  133. this.tableData = list
  134. this.total = response.data.data.total
  135. }
  136. })
  137. },
  138. changePrice(val){
  139. var arr = []
  140. for(let i=0;i<val.length;i++){
  141. arr.push(val[i].id)
  142. }
  143. var str = arr.join(",")
  144. console.log("str",str)
  145. this.ids = str
  146. },
  147. exportList(){
  148. import('@/vendor/Export2Excel').then(excel => {
  149. const tHeader = ['耗材名称', '规格', '单位','零售价','当前库存','盘点数','亏损金额']
  150. const filterVal = ['good_name', 'specification_name', 'warehousing_unit','packing_price','total','count','']
  151. const data = this.formatJson(filterVal, this.tableData)
  152. excel.export_json_to_excel({
  153. header: tHeader,
  154. data,
  155. filename: '耗材盘点明细'
  156. })
  157. this.downloadLoading = false
  158. })
  159. },
  160. formatJson(filterVal, jsonData) {
  161. return jsonData.map(v => filterVal.map(j => v[j]));
  162. },
  163. getTime(val) {
  164. if(val < 0){
  165. return ""
  166. }
  167. if(val == ""){
  168. return ""
  169. }else {
  170. return uParseTime(val, '{y}-{m}-{d}')
  171. }
  172. },
  173. },
  174. created(){
  175. this.getlist()
  176. },
  177. };
  178. </script>