option.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <template>
  2. <div style="padding: 0 30px">
  3. <el-form ref="form" :model="form" :rules="rules" label-width="90px">
  4. <el-form-item label="档案归属" prop="documentType">
  5. <el-input v-model="form.deptId" v-show="false"></el-input>
  6. <el-input title="选择归属部门" v-model="form.archivesType" placeholder="选择归属部门" prop="avtiveSend" :disabled="true">
  7. <template slot="append">
  8. <el-button
  9. type="primary"
  10. icon="el-icon-plus"
  11. size="mini"
  12. @click="handleSelectDept">
  13. 选择部门
  14. </el-button>
  15. </template>
  16. </el-input>
  17. </el-form-item>
  18. <el-form-item label="档案名称" prop="archivesName">
  19. <el-input v-model="form.archivesName" placeholder="请输入档案名称" />
  20. </el-form-item>
  21. <el-form-item label="档案actkey" prop="actkey">
  22. <el-input v-model="form.actkey" placeholder="请输入档案名称" />
  23. </el-form-item>
  24. <el-form-item label="档案id" prop="taskid">
  25. <el-input v-model="form.taskId" placeholder="请输入档案名称" />
  26. </el-form-item>
  27. <el-form-item label="流程名称" prop="taskName">
  28. <el-input v-model="form.taskName" placeholder="请输入流程名称" />
  29. </el-form-item>
  30. <el-button type="primary" @click="submit()">归档</el-button>
  31. </el-form>
  32. <el-dialog :title="tctitle" :visible.sync="deptOpen" width="20%" append-to-body style="size: 30px">
  33. <el-tree
  34. :data="deptOptions"
  35. :expand-on-click-node="false"
  36. :filter-node-method="filterNode"
  37. ref="tree"
  38. default-expand-all
  39. @node-click="handleNodeClick"
  40. empty-text="加载中,请稍后"
  41. :props="defaultProps"
  42. ></el-tree>
  43. <div slot="footer" class="dialog-footer">
  44. <el-button type="primary" @click="getDeptAll">确 定</el-button>
  45. <el-button @click="cancel">取 消</el-button>
  46. </div>
  47. </el-dialog>
  48. </div>
  49. </template>
  50. <script>
  51. import { addArchives } from "@/api/system/archives/archives.js";
  52. import { listDept } from "@/api/system/archives/column.js";
  53. import Treeselect from "@riophae/vue-treeselect";
  54. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  55. export default {
  56. name: 'option',
  57. components: {
  58. Treeselect
  59. },
  60. props:['optiontitle','optionactkey','optionid','optionName'],
  61. data(){
  62. return{
  63. depid: [],
  64. depname: [],
  65. deptOpen:false,
  66. // 部门树选项
  67. deptOptions: [],
  68. defaultProps: {
  69. children: "children",
  70. label: "deptName"
  71. },
  72. doc:[],
  73. options:[],
  74. // 表单参数
  75. form: {},
  76. // 表单校验
  77. rules: {
  78. }
  79. }
  80. },
  81. created() {
  82. this.getList();
  83. this.option();
  84. },
  85. methods:{
  86. // 筛选节点
  87. filterNode(value, data) {
  88. if (!value) return true;
  89. return data.leabel.indexOf(value) !== -1;
  90. },
  91. // 节点单击事件
  92. handleNodeClick(data) {
  93. console.log(data)
  94. if(data.children.length == 0 ){
  95. this.form.deptId = data.deptId;
  96. this.form.parentId = data.parentId;
  97. this.form.archivesType = data.deptName;
  98. }else{
  99. return false
  100. }
  101. },
  102. option(){
  103. this.form.archivesName = this.optiontitle;
  104. this.form.actkey = this.optionactkey;
  105. this.form.taskId = this.optionid;
  106. this.form.taskName=this.optionName;
  107. },
  108. /** 查询文档列表 */
  109. getList() {
  110. this.loading = true;
  111. listDept(this.queryParams).then(response => {
  112. console.log(response.data)
  113. this.deptOptions = this.handleTree(response.data, "deptId");
  114. console.log(this.deptOptions)
  115. // this.doc = this.handleTree(response.data, "deptId");
  116. this.loading = false;
  117. });
  118. },
  119. submit(){
  120. addArchives(this.form).then(response => {
  121. this.msgSuccess("成功");
  122. });
  123. },
  124. getDeptAll(){
  125. this.deptOpen = false;
  126. },
  127. cancel() {
  128. this.$emit('getList');
  129. this.contentOpen = false;
  130. this.deptOpen = false;
  131. this.reset();
  132. },
  133. // 表单重置
  134. reset() {
  135. this.form = {
  136. everyone: undefined,
  137. };
  138. this.resetForm("form");
  139. },
  140. handleSelectDept() {
  141. this.deptOpen = true;
  142. },
  143. }
  144. }
  145. </script>
  146. <style scoped>
  147. </style>