index.js 7.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. import ajax from '../../util/ajax'
  2. import api from '../../util/api'
  3. export default {
  4. namespaced: true,
  5. state: {
  6. page: 0,
  7. pagenum: 0,
  8. list: [
  9. {
  10. BookId: '1',
  11. BookTypeId: '1',
  12. BookName: '遮天',
  13. BookBarcode: '123456',
  14. BookImg: 'http://jingcheng-resourceplat.oss-cn-shanghai.aliyuncs.com/upload/135230460466.png',
  15. Author: '辰东',
  16. Publisher: '南京出版社',
  17. Price: 90.00,
  18. InStock: 10,
  19. LeftNum: 2,
  20. BorrowNum: 5,
  21. BorrowDays: 7,
  22. BookDescription: '《遮天》是一部古典仙侠类型的网络小说',
  23. CaseId: '1',
  24. OrgId: '1',
  25. CreateDate: new Date(),
  26. IsRecommend: 1,
  27. Status: 1,
  28. },
  29. ],
  30. detail: {},
  31. type: {
  32. page: 0,
  33. pagenum: 0,
  34. list: [
  35. {
  36. BookTypeId: '1',
  37. BookTypeName: '测试',
  38. BookTypeImg: 'http://jingcheng-resourceplat.oss-cn-shanghai.aliyuncs.com/upload/135230460466.png',
  39. CaseId: '1',
  40. OrgId: '1',
  41. Nums: 100,
  42. Status: 1,
  43. CreateDate: new Date()
  44. }
  45. ],
  46. detail: {
  47. BookTypeId: '',
  48. BookTypeName: '',
  49. BookTypeImg: '',
  50. CaseId: '',
  51. OrgId: '1',
  52. Status: 1,
  53. CreateDate: new Date()
  54. },
  55. },
  56. stock: {
  57. page: 0,
  58. pagenum: 0,
  59. list: [
  60. {
  61. RecordId: '1',
  62. BookId: '1',
  63. InStockTotal: 20,
  64. InStockBefore: 8,
  65. InStockAfter: 10,
  66. ChangeReason: '补库存',
  67. ChangeDate: new Date(),
  68. ChangeUser: '1',
  69. ChangeUserName: 'admin',
  70. CaseId: '1',
  71. OrgId: '1',
  72. }
  73. ],
  74. detail: {},
  75. },
  76. borrow: {
  77. list: [],
  78. history: {},
  79. },
  80. bookReturn: {
  81. list: [],
  82. },
  83. },
  84. mutations: {
  85. mergeTypeDetail (state, payload) {
  86. state.type.detail = payload || {}
  87. if (payload && payload.BookTypeId) {
  88. state.type.list = (state.type.list || []).map(x => x.BookTypeId === payload.BookTypeId ? payload : x)
  89. }
  90. },
  91. mergeBookDetail (state, payload) {
  92. state.detail = payload || {}
  93. if (payload && payload.BookId) {
  94. state.list = (state.list || []).map(x => x.BookId === payload.BookId ? payload : x)
  95. }
  96. },
  97. setBorrowList (state, payload) { // 更新借阅记录
  98. state.borrow.list = payload
  99. },
  100. setTypeList (state, payload) {
  101. const { list, pagenum } = payload || {}
  102. if (!!list) { // eslint-disable-line
  103. state.type.list = list
  104. state.type.pagenum = pagenum
  105. } else {
  106. state.type.list = []
  107. state.type.pagenum = 0
  108. }
  109. },
  110. deleteTypeList (state, payload = {}) {
  111. state.type.list = state.type.list.filter(x => x.BookTypeId !== payload.BookTypeId)
  112. },
  113. setBookList (state, payload) {
  114. const { list, pagenum } = payload || {}
  115. if (!!list) { // eslint-disable-line
  116. state.list = list
  117. state.pagenum = pagenum
  118. } else {
  119. state.list = []
  120. state.pagenum = 0
  121. }
  122. },
  123. deleteBookList (state, payload = {}) {
  124. state.list = state.list.filter(x => x.BookId !== payload.BookId)
  125. },
  126. },
  127. actions: {
  128. cancelBorrow ({ commit }, payload) { // 取消预约
  129. return new Promise((resolve, reject) => {
  130. ajax(api.borrow.cancelBorrow.url, {
  131. method: api.borrow.cancelBorrow.method,
  132. urlData: { id: payload }
  133. }).then(res => {
  134. resolve(res)
  135. }).catch(({ message }) => reject(message))
  136. })
  137. },
  138. getBorrowList ({ commit }, payload) { // 获取借阅记录
  139. return new Promise((resolve, reject) => {
  140. ajax(api.borrow.getBorrowList.url, {
  141. method: api.borrow.getBorrowList.method,
  142. queryData: {
  143. ...payload,
  144. }
  145. }).then(res => {
  146. commit('setBorrowList', res.list)
  147. resolve(res)
  148. }).catch(({ message }) => reject(message))
  149. })
  150. },
  151. getTypeList ({ commit }, payload) {
  152. return new Promise((resolve, reject) => {
  153. ajax({
  154. ...api.bookType.list,
  155. queryData: payload,
  156. }).then((x) => {
  157. commit('setTypeList', x)
  158. resolve(x)
  159. })
  160. .catch(({ message }) => reject(message))
  161. })
  162. },
  163. getTypeDetail ({ commit }, payload = {}) {
  164. return new Promise((resolve, reject) => {
  165. ajax({
  166. ...api.bookType.detail,
  167. urlData: { ...payload },
  168. }).then((x) => {
  169. commit('mergeTypeDetail', x)
  170. resolve(x)
  171. })
  172. .catch(({ message }) => reject(message))
  173. })
  174. },
  175. updateTypeDetail ({ commit }, payload = {}) {
  176. return new Promise((resolve, reject) => {
  177. const id = payload.BookTypeId
  178. payload.CreateDate = ''
  179. const apiConf = !id ? api.bookType.save : api.bookType.update
  180. ajax({
  181. ...apiConf,
  182. data: payload,
  183. }).then((x) => {
  184. commit('mergeTypeDetail', x)
  185. resolve(x)
  186. })
  187. .catch(({ message }) => reject(message))
  188. })
  189. },
  190. deleteType ({ commit }, payload) {
  191. return new Promise((resolve, reject) => {
  192. ajax({
  193. ...api.bookType.delete,
  194. urlData: { id: payload.BookTypeId },
  195. }).then(() => {
  196. commit('deleteTypeList', payload)
  197. resolve()
  198. })
  199. .catch(({ message }) => reject(message))
  200. })
  201. },
  202. getBookList ({ commit }, payload) {
  203. return new Promise((resolve, reject) => {
  204. ajax({
  205. ...api.book.list,
  206. queryData: payload,
  207. }).then((x) => {
  208. console.log(x)
  209. commit('setBookList', x)
  210. resolve(x)
  211. })
  212. .catch((err) => console.log(err) && reject(err.message))
  213. })
  214. },
  215. getBookDetail ({ commit }, payload = {}) {
  216. return new Promise((resolve, reject) => {
  217. ajax({
  218. ...api.book.detail,
  219. urlData: { ...payload },
  220. }).then((x) => {
  221. commit('mergeBookDetail', x)
  222. resolve(x)
  223. })
  224. .catch(({ message }) => reject(message))
  225. })
  226. },
  227. updateBookDetail ({ commit }, payload = {}) {
  228. return new Promise((resolve, reject) => {
  229. const id = payload.BookId
  230. const apiConf = !id ? api.book.save : api.book.update
  231. ajax({
  232. ...apiConf,
  233. data: payload,
  234. }).then((x) => {
  235. commit('mergeBookDetail', x)
  236. resolve(x)
  237. })
  238. .catch(({ message }) => reject(message))
  239. })
  240. },
  241. deleteBook ({ commit }, payload = {}) {
  242. return new Promise((resolve, reject) => {
  243. ajax({
  244. ...api.book.delete,
  245. urlData: { id: payload.BookId },
  246. }).then((x) => {
  247. commit('deleteBookList', payload)
  248. resolve(x)
  249. })
  250. .catch(({ message }) => reject(message))
  251. })
  252. },
  253. getStockList ({ commit }, payload) {
  254. return new Promise((resolve, reject) => {
  255. })
  256. },
  257. batchImport(_, payload) {
  258. return new Promise((resolve, reject) => {
  259. ajax({
  260. ...api.book.import,
  261. data: payload,
  262. }).then(() => {
  263. resolve()
  264. })
  265. .catch(({ message }) => reject(message))
  266. })
  267. }
  268. },
  269. }