MyMission.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. <template>
  2. <!-- 我的任务弹窗 fullscreen -->
  3. <el-dialog
  4. custom-class="myMission"
  5. title="我的任务"
  6. :visible.sync="dialogVisible"
  7. width="70%"
  8. height="60%"
  9. :before-close="handleClose"
  10. >
  11. <template slot="title">
  12. <div class="dialogTitle">
  13. <div class="dialogTitleIcon"></div>
  14. 我的任务
  15. </div>
  16. </template>
  17. <el-form :inline="true" ref="myTaskForm" :model="formInline">
  18. <el-form-item label="任务类型">
  19. <el-select
  20. size="mini"
  21. v-model="formInline.taskType"
  22. placeholder="任务类型"
  23. >
  24. <el-option-group
  25. v-for="group in taskTypeOptions"
  26. :key="group.label"
  27. :label="group.label"
  28. >
  29. <el-option
  30. v-for="item in group.options"
  31. :key="item.value"
  32. :label="item.label"
  33. :value="item.value"
  34. >
  35. </el-option>
  36. </el-option-group>
  37. </el-select>
  38. </el-form-item>
  39. <el-form-item label="关联项目">
  40. <el-select
  41. size="mini"
  42. v-model="formInline.associatedItems"
  43. placeholder="关联项目"
  44. >
  45. <el-option
  46. v-for="item in associatedItemsOptions"
  47. :key="item.value"
  48. :label="item.label"
  49. :value="item.value"
  50. >
  51. </el-option>
  52. </el-select>
  53. </el-form-item>
  54. <el-form-item label="审计状态">
  55. <el-select
  56. size="mini"
  57. v-model="formInline.auditStatus"
  58. placeholder="审计状态"
  59. >
  60. <el-option label="已审核" value="ReviewedAndApproved"></el-option>
  61. <el-option label="未审核" value="NotReviewed"></el-option>
  62. </el-select>
  63. </el-form-item>
  64. <el-form-item style="float: right">
  65. <el-button type="primary" @click="onSubmit">查询</el-button>
  66. <el-button @click="resetForm()">重置</el-button>
  67. </el-form-item>
  68. </el-form>
  69. <el-table
  70. :data="tableData"
  71. style="width: 100%"
  72. height="calc(80vh - 400px)"
  73. stripe
  74. @click="ToView"
  75. >
  76. <el-table-column type="index" width="50"> </el-table-column>
  77. <el-table-column prop="taskId" label="任务编号"> </el-table-column>
  78. <el-table-column prop="taskName" label="任务名称"> </el-table-column>
  79. <el-table-column prop="createDate" label="创建时间"> </el-table-column>
  80. <el-table-column prop="state" label="状态">
  81. <template slot-scope="scope">
  82. <el-tag
  83. :type="scope.row.state === '已审核' ? 'success' : 'info'"
  84. disable-transitions
  85. >{{ scope.row.state }}</el-tag
  86. >
  87. </template>
  88. </el-table-column>
  89. <el-table-column prop="taskType" label="任务类型"> </el-table-column>
  90. </el-table>
  91. <span slot="footer" class="dialog-footer">
  92. <Pagination :paginationData="paginationData" />
  93. </span>
  94. </el-dialog>
  95. </template>
  96. <script>
  97. /**
  98. * 底部菜单(我的任务)组件
  99. * @author: LiuMengxiang
  100. * @Date: 2022年11月21-25日
  101. */
  102. import Pagination from "../Pagination.vue";
  103. export default {
  104. name: "CreateTaskForm",
  105. components: { Pagination },
  106. data() {
  107. return {
  108. // 我的任务弹窗显示状态
  109. dialogVisible: false,
  110. // 查询条件
  111. formInline: {
  112. taskType: "",
  113. associatedItems: "",
  114. auditStatus: "",
  115. },
  116. // 分页组件(根据后台返回结果赋值)
  117. paginationData: {
  118. pageSize: 0,
  119. pagerCount: 5,
  120. pageSizes: [5, 10, 20, 50],
  121. total: 200,
  122. currentPage: 1,
  123. currentChange: (val) => {
  124. this.handleCurrentChange(val);
  125. },
  126. handleSizeChange: (val) => {
  127. this.handleSizeChange(val);
  128. },
  129. },
  130. // 任务类型options
  131. taskTypeOptions: [
  132. {
  133. label: "全部类型",
  134. options: [
  135. {
  136. value: "all",
  137. label: "全部类型",
  138. },
  139. ],
  140. },
  141. {
  142. label: "基本类型",
  143. options: [
  144. {
  145. value: "landResources",
  146. label: "土地资源",
  147. },
  148. {
  149. value: "ecologicalResources",
  150. label: "生态资源",
  151. },
  152. {
  153. value: "forestLandResources",
  154. label: "林地资源",
  155. },
  156. {
  157. value: "waterResources",
  158. label: "水资源",
  159. },
  160. {
  161. value: "townAreaTopic",
  162. label: "镇域专题",
  163. },
  164. ],
  165. },
  166. {
  167. label: "土地资源",
  168. options: [
  169. {
  170. value: "lr_bfm",
  171. label: "基本农田监控",
  172. },
  173. {
  174. value: "lr_soclr",
  175. label: "建设用地减量化监管",
  176. },
  177. ],
  178. },
  179. ],
  180. // 关联项目options
  181. associatedItemsOptions: [
  182. {
  183. value: "1",
  184. label: "项目1",
  185. },
  186. {
  187. value: "2",
  188. label: "项目2",
  189. },
  190. ],
  191. // 我的任务form表单
  192. tableData: [
  193. {
  194. createDate: "2016-05-03",
  195. taskName: "任务名称",
  196. taskId: "任务编号",
  197. state: "已审核",
  198. taskType: "土地资源",
  199. },
  200. {
  201. createDate: "2016-05-03",
  202. taskName: "任务名称",
  203. taskId: "任务编号",
  204. state: "未审核",
  205. taskType: "土地资源",
  206. },
  207. {
  208. createDate: "2016-05-03",
  209. taskName: "任务名称",
  210. taskId: "任务编号",
  211. state: "已审核",
  212. taskType: "土地资源",
  213. },
  214. {
  215. createDate: "2016-05-03",
  216. taskName: "任务名称",
  217. taskId: "任务编号",
  218. state: "已审核",
  219. taskType: "土地资源",
  220. },
  221. {
  222. createDate: "2016-05-03",
  223. taskName: "任务名称",
  224. taskId: "任务编号",
  225. state: "已审核",
  226. taskType: "土地资源",
  227. },
  228. ],
  229. };
  230. },
  231. mounted() {
  232. // 我的任务事件监听
  233. this.$bus.$on("wdrw", () => {
  234. this.changeShowBottomMenusStatus();
  235. });
  236. // 点击底部菜单SVG,且有弹窗打开时触发(弹窗关闭询问)
  237. this.$bus.$on("handleClose", () => {
  238. if (this.dialogVisible) {
  239. this.handleClose();
  240. }
  241. });
  242. },
  243. destroy() {
  244. // 当容器销毁时,需要停止监听该事件
  245. this.$bus.$off("wdrw");
  246. },
  247. props: [],
  248. methods: {
  249. // 切换条数
  250. handleSizeChange(val) {
  251. console.log(`每页 ${val} 条`);
  252. this.onSubmit();
  253. },
  254. // 切换页
  255. handleCurrentChange(val) {
  256. console.log(`当前页: ${val}`);
  257. this.paginationData.currentPage = val;
  258. this.onSubmit();
  259. },
  260. // 查询事件
  261. onSubmit() {
  262. console.log("submit!");
  263. },
  264. // 查询条件重置
  265. resetForm() {
  266. this.formInline = {
  267. taskType: "",
  268. associatedItems: "",
  269. auditStatus: "",
  270. };
  271. this.onSubmit();
  272. },
  273. // 单击table item
  274. ToView(val) {
  275. console.log(val, "click MyMission table item");
  276. },
  277. // 当用户点击svg底座时,切换底部菜单显示隐藏状态。
  278. changeShowBottomMenusStatus() {
  279. if (this.dialogVisible) {
  280. this.handleClose();
  281. } else {
  282. // 打开弹窗
  283. this.dialogVisible = !this.dialogVisible;
  284. this.$emit("changeShowBottomMenusStatus", false);
  285. }
  286. },
  287. // 弹窗关闭询问
  288. handleClose() {
  289. if (this.dialogVisible) {
  290. this.$confirm("确认关闭?")
  291. .then((_) => {
  292. this.clearDialogVisible();
  293. })
  294. .catch((_) => {});
  295. }
  296. },
  297. // 我的任务取消
  298. clearDialogVisible() {
  299. // 关闭弹窗
  300. this.dialogVisible = false;
  301. // 修改父级菜单变量(弹窗显示状态和显示底部菜单)
  302. this.$emit("changeShowBottomMenusStatus", true);
  303. },
  304. },
  305. watch: {},
  306. };
  307. </script>