c53c8a5779551d949867f9083dcf9788f14aec0c.svn-base 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <!-- -->
  2. <template>
  3. <div>
  4. <el-dialog
  5. title="会议议程"
  6. :before-close="closeDialog"
  7. :visible.sync="dialogFormVisible"
  8. width='50%'>
  9. <el-container>
  10. <el-main>
  11. <el-row style="margin-bottom: 10px;text-align: right;">
  12. <el-button icon="el-icon-plus" type="primary" @click="addAgendaEvent" >添加</el-button>
  13. </el-row>
  14. <el-table
  15. :data="tableDataMeet"
  16. :height="tableHight"
  17. stripe
  18. border
  19. style="width: 100%">
  20. <el-table-column
  21. prop="type"
  22. label="议程类型"
  23. :formatter="typeFormatter"
  24. show-overflow-tooltip
  25. width="90">
  26. </el-table-column>
  27. <el-table-column
  28. prop="title"
  29. label="会议议程内容"
  30. show-overflow-tooltip
  31. width="90">
  32. </el-table-column>
  33. <el-table-column
  34. prop="stTm"
  35. label="开始时间"
  36. show-overflow-tooltip>
  37. </el-table-column>
  38. <el-table-column
  39. prop="enTm"
  40. label="结束时间"
  41. show-overflow-tooltip>
  42. </el-table-column>
  43. <el-table-column
  44. prop="keySpeaker"
  45. label="主讲人"
  46. show-overflow-tooltip
  47. width="90">
  48. </el-table-column>
  49. <el-table-column
  50. prop="compere"
  51. label="主持人"
  52. show-overflow-tooltip
  53. width="90">
  54. </el-table-column>
  55. <el-table-column
  56. width="130"
  57. label="操作">
  58. <template slot-scope="scope">
  59. <el-button
  60. style="color:#409eff"
  61. size="mini"
  62. type="text"
  63. icon="el-icon-edit"
  64. @click.stop="editData(scope.$index, scope.row)">编辑</el-button>
  65. <el-button
  66. style="color:#e6a23c"
  67. size="mini"
  68. type="text"
  69. icon="el-icon-delete"
  70. @click="handleDelete(scope.$index, scope.row)">删除</el-button>
  71. </template>
  72. </el-table-column>
  73. </el-table>
  74. <el-table
  75. style="margin-top:15px;width: 100%"
  76. :data="tableDataMeal"
  77. :height="tableHight"
  78. stripe
  79. border>
  80. <el-table-column
  81. prop="type"
  82. label="议程类型"
  83. :formatter="typeFormatter"
  84. show-overflow-tooltip
  85. width="90">
  86. </el-table-column>
  87. <el-table-column
  88. prop="title"
  89. label="餐别"
  90. show-overflow-tooltip
  91. width="90">
  92. </el-table-column>
  93. <el-table-column
  94. prop="stTm"
  95. label="用餐开始时间"
  96. show-overflow-tooltip>
  97. </el-table-column>
  98. <el-table-column
  99. prop="location"
  100. label="用餐地点"
  101. show-overflow-tooltip>
  102. </el-table-column>
  103. <el-table-column
  104. width="130"
  105. label="操作">
  106. <template slot-scope="scope">
  107. <el-button
  108. style="color:#409eff"
  109. size="mini"
  110. type="text"
  111. icon="el-icon-edit"
  112. @click.stop="editData(scope.$index, scope.row)">编辑</el-button>
  113. <el-button
  114. style="color:#e6a23c"
  115. size="mini"
  116. type="text"
  117. icon="el-icon-delete"
  118. @click="handleDelete(scope.$index, scope.row)">删除</el-button>
  119. </template>
  120. </el-table-column>
  121. </el-table>
  122. </el-main>
  123. </el-container>
  124. </el-dialog>
  125. <AddAgendaForm
  126. v-if="addAgenda"
  127. :meetingInfoRow="meetingInfoRow"
  128. :editFormDataAdgenda="editFormDataAdgenda"
  129. @cancelHandler="cancelHandlerAgenda"
  130. @addSuccessStatus="addSuccessStatusEventAdgenda"
  131. ></AddAgendaForm>
  132. </div>
  133. </template>
  134. <script>
  135. //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
  136. //例如:import 《组件名称》 from '《组件路径》';
  137. import { addMeetingSginData,getAgendaTableDataLists,deleteAgendaData } from "../../api/meetingAPI.js";
  138. export default {
  139. //import引入的组件需要注入到对象中才能使用
  140. components: {
  141. AddAgendaForm: resolve => {
  142. require(["./AddAgendaForm.vue"], resolve);
  143. },
  144. },
  145. props: ['meetingInfoRow'],
  146. data() {
  147. //这里存放数据
  148. return {
  149. dialogFormVisible:true,
  150. addAgenda:false,
  151. tableDataMeet:[],
  152. tableDataMeal:[],
  153. tableHight:window.innerHeight - 679,
  154. };
  155. },
  156. //监听属性 类似于data概念
  157. computed: {
  158. },
  159. //监控data中的数据变化
  160. watch: {},
  161. //方法集合
  162. methods: {
  163. typeFormatter:function(row, column){
  164. return row.type == "1" ? '会议':'用餐'
  165. },
  166. closeDialog() {
  167. let _self = this;
  168. _self.$emit("cancelHandler");
  169. },
  170. addAgendaEvent(){
  171. this.editFormDataAdgenda = {};
  172. this.addAgenda = true
  173. },
  174. cancelHandlerAgenda(){
  175. this.addAgenda = false;
  176. this.tableDataMeet = [];
  177. this.tableDataMeal = [];
  178. this.getAgendaTableData();
  179. },
  180. //添加人员后冒上来的事件
  181. addSuccessStatusEventAdgenda(item){
  182. if(item.success = true){
  183. this.cancelHandlerAgenda();
  184. this.$message.success('操作成功!');
  185. }else{
  186. this.$message.error(res.message);
  187. }
  188. },
  189. getAgendaTableData(){
  190. var _self = this;
  191. let obj = {
  192. // "pageNum":_self.pageNum,
  193. // "pageSize":_self.pageSize,
  194. // "title":_self.formInline.title,
  195. // "stTm":_self.formInline.stTm,
  196. // "state":"1",
  197. "meetId":_self.meetingInfoRow.id,
  198. }
  199. getAgendaTableDataLists(obj).then(response => {
  200. // _self.tableData = response.data;
  201. response.data.forEach(ele => {
  202. if(ele.type == '1'){
  203. _self.tableDataMeet.push(ele);
  204. }else{
  205. _self.tableDataMeal.push(ele);
  206. }
  207. })
  208. console.log(_self.tableData);
  209. });
  210. },
  211. handleDeleteEvent(index,row){
  212. var _self = this;
  213. deleteAgendaData(row.id).then(response => {
  214. if(response.success == true){
  215. _self.$message.success('删除成功!');
  216. _self.tableDataMeet = [];
  217. _self.tableDataMeal = [];
  218. _self.getAgendaTableData();
  219. }else{
  220. _self.$message.error(item.message);
  221. }
  222. });
  223. },
  224. handleDelete(index,row) {
  225. var _self = this;
  226. this.$confirm('此操作将删除该议程, 是否继续?', '提示', {
  227. confirmButtonText: '确定',
  228. cancelButtonText: '取消',
  229. type: 'warning'
  230. }).then(() => {
  231. this.handleDeleteEvent(index,row);
  232. }).catch(() => {
  233. this.$message({
  234. type: 'info',
  235. message: '已取消删除'
  236. });
  237. });
  238. },
  239. editData(index,row){
  240. this.editFormDataAdgenda = row;
  241. this.addAgenda = true;
  242. },
  243. },
  244. //生命周期 - 创建完成(可以访问当前this实例)
  245. created() {
  246. },
  247. //生命周期 - 挂载完成(可以访问DOM元素)
  248. mounted() {
  249. this.tableDataMeet = [];
  250. this.tableDataMeal = [];
  251. this.getAgendaTableData();
  252. },
  253. beforeCreate() {}, //生命周期 - 创建之前
  254. beforeMount() {}, //生命周期 - 挂载之前
  255. beforeUpdate() {}, //生命周期 - 更新之前
  256. updated() {}, //生命周期 - 更新之后
  257. beforeDestroy() {}, //生命周期 - 销毁之前
  258. destroyed() {}, //生命周期 - 销毁完成
  259. activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
  260. }
  261. </script>
  262. <style>
  263. </style>