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

250 lines
8.0 KiB

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