图书馆综合管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

179 lines
6.9 KiB

7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
  1. <template>
  2. <div class="app-container venue-container">
  3. <div class="venue-left">
  4. <div class="head-container">
  5. <div class="head-search">
  6. <!-- 搜索 -->
  7. <el-input v-model="query.collectionName" clearable size="small" placeholder="输入馆藏名称搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
  8. <rrOperation />
  9. </div>
  10. <crudOperation :permission="permission">
  11. <template v-slot:middle>
  12. <el-button slot="reference" size="mini" :loading="crud.delAllLoading" :disabled="crud.selections.length === 0" @click="toDelete(crud.selections)">
  13. <i class="iconfont icon-shanchu" />
  14. 删除
  15. </el-button>
  16. </template>
  17. <template v-slot:right>
  18. <el-button :loading="crud.downloadLoading" size="mini" :disabled="crud.selections.length === 0">
  19. <i class="iconfont icon-paixu" />
  20. 排序
  21. </el-button>
  22. </template>
  23. </crudOperation>
  24. </div>
  25. <el-table
  26. ref="table"
  27. v-loading="crud.loading"
  28. :data="crud.data"
  29. style="width: 100%;"
  30. height="590"
  31. @selection-change="crud.selectionChangeHandler"
  32. >
  33. <el-table-column type="selection" align="center" width="55" />
  34. <el-table-column prop="collectionName" label="馆藏地名称" />
  35. <el-table-column prop="collectionFloor" label="楼层" />
  36. <el-table-column prop="collectionExplain" label="说明">
  37. <template slot-scope="scope">
  38. <div>{{ scope.row.collectionExplain ? scope.row.collectionExplain : '-' }}</div>
  39. </template>
  40. </el-table-column>
  41. <el-table-column prop="createTime" label="创建时间" min-width="180">
  42. <template slot-scope="scope">
  43. <div>{{ scope.row.createTime | parseTime }}</div>
  44. </template>
  45. </el-table-column>
  46. </el-table>
  47. <!--分页组件-->
  48. <pagination v-if="crud.data.length!==0" />
  49. </div>
  50. <div class="venue-right">
  51. <div class="container-right tab-content">
  52. <span class="right-top-line" />
  53. <span class="left-bottom-line" />
  54. <ul class="tab-nav">
  55. <li class="active-tab-nav">楼层预览<i /></li>
  56. <!-- 最右侧装饰img -->
  57. <span class="tab-right-img" />
  58. </ul>
  59. <div class="venue-preview">
  60. <img src="~@/assets/images/system/default-img.jpg" alt="">
  61. </div>
  62. </div>
  63. </div>
  64. <!-- form -->
  65. <el-dialog append-to-body :close-on-click-modal="false" :modal-append-to-body="false" :before-close="crud.cancelCU" :visible="crud.status.cu > 0" :title="crud.status.title">
  66. <span class="dialog-right-top" />
  67. <span class="dialog-left-bottom" />
  68. <div class="setting-dialog">
  69. <el-form ref="form" :rules="rules" :model="form" size="small" label-width="100px">
  70. <el-form-item label="楼层名称" prop="collectionFloor">
  71. <el-input v-model="form.collectionFloor" style="width: 580px;" />
  72. </el-form-item>
  73. <el-form-item label="描述信息" prop="collectionExplain">
  74. <el-input v-model="form.collectionExplain" placeholder="请输入" type="textarea" rows="3" style="width: 580px;" />
  75. </el-form-item>
  76. <div>
  77. <el-form-item class="book-cover-upload" label="楼层地图" prop="cover">
  78. <el-input v-model="form.cover" placeholder="请上传" :readonly="true" />
  79. <!-- <p :class="['input-style', form.cover === null ? 'error-box' :'']">{{ form.cover }}</p> -->
  80. <!-- <span v-if="form.cover === null" class="error-tip">请上传图书封面</span> -->
  81. <div class="upload-btn">
  82. <input id="upFile" type="file" name="upFile" @change="changeFile($event)">
  83. <el-button size="small" type="primary"><i class="iconfont icon-shangchuan" />上传</el-button>
  84. </div>
  85. </el-form-item>
  86. </div>
  87. </el-form>
  88. <div slot="footer" class="dialog-footer">
  89. <el-button type="text" @click="crud.cancelCU">取消</el-button>
  90. <el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">保存</el-button>
  91. </div>
  92. </div>
  93. </el-dialog>
  94. </div>
  95. </template>
  96. <script>
  97. import crudBookBasice from '@/api/bookBasice/index'
  98. import CRUD, { presenter, header, form, crud } from '@crud/crud'
  99. import crudOperation from '@crud/CRUD.operation'
  100. import rrOperation from '@crud/RR.operation'
  101. import pagination from '@crud/Pagination'
  102. const defaultForm = { id: null, fondsId: null, collectionFloor: null, collectionName: null, collectionCode: null, collectionExplain: null }
  103. export default {
  104. name: 'Floor',
  105. components: { crudOperation, rrOperation, pagination },
  106. cruds() {
  107. return CRUD({ title: '楼层', url: 'api/bookBasice/initCollectionLocationList', crudMethod: { ...crudBookBasice }, sort: [], optShow: {
  108. add: true,
  109. edit: true,
  110. del: false,
  111. download: false,
  112. group: false,
  113. reset: true
  114. }})
  115. },
  116. mixins: [presenter(), header(), form(defaultForm), crud()],
  117. data() {
  118. return {
  119. permission: {
  120. add: ['admin', 'floor:add'],
  121. edit: ['admin', 'floor:edit'],
  122. del: ['admin', 'floor:del']
  123. },
  124. rules: {
  125. collectionFloor: [
  126. { required: true, message: '所在楼层不可为空', trigger: 'blur' }
  127. ],
  128. collectionName: [
  129. { required: true, message: '馆藏名不可为空', trigger: 'blur' }
  130. ]
  131. }
  132. }
  133. },
  134. method: {
  135. [CRUD.HOOK.beforeRefresh]() {
  136. },
  137. // 提交前的验证
  138. [CRUD.HOOK.afterValidateCU](crud) {
  139. crud.form.fondsId = this.user.fonds.id
  140. console.log(crud.form)
  141. return true
  142. },
  143. clickRowHandler(row) {
  144. this.$refs.table.clearSelection()
  145. this.$refs.table.toggleRowSelection(row)
  146. },
  147. toDelete(datas) {
  148. this.$confirm('此操作将删除当前所选机构<span>你是否还要继续?</span>', '提示', {
  149. confirmButtonText: '继续',
  150. cancelButtonText: '取消',
  151. type: 'warning',
  152. dangerouslyUseHTMLString: true
  153. }).then(() => {
  154. this.crud.delAllLoading = true
  155. const ids = []
  156. datas.forEach(val => {
  157. ids.push(val.id)
  158. })
  159. console.log(ids)
  160. crudBookBasice.del(ids).then(() => {
  161. this.$message({ message: '删除成功', type: 'success', offset: 8 })
  162. this.crud.delAllLoading = false
  163. this.crud.refresh()
  164. }).catch(err => {
  165. this.crud.delAllLoading = false
  166. console.log(err)
  167. })
  168. }).catch(() => {
  169. this.crud.delAllLoading = false
  170. })
  171. }
  172. }
  173. }
  174. </script>
  175. <style scoped>
  176. </style>