调解系统PC端服务

selectMediator.vue 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <template>
  2. <div>
  3. <el-dialog title="预约时间/调解员" :visible="mediatorVisable" v-if="mediatorVisable" @close="cancel" center :distroy-on-close="true">
  4. <div>
  5. <div>
  6. <div style="margin-bottom: 20px;">预约调解员</div>
  7. </div>
  8. <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%"
  9. @selection-change="handleSelectionChange">
  10. <el-table-column type="selection" width="55">
  11. </el-table-column>
  12. <el-table-column prop="mediatorName" label="调解员名称">
  13. </el-table-column>
  14. <el-table-column prop="specialty" label="专业">
  15. </el-table-column>
  16. <el-table-column prop="todoAmount" label="待办数量">
  17. </el-table-column>
  18. <el-table-column prop="completeAmount" label="已办数量">
  19. </el-table-column>
  20. </el-table>
  21. <div>
  22. <div style="margin-top: 20px;margin-bottom: 20px;">预约时间</div>
  23. <el-form label-position="right" label-width="80px" :model="formLabelAlign">
  24. <el-form-item label="时间1">
  25. <el-date-picker v-model="formLabelAlign.time[0]" type="datetime" placeholder="选择日期时间">
  26. </el-date-picker>
  27. </el-form-item>
  28. <!-- 后期需要三个时间 -->
  29. <!-- <el-form-item label="时间2">
  30. <el-date-picker v-model="formLabelAlign.time[1]" type="datetime" placeholder="选择日期时间">
  31. </el-date-picker>
  32. </el-form-item>
  33. <el-form-item label="时间3">
  34. <el-date-picker v-model="formLabelAlign.time[2]" type="datetime" placeholder="选择日期时间">
  35. </el-date-picker>
  36. </el-form-item> -->
  37. </el-form>
  38. </div>
  39. </div>
  40. <div slot="footer" class="dialog-footer">
  41. <el-button @click="cancel" class="endbutton1" round><span>取 消</span></el-button>
  42. <el-button @click="submitMediator" class="endbutton1" type="primary" round><span>确 认</span></el-button>
  43. </div>
  44. </el-dialog>
  45. </div>
  46. </template>
  47. <script>
  48. import { Message } from 'element-ui'
  49. import { listMediator,updateBooking } from '@/api/caseManagement/caseManagement.js'
  50. import { createRoomId } from '@/api/metting/metting.js'
  51. import moment from "moment";
  52. export default {
  53. props: ["mediatorVisable", "mediatorData","queryParams"],
  54. data() {
  55. return {
  56. tableData: [],
  57. multipleSelection: [],
  58. formLabelAlign: {
  59. time:[]
  60. },
  61. formTimeArr:[],
  62. mediatorArr:[]
  63. };
  64. },
  65. watch: {
  66. mediatorVisable(val) {
  67. if (val) {
  68. // this.this.multipleSelection = [];
  69. // this.formLabelAlign.time = [];
  70. this.mediatorArr = [];
  71. this.formTimeArr = [];
  72. listMediator().then(res=>{
  73. this.tableData = res.data;
  74. })
  75. }
  76. }
  77. },
  78. methods: {
  79. cancel() {
  80. this.$emit("cancelMediator");
  81. },
  82. /**提交选择结果*/
  83. async submitMediator() {
  84. if (this.multipleSelection.length > 1) {
  85. Message.error('最多选择一名调解员');
  86. return
  87. }else if(this.multipleSelection.length < 1){
  88. Message.error('至少选择一名调解员');
  89. return
  90. }
  91. if(this.formLabelAlign.time.length < 1){
  92. Message.error('至少选择一个时间');
  93. return
  94. }
  95. this.formLabelAlign.time.forEach(item=>{
  96. item = moment(
  97. item
  98. ).format("YYYY-MM-DD HH:mm:ss");
  99. this.formTimeArr.push(item)
  100. })
  101. this.multipleSelection.forEach(item=>{
  102. this.mediatorArr.push({
  103. userId:item.mediatorId,
  104. userName:item.mediatorName
  105. })
  106. })
  107. // await this.createRoomIdFn({
  108. // caseId:this.mediatorData.id
  109. // })
  110. await this.updateBookingFn({
  111. id:this.mediatorData.id,
  112. caseFlowId:this.mediatorData.caseFlowId,
  113. userList:this.mediatorArr,
  114. herDates:this.formTimeArr
  115. })
  116. },
  117. async updateBookingFn(data){
  118. await updateBooking(data).then(res=>{
  119. this.$modal.msgSuccess("成功");
  120. this.$emit("cancelMediator");
  121. this.$emit('getList', this.queryParams);
  122. })
  123. },
  124. // 生成会议房间号
  125. async createRoomIdFn(data){
  126. await createRoomId(data).then(res=>{
  127. console.log(res,"房间号");
  128. })
  129. },
  130. handleSelectionChange(val) {
  131. this.multipleSelection = val;
  132. // console.log(this.multipleSelection,"LLLLLLLLLLLLLLLLL");
  133. }
  134. },
  135. };
  136. </script>
  137. <style lang="scss" scoped>
  138. .steps {
  139. display: flex;
  140. flex-wrap: wrap;
  141. }
  142. ::v-deep .el-step {
  143. // width: 150px;
  144. flex-basis: 25% !important;
  145. margin-right: 20px;
  146. margin-bottom: 20px;
  147. }
  148. ::v-deep .el-dialog__body {
  149. height: 500px !important;
  150. overflow: auto !important;
  151. }
  152. ::v-deep .el-dialog {
  153. width: 800px;
  154. background: #ffffff;
  155. border-radius: 20px;
  156. }
  157. .timeTitle {
  158. width: 1000%;
  159. text-align: center;
  160. }
  161. </style>