index.vue 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. <template>
  2. <basic-container>
  3. <avue-crud :option="option"
  4. :table-loading="loading"
  5. :data="data"
  6. :page.sync="page"
  7. :permission="permissionList"
  8. :before-open="beforeOpen"
  9. v-model="form"
  10. ref="crud"
  11. @row-update="rowUpdate"
  12. @row-save="rowSave"
  13. @row-del="rowDel"
  14. @search-change="searchChange"
  15. @search-reset="searchReset"
  16. @selection-change="selectionChange"
  17. @current-change="currentChange"
  18. @size-change="sizeChange"
  19. @refresh-change="refreshChange"
  20. @on-load="onLoad">
  21. <template slot="menuLeft">
  22. <el-button type="danger"
  23. size="small"
  24. icon="el-icon-delete"
  25. plain
  26. v-if="permission.task_delete"
  27. @click="handleDelete">删 除
  28. </el-button>
  29. </template>
  30. </avue-crud>
  31. </basic-container>
  32. </template>
  33. <script>
  34. import {getList, getDetail, add, update, remove} from "@/api/TaskKanban/task";
  35. import {mapGetters} from "vuex";
  36. import {getPostList} from "@/api/system/post";
  37. import website from "@/config/website";
  38. export default {
  39. data() {
  40. return {
  41. form: {},
  42. query: {},
  43. loading: false,
  44. page: {
  45. pageSize: 10,
  46. currentPage: 1,
  47. total: 0
  48. },
  49. selectionList: [],
  50. option: {
  51. height:'auto',
  52. calcHeight: 30,
  53. tip: false,
  54. searchShow: true,
  55. searchMenuSpan: 6,
  56. border: true,
  57. index: true,
  58. viewBtn: true,
  59. selection: true,
  60. dialogClickModal: false,
  61. column: [
  62. {
  63. label: "负责人",
  64. prop: "responsibleUserId",
  65. search: true,
  66. type:'select',
  67. dicUrl: "/api/blade-user/userList",
  68. props: {
  69. label: "realName",
  70. value: "id"
  71. },
  72. rules: [{
  73. required: true,
  74. message: "请选择负责人",
  75. trigger: "blur"
  76. }]
  77. // hide:true,
  78. },
  79. {
  80. label: "岗位",
  81. prop: "postId",
  82. search: true,
  83. type:'select',
  84. dicData:[],
  85. props: {
  86. label: "postName",
  87. value: "id"
  88. },
  89. rules: [{
  90. required: true,
  91. message: "请选择岗位",
  92. trigger: "blur"
  93. }]
  94. },
  95. {
  96. label: "任务内容",
  97. prop: "tsInfo",
  98. search: true,
  99. rules: [{
  100. required: true,
  101. message: "请输入任务信息",
  102. trigger: "blur"
  103. }]
  104. },
  105. {
  106. label: "要求完成时间",
  107. prop: "completionTime",
  108. // type:'data',
  109. rules: [{
  110. required: true,
  111. message: "请输入要求完成时间",
  112. trigger: "blur"
  113. }]
  114. },
  115. {
  116. label: "是否紧急",
  117. prop: "isUrgency",
  118. rules: [{
  119. required: true,
  120. message: "请输入是否紧急",
  121. trigger: "blur"
  122. }]
  123. },
  124. {
  125. label: "未完成原因",
  126. prop: "unfinishedCause",
  127. rules: [{
  128. required: true,
  129. message: "请输入未完成原因",
  130. trigger: "blur"
  131. }]
  132. },
  133. {
  134. label: "附件",
  135. prop: "accessory",
  136. rules: [{
  137. required: true,
  138. message: "请输入附件",
  139. trigger: "blur"
  140. }]
  141. },
  142. {
  143. label: "评价",
  144. prop: "evaluate",
  145. rules: [{
  146. required: true,
  147. message: "请输入评价",
  148. trigger: "blur"
  149. }]
  150. },
  151. {
  152. label: "单据类型",
  153. prop: "documentType",
  154. rules: [{
  155. required: true,
  156. message: "请输入单据类型",
  157. trigger: "blur"
  158. }]
  159. },
  160. {
  161. label: "备注",
  162. prop: "remarks",
  163. rules: [{
  164. required: true,
  165. message: "请输入备注",
  166. trigger: "blur"
  167. }]
  168. },
  169. {
  170. label: "参考号",
  171. prop: "refno",
  172. rules: [{
  173. required: true,
  174. message: "请输入参考号",
  175. trigger: "blur"
  176. }]
  177. },
  178. {
  179. label: "状态",
  180. prop: "type",
  181. display:false,
  182. },
  183. {
  184. label: "创建人",
  185. prop: "createUser",
  186. display:false,
  187. },
  188. {
  189. label: "下发时间",
  190. prop: "createTime",
  191. search: true,
  192. type: "date",
  193. format: "yyyy-MM-dd",
  194. valueFormat: "yyyy-MM-dd",
  195. unlinkPanels: true,
  196. searchRange: true,
  197. display:false,
  198. },
  199. {
  200. label: "修改人",
  201. prop: "updateUser",
  202. display:false,
  203. },
  204. {
  205. label: "修改时间",
  206. prop: "updateTime",
  207. display:false,
  208. },
  209. {
  210. label: "是否已删除(0 否 1是)",
  211. prop: "isDeleted",
  212. display:false,
  213. },
  214. ]
  215. },
  216. data: []
  217. };
  218. },
  219. created() {
  220. // this.getPostListfun(website.tenantId)
  221. },
  222. computed: {
  223. ...mapGetters(["permission"]),
  224. permissionList() {
  225. return {
  226. // addBtn: this.vaildData(this.permission.task_add, false),
  227. viewBtn: this.vaildData(this.permission.task_view, false),
  228. delBtn: this.vaildData(this.permission.task_delete, false),
  229. editBtn: this.vaildData(this.permission.task_edit, false)
  230. };
  231. },
  232. ids() {
  233. let ids = [];
  234. this.selectionList.forEach(ele => {
  235. ids.push(ele.id);
  236. });
  237. return ids.join(",");
  238. }
  239. },
  240. methods: {
  241. getPostListfun(tenantId){
  242. getPostList(tenantId).then(res => {
  243. console.log(res,244)
  244. const column = this.findObject(this.option.column, "postId");
  245. column.dicData = res.data.data;
  246. });
  247. },
  248. rowSave(row, done, loading) {
  249. add(row).then(() => {
  250. this.onLoad(this.page);
  251. this.$message({
  252. type: "success",
  253. message: "操作成功!"
  254. });
  255. done();
  256. }, error => {
  257. loading();
  258. window.console.log(error);
  259. });
  260. },
  261. rowUpdate(row, index, done, loading) {
  262. update(row).then(() => {
  263. this.onLoad(this.page);
  264. this.$message({
  265. type: "success",
  266. message: "操作成功!"
  267. });
  268. done();
  269. }, error => {
  270. loading();
  271. console.log(error);
  272. });
  273. },
  274. rowDel(row) {
  275. this.$confirm("确定将选择数据删除?", {
  276. confirmButtonText: "确定",
  277. cancelButtonText: "取消",
  278. type: "warning"
  279. })
  280. .then(() => {
  281. return remove(row.id);
  282. })
  283. .then(() => {
  284. this.onLoad(this.page);
  285. this.$message({
  286. type: "success",
  287. message: "操作成功!"
  288. });
  289. });
  290. },
  291. handleDelete() {
  292. if (this.selectionList.length === 0) {
  293. this.$message.warning("请选择至少一条数据");
  294. return;
  295. }
  296. this.$confirm("确定将选择数据删除?", {
  297. confirmButtonText: "确定",
  298. cancelButtonText: "取消",
  299. type: "warning"
  300. })
  301. .then(() => {
  302. return remove(this.ids);
  303. })
  304. .then(() => {
  305. this.onLoad(this.page);
  306. this.$message({
  307. type: "success",
  308. message: "操作成功!"
  309. });
  310. this.$refs.crud.toggleSelection();
  311. });
  312. },
  313. beforeOpen(done, type) {
  314. if (["edit", "view"].includes(type)) {
  315. getDetail(this.form.id).then(res => {
  316. this.form = res.data.data;
  317. });
  318. }
  319. done();
  320. },
  321. searchReset() {
  322. this.query = {};
  323. this.onLoad(this.page);
  324. },
  325. searchChange(params, done) {
  326. this.query = params;
  327. this.page.currentPage = 1;
  328. this.onLoad(this.page, params);
  329. done();
  330. },
  331. selectionChange(list) {
  332. this.selectionList = list;
  333. },
  334. selectionClear() {
  335. this.selectionList = [];
  336. this.$refs.crud.toggleSelection();
  337. },
  338. currentChange(currentPage){
  339. this.page.currentPage = currentPage;
  340. },
  341. sizeChange(pageSize){
  342. this.page.pageSize = pageSize;
  343. },
  344. refreshChange() {
  345. this.onLoad(this.page, this.query);
  346. },
  347. onLoad(page, params = {}) {
  348. // this.loading = true;
  349. // getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
  350. // const data = res.data.data;
  351. // this.page.total = data.total;
  352. // this.data = data.records;
  353. // this.loading = false;
  354. // this.selectionClear();
  355. // });
  356. }
  357. }
  358. };
  359. </script>
  360. <style>
  361. </style>