add.vue 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <template>
  2. <div class="subPage">
  3. <form class="mainForm">
  4. <ul>
  5. <li class="flex-h">
  6. <span>桌位名称:</span>
  7. <div class="flex-item">
  8. <div style="width:50%">
  9. <el-input
  10. placeholder="请输入名称"
  11. v-model="postData.TableNo"
  12. maxlength="6"
  13. clearable>
  14. </el-input>
  15. </div>
  16. </div>
  17. </li>
  18. <li class="flex-h">
  19. <span>案场:</span>
  20. <div class="flex-item">
  21. <div style="width:50%">
  22. <el-select v-model="CaseId" placeholder="请选择">
  23. <el-option
  24. v-for="item in cases"
  25. :key="item.CaseId"
  26. :label="item.CaseName"
  27. :value="item.CaseId">
  28. </el-option>
  29. </el-select>
  30. </div>
  31. </div>
  32. </li>
  33. <li class="flex-h">
  34. <span>区域:</span>
  35. <div class="flex-item">
  36. <div style="width:50%">
  37. <el-select v-model="postData.AreaId" placeholder="请选择">
  38. <el-option
  39. v-for="item in caseAreas"
  40. :key="item.AreaId"
  41. :label="item.AreaName"
  42. :value="item.AreaId">
  43. </el-option>
  44. </el-select>
  45. </div>
  46. </div>
  47. </li>
  48. <li style="text-align:center">
  49. <el-button type="primary" size="mini" @click="submit">保存</el-button>
  50. <el-button type="danger" size="mini" @click="cancel">取消</el-button>
  51. </li>
  52. </ul>
  53. </form>
  54. </div>
  55. </template>
  56. <script>
  57. import { mapState } from 'vuex'
  58. export default {
  59. name: '',
  60. data () {
  61. return {
  62. caseAreaList: [],
  63. postData: {
  64. TableId: '', // 桌位id
  65. AreaId: '', // 区域id
  66. CaseId: '', // 案场id
  67. OrgId: '', // 机构id
  68. TableNo: '', // 桌位编号
  69. Order: '', // 排序
  70. },
  71. }
  72. },
  73. created () {
  74. this.getAreaList()
  75. },
  76. computed: {
  77. ...mapState({
  78. cases: x => x.app.cases.list,
  79. caseids: x => x.app.cases.list.map(i => i.CaseId).join(','),
  80. defaultCaseId: x => x.app.cases.default,
  81. OrgId: x => x.app.user.OrgId,
  82. }),
  83. CaseId: {
  84. get () {
  85. return this.postData.CaseId || this.defaultCaseId
  86. },
  87. set (val) {
  88. this.postData.CaseId = val
  89. this.postData.AreaId = ''
  90. }
  91. },
  92. caseAreas () {
  93. return this.caseAreaList.filter(x => x.CaseId === this.CaseId)
  94. },
  95. },
  96. components: {},
  97. methods: {
  98. getAreaList () {
  99. this.$ajax(this.$api.caseManager.getCaseAreaList.url, {
  100. method: this.$api.caseManager.getCaseAreaList.method,
  101. queryData: {
  102. caseid: this.caseids, // 案场id
  103. page: 1, // 当前页码
  104. pagesize: 10000, // 请求数据量
  105. }
  106. }).then(res => {
  107. this.caseAreaList = res.list
  108. // this.postData.AreaId = res.list[0].AreaId
  109. })
  110. },
  111. submit () { // 提交数据
  112. if (this.postData.TableNo === '') {
  113. this.$message({
  114. type: 'error',
  115. message: '桌位名称不能为空'
  116. })
  117. return false
  118. }
  119. this.postData.OrgId = this.OrgId
  120. this.$ajax(this.$api.caseManager.addCaseTable.url, {
  121. method: this.$api.caseManager.addCaseTable.method,
  122. data: { ...this.postData, CaseId: this.CaseId }
  123. }).then(res => {
  124. this.$message({
  125. type: 'success',
  126. message: '操作成功!'
  127. })
  128. this.$router.push({ name: 'caseTableManager' })
  129. })
  130. },
  131. cancel () {
  132. this.$router.push({ name: 'caseTableManager' })
  133. }
  134. },
  135. mounted () { }
  136. }
  137. </script>
  138. <!-- Add "scoped" attribute to limit CSS to this component only -->
  139. <style lang="scss" scoped>
  140. </style>