【前端】智能库房综合管理系统前端项目
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.

226 lines
7.3 KiB

  1. <template>
  2. <div class="to-lend">
  3. <headSlot>
  4. <el-button icon="el-icon-document-add" size="mini" @click="handleRecord">登记</el-button>
  5. <el-button icon="el-icon-document-remove" size="mini" :disabled="selections.length ? false : true " @click="handleRemove">移出</el-button>
  6. <!-- <button @click="getTableData">测试按钮</button> -->
  7. </headSlot>
  8. <!--表格渲染-->
  9. <el-table
  10. ref="table"
  11. style="min-width: 100%"
  12. height="calc(100vh - 355px)"
  13. :data="tableData"
  14. :cell-class-name="cell"
  15. :default-sort="{ prop: 'isOperationTime', order: 'descending' }"
  16. @selection-change="selectionChangeHandler"
  17. @row-click="clickRowHandler"
  18. @row-dblclick="handleDbClick"
  19. >
  20. <el-table-column type="selection" width="55" />
  21. <el-table-column type="index" label="序号" width="55" />
  22. <el-table-column prop="isCategoryName" label="所属门类" min-width="85" />
  23. <el-table-column prop="isArchivesID" label="档号" :show-overflow-tooltip="true" min-width="120" />
  24. <el-table-column prop="isTitleName" :show-overflow-tooltip="true" label="题名" min-width="120" />
  25. <el-table-column prop="isFieldName" label="盒名称" min-width="85" />
  26. <el-table-column prop="isStoragePath" label="存放位置" :show-overflow-tooltip="true" min-width="120" />
  27. <el-table-column prop="isLendStatus" label="借阅状态" min-width="60">
  28. <template slot-scope="scope">
  29. <!-- 已借 / 待借 -->
  30. <span class="cell-lend">{{ scope.row.isLendStatus }}</span>
  31. </template>
  32. </el-table-column>
  33. <el-table-column sortable prop="isOperationTime" label="操作时间" min-width="85" />
  34. </el-table>
  35. <!-- 借阅登记模态框 -->
  36. <el-dialog
  37. append-to-body
  38. :close-on-click-modal="false"
  39. :visible.sync="recordFormVisible"
  40. title="借阅登记"
  41. >
  42. <span class="dialog-right-top" />
  43. <span class="dialog-left-bottom" />
  44. <div class="setting-dialog">
  45. <el-form
  46. ref="form"
  47. :model="recordForm"
  48. :rules="rules"
  49. size="small"
  50. label-width="80px"
  51. >
  52. <el-form-item label="借阅人" prop="borrowerName">
  53. <el-input v-model="recordForm.borrowerName" style="width: 420px" />
  54. </el-form-item>
  55. <el-form-item label="电话号码" prop="tel">
  56. <el-input v-model="recordForm.tel" style="width: 420px" />
  57. </el-form-item>
  58. <el-form-item label="所属部门" prop="department" class="down-select">
  59. <el-select
  60. v-model="recordForm.departmentDatas"
  61. style="width: 420px"
  62. multiple
  63. placeholder="请选择"
  64. >
  65. <el-option
  66. v-for="item in recordForm.departmentDatas"
  67. :key="item.name"
  68. :disabled="level !== 1 && item.level <= level"
  69. :label="item.name"
  70. :value="item.id"
  71. />
  72. </el-select>
  73. </el-form-item>
  74. <el-form-item label="证件类型" prop="idType" class="down-select">
  75. <el-select
  76. v-model="recordForm.idType"
  77. style="width: 420px"
  78. multiple
  79. placeholder="请选择"
  80. >
  81. <el-option
  82. v-for="item in recordForm.idType"
  83. :key="item.name"
  84. :disabled="level !== 1 && item.level <= level"
  85. :label="item.name"
  86. :value="item.id"
  87. />
  88. </el-select>
  89. </el-form-item>
  90. <el-form-item label="证件号码" prop="idNumber">
  91. <el-input v-model="recordForm.idNumber" style="width: 420px" />
  92. </el-form-item>
  93. <el-form-item label="借阅时间" prop="lendDate">
  94. <date-range-picker style="width: 420px" />
  95. </el-form-item>
  96. <el-form-item label="借阅目的" prop="borrowGoal" class="down-select">
  97. <el-select
  98. v-model="recordForm.borrowGoal"
  99. style="width: 420px"
  100. multiple
  101. placeholder="请选择"
  102. >
  103. <el-option
  104. v-for="item in recordForm.borrowGoal"
  105. :key="item.name"
  106. :disabled="level !== 1 && item.level <= level"
  107. :label="item.name"
  108. :value="item.id"
  109. />
  110. </el-select>
  111. </el-form-item>
  112. </el-form>
  113. <div slot="footer" class="dialog-footer">
  114. <el-button @click="recordFormVisible = false">取消</el-button>
  115. <el-button
  116. type="primary"
  117. @click="handleRecordConfirm"
  118. >确认</el-button>
  119. </div>
  120. </div>
  121. </el-dialog>
  122. <!-- 移出确认弹框 -->
  123. <delConfirm ref="delConfirmDom" :list-name="listName" />
  124. <!-- 档案详情 -->
  125. <archiveDetail ref="archiveDetailDom" />
  126. <!-- 分页 -->
  127. <pagination />
  128. </div>
  129. </template>
  130. <script>
  131. import pagination from '@crud/Pagination'
  132. // import crudOperation from '@crud/CRUD.operation'
  133. import headSlot from '../components/headSlot.vue'
  134. import DateRangePicker from '@/components/DateRangePicker'
  135. import CRUD, { presenter } from '@crud/crud'
  136. import delConfirm from '../components/delConfirm.vue'
  137. import archiveDetail from './module/archiveDetail.vue'
  138. import data1 from '../data1.json'
  139. export default {
  140. components: { headSlot, DateRangePicker, pagination, delConfirm, archiveDetail },
  141. mixins: [presenter()],
  142. cruds() {
  143. return CRUD({
  144. // title: '岗位',
  145. // url: 'api/job',
  146. // crudMethod: { ...crudJob },
  147. optShow: {
  148. add: false,
  149. edit: false,
  150. del: false,
  151. download: false,
  152. group: false
  153. }
  154. })
  155. },
  156. data() {
  157. return {
  158. tableData: [],
  159. selections: [],
  160. listName: '借出列表',
  161. recordFormVisible: false,
  162. recordForm: {
  163. borrowerName: '',
  164. tel: '',
  165. departmentDatas: [],
  166. idType: [],
  167. idNumber: '',
  168. lendDate: '',
  169. borrowGoal: []
  170. },
  171. rules: {
  172. borrowerName: [
  173. { required: true, message: '请输入姓名', trigger: 'blur' }
  174. ],
  175. tel: [{ required: true, message: '请输入电话号码', trigger: 'blur' }]
  176. }
  177. }
  178. },
  179. created() {
  180. this.getData()
  181. },
  182. methods: {
  183. // 获取数据
  184. getData() {
  185. this.tableData = data1.rows
  186. },
  187. handleRecord() {
  188. this.recordFormVisible = true
  189. },
  190. // 移出
  191. handleRemove() {
  192. this.$refs.delConfirmDom.deleteVisible = true
  193. },
  194. // 档案详情
  195. handleDbClick(row) {
  196. this.$refs.archiveDetailDom.detailVisible = true
  197. this.$refs.archiveDetailDom.rowData = row
  198. },
  199. selectionChangeHandler(val) {
  200. this.selections = val
  201. },
  202. clickRowHandler(row) {
  203. this.$refs.table.toggleRowSelection(row)
  204. },
  205. handleRecordConfirm() {
  206. this.recordFormVisible = false
  207. },
  208. cell({ row, columnIndex }) {
  209. if (row.isLendStatus === '待借' && columnIndex === 7) {
  210. return 'no-lend'
  211. } else if (row.isLendStatus === '已借' && columnIndex === 7) {
  212. return 'have-lend'
  213. } else if (row.isLendStatus === '' && columnIndex === 7) {
  214. return 'other-lend'
  215. }
  216. }
  217. }
  218. }
  219. </script>
  220. <style lang="scss" scoped>
  221. @import '~@/assets/styles/lend-manage.scss';
  222. </style>