department.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. <template>
  2. <div>
  3. <div class="simple-container">
  4. <simple-form :form="table_form" @search="handleSearch">
  5. <!-- :handle="table_handle"
  6. @add="handleRulesVisible"
  7. @class="handleDrawer('class')"
  8. @download="handleDownload" -->
  9. </simple-form>
  10. <simple-table
  11. :list="table_list"
  12. :config="table_config"
  13. :loading="table_loading"
  14. :handle-row="table_handle_row"
  15. @check="handleCheck"
  16. @edit="handleEdit"
  17. ></simple-table>
  18. <simple-pagination
  19. :page="page"
  20. :total="total"
  21. @change="handleChange"
  22. ></simple-pagination>
  23. </div>
  24. <simple-dialog
  25. fullscreen
  26. title="部门绩效"
  27. :visible="visible"
  28. :reload="reload"
  29. width="1200px"
  30. @cancel="handleCancel('visible')"
  31. >
  32. <template>
  33. <!-- 按钮部分 -->
  34. <div class="flex-justify-between padding-right-20 padding-left-20">
  35. <div>
  36. <el-button type="primary">转派</el-button>
  37. <el-button type="primary" @click="handleApprove">审批</el-button>
  38. <el-button type="primary" @click="handleTrack">流程跟踪</el-button>
  39. <el-button type="primary">导出</el-button>
  40. </div>
  41. <div>
  42. <el-button @click="handleCancel('visible')" type="primary"
  43. >返回</el-button
  44. >
  45. </div>
  46. </div>
  47. <!-- 主体部分 -->
  48. <analysis />
  49. </template>
  50. <template v-slot:footer><div></div></template>
  51. </simple-dialog>
  52. <simple-dialog
  53. title="审批"
  54. :visible="approve_visible"
  55. :reload="reload"
  56. width="500px"
  57. props="approve_visible"
  58. @cancel="handleCancel('approve_visible')"
  59. >
  60. <el-form :model="approveForm" :rules="approverules" ref="approveForm"
  61. ><el-form-item label="审批意见" prop="comments" label-width="80px"
  62. ><el-input
  63. type="textarea"
  64. v-model="approveForm.comments"
  65. autosize /></el-form-item
  66. ></el-form>
  67. <template v-slot:footer
  68. ><div>
  69. <div v-if="type === '1'">
  70. <el-button @click="handleCancel('approve_visible')">结束</el-button>
  71. <el-button @click="handleTurn(type)" type="primary"
  72. >转副总审批</el-button
  73. >
  74. </div>
  75. <div v-else-if="type === '2'">
  76. <el-button @click="handleCancel('approve_visible')">结束</el-button>
  77. <el-button @click="handleCancel('approve_visible')">打回</el-button>
  78. <el-button @click="handleTurn(type)" type="primary"
  79. >转总经理审批</el-button
  80. >
  81. </div>
  82. <div v-else>
  83. <el-button @click="handleCancel('approve_visible')">打回</el-button>
  84. <el-button @click="handleTurn(type)" type="primary">同意</el-button>
  85. </div>
  86. </div>
  87. </template>
  88. </simple-dialog>
  89. <simple-dialog
  90. title="流程跟踪"
  91. :visible="track_visible"
  92. :reload="reload"
  93. width="600px"
  94. props="track_visible"
  95. @confirm="handleConfirm"
  96. @cancel="handleCancel('track_visible')"
  97. >
  98. <el-table :data="trackList" border>
  99. <el-table-column
  100. prop="link"
  101. label="流程环节"
  102. align="center"
  103. width="180"
  104. >
  105. </el-table-column>
  106. <el-table-column
  107. prop="creatperson"
  108. label="处理人"
  109. align="center"
  110. width="180"
  111. >
  112. </el-table-column>
  113. <el-table-column prop="explain" label="审批说明" align="center">
  114. </el-table-column>
  115. </el-table>
  116. </simple-dialog>
  117. </div>
  118. </template>
  119. <script>
  120. import simpleForm from "./components/form.vue";
  121. import simpleTable from "./components/table.vue";
  122. import simplePagination from "./components/pagination.vue";
  123. import simpleDialog from "./components/dialog.vue";
  124. import analysis from "./analysis.vue";
  125. export default {
  126. components: {
  127. simpleForm,
  128. simpleTable,
  129. simplePagination,
  130. simpleDialog,
  131. analysis,
  132. },
  133. data() {
  134. return {
  135. page: 1,
  136. total: 5,
  137. // dialog 参数
  138. visible: false,
  139. approve_visible: false,
  140. track_visible: false,
  141. reload: 0,
  142. // 判断类型
  143. type: "2",
  144. approverules: {
  145. comments: [
  146. {
  147. required: true,
  148. message: "请输入审批意见",
  149. trigger: "blur",
  150. },
  151. ],
  152. },
  153. // 审批意见
  154. approveForm: { comments: "" },
  155. trackList: [
  156. {
  157. link: "发起工单",
  158. creatperson: "XXX 2021-06-08",
  159. explain: "",
  160. },
  161. ],
  162. // 顶部form
  163. table_form: [
  164. {
  165. label: "绩效分类",
  166. props: "department",
  167. type: "select",
  168. dictionary: [
  169. {
  170. label: "GS",
  171. value: "1",
  172. },
  173. {
  174. label: "KPI",
  175. value: "2",
  176. },
  177. ],
  178. },
  179. {
  180. label: "下发月份",
  181. props: "month",
  182. type: "month",
  183. },
  184. {
  185. label: "状态",
  186. props: "service",
  187. type: "select",
  188. dictionary: [
  189. {
  190. label: "待处理",
  191. value: "1",
  192. },
  193. {
  194. label: "待汇总",
  195. value: "2",
  196. },
  197. {
  198. label: "待审批",
  199. value: "3",
  200. },
  201. {
  202. label: "已完成",
  203. value: "4",
  204. },
  205. ],
  206. },
  207. ],
  208. // 列表数据
  209. table_list: [
  210. {
  211. preCata1: "GS",
  212. preCata2: "信息技术中心2021年度部门GS绩效计划",
  213. preCata3: "XXXXXXXXX",
  214. preCata4: "XXXXXXXXX",
  215. preCata5: "2021.02.01",
  216. preCata6: "周钰",
  217. preCata7: "待处理",
  218. },
  219. {
  220. preCata1: "GS",
  221. preCata2: "信息技术中心2021年度部门GS绩效计划",
  222. preCata3: "XXXXXXXXX",
  223. preCata4: "XXXXXXXXX",
  224. preCata5: "2021.02.01",
  225. preCata6: "周钰",
  226. preCata7: "待汇总",
  227. },
  228. {
  229. preCata1: "GS",
  230. preCata2: "信息技术中心2021年度部门GS绩效计划",
  231. preCata3: "XXXXXXXXX",
  232. preCata4: "XXXXXXXXX",
  233. preCata5: "2021.02.01",
  234. preCata6: "周钰",
  235. preCata7: "待审批",
  236. },
  237. {
  238. preCata1: "GS",
  239. preCata2: "信息技术中心2021年度部门GS绩效计划",
  240. preCata3: "XXXXXXXXX",
  241. preCata4: "XXXXXXXXX",
  242. preCata5: "2021.02.01",
  243. preCata6: "周钰",
  244. preCata7: "待处理",
  245. },
  246. {
  247. preCata1: "GS",
  248. preCata2: "信息技术中心2021年度部门GS绩效计划",
  249. preCata3: "XXXXXXXXX",
  250. preCata4: "XXXXXXXXX",
  251. preCata5: "2021.02.01",
  252. preCata6: "周钰",
  253. preCata7: "已完成",
  254. },
  255. {
  256. preCata1: "KPI",
  257. preCata2: "信息技术中心2021年度部门KPI绩效计划",
  258. preCata3: "XXXXXXXXX",
  259. preCata4: "XXXXXXXXX",
  260. preCata5: "2021.02.01",
  261. preCata6: "周钰",
  262. preCata7: "待处理",
  263. },
  264. {
  265. preCata1: "GS",
  266. preCata2: "信息技术中心2021年度部门GS绩效计划",
  267. preCata3: "XXXXXXXXX",
  268. preCata4: "XXXXXXXXX",
  269. preCata5: "2021.02.01",
  270. preCata6: "周钰",
  271. preCata7: "待汇总",
  272. },
  273. {
  274. preCata1: "KPI",
  275. preCata2: "信息技术中心2021年度部门KPI绩效计划",
  276. preCata3: "XXXXXXXXX",
  277. preCata4: "XXXXXXXXX",
  278. preCata5: "2021.02.01",
  279. preCata6: "周钰",
  280. preCata7: "待审批",
  281. },
  282. {
  283. preCata1: "GS",
  284. preCata2: "信息技术中心2021年度部门GS绩效计划",
  285. preCata3: "XXXXXXXXX",
  286. preCata4: "XXXXXXXXX",
  287. preCata5: "2021.02.01",
  288. preCata6: "周钰",
  289. preCata7: "待处理",
  290. },
  291. {
  292. preCata1: "KPI",
  293. preCata2: "信息技术中心2021年度部门KPI绩效计划",
  294. preCata3: "XXXXXXXXX",
  295. preCata4: "XXXXXXXXX",
  296. preCata5: "2021.02.01",
  297. preCata6: "周钰",
  298. preCata7: "已完成",
  299. },
  300. ],
  301. table_loading: false,
  302. // 表格里的操作按钮
  303. table_handle_row: [
  304. {
  305. label: "查看",
  306. props: "check",
  307. },
  308. {
  309. label: "处理",
  310. props: "edit",
  311. visible: {
  312. preCata7: ["待处理", "待审批"],
  313. },
  314. },
  315. ],
  316. // 表头配置
  317. table_config: [
  318. {
  319. label: "绩效分类",
  320. props: "preCata1",
  321. },
  322. {
  323. label: "模板名称",
  324. props: "preCata2",
  325. },
  326. {
  327. label: "填报事由",
  328. props: "preCata3",
  329. },
  330. {
  331. label: "填报注意事项",
  332. props: "preCata4",
  333. },
  334. {
  335. label: "截止时间",
  336. props: "preCata5",
  337. },
  338. {
  339. label: "发起人",
  340. props: "preCata6",
  341. },
  342. {
  343. label: "状态",
  344. props: "preCata7",
  345. },
  346. ],
  347. };
  348. },
  349. methods: {
  350. // 初始化
  351. handleInit() {},
  352. handleChange(page) {
  353. this.page = page;
  354. this.handleInit();
  355. },
  356. // 搜索事件
  357. handleSearch(data) {
  358. console.log(data);
  359. },
  360. // 编辑按钮
  361. handleEdit(row) {
  362. console.log(row, "row");
  363. this.visible = true;
  364. },
  365. handleCheck(row) {
  366. console.log(row, "row");
  367. this.visible = true;
  368. },
  369. handleDelete() {},
  370. // dialog事件
  371. //权限管理事件
  372. handleApprove() {
  373. this.approve_visible = true;
  374. },
  375. handleTrack() {
  376. this.track_visible = true;
  377. },
  378. handleTurn(type) {
  379. this.handleCancel('approve_visible')
  380. console.log(type);
  381. },
  382. handleConfirm(visible) {
  383. console.log(visible);
  384. this.track_visible = visible;
  385. },
  386. // 关闭方法
  387. handleCancel(data) {
  388. switch (data) {
  389. case "visible": {
  390. this.visible = false;
  391. }
  392. case "approve_visible": {
  393. this.approveForm.comments = ''
  394. this.approve_visible = false;
  395. }
  396. case "track_visible": {
  397. this.track_visible = false;
  398. }
  399. }
  400. },
  401. },
  402. };
  403. </script>
  404. <style></style>