toConfigureNodel.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <el-dialog :title="title" :visible.sync="show" width="30%" class="demo-dialog" :before-close="handleClose" :close-on-click-modal="false">
  3. <div class="blueStripe" />
  4. <el-form ref="ruleForm" :model="ruleForm" label-position="left" status-icon :rules="rules" label-width="80px">
  5. <el-form-item label="请选择" prop="name">
  6. <el-select v-model="ruleForm.name" multiple placeholder="请选择" style="width: 100%;">
  7. <el-option v-for="(item,index) in modelList" :key="item.id + index" :label="item.name" :value="item.id" />
  8. </el-select>
  9. </el-form-item>
  10. </el-form>
  11. <span slot="footer" class="dialog-footer">
  12. <el-button @click="handleClose">取 消</el-button>
  13. <el-button type="primary" @click="createTemplate">保 存</el-button>
  14. </span>
  15. </el-dialog>
  16. </template>
  17. <script>
  18. import { mapGetters } from 'vuex'
  19. import { selectBizUnAddTemplates, addBizTemplates } from '@/api/toConfigure.js'
  20. export default {
  21. props: {
  22. data: { type: Object, default: null },
  23. show: { type: Boolean, default: false, required: true },
  24. title: { type: String, default: '增加模版项' }
  25. },
  26. data() {
  27. return {
  28. ruleForm: {
  29. name: []
  30. },
  31. modelList: [],
  32. rules: {
  33. name: [{ required: true, message: '请输入名称', trigger: 'change' }]
  34. }
  35. }
  36. },
  37. computed: {
  38. ...mapGetters(['bizId'])
  39. },
  40. created() {
  41. this.selectBizUnAddTemplates()
  42. },
  43. methods: {
  44. async selectBizUnAddTemplates() {
  45. const res = await selectBizUnAddTemplates(this.bizId)
  46. if (res.code === 200) {
  47. this.modelList = res.data
  48. }
  49. },
  50. createTemplate() {
  51. this.$refs.ruleForm.validate(async(valid) => {
  52. if (valid) {
  53. const data = { bizId: this.bizId, templateIds: this.ruleForm.name }
  54. const res = await addBizTemplates(data)
  55. if (res.code === 200) {
  56. this.selectBizUnAddTemplates()
  57. this.$emit('update')
  58. this.$nextTick(() => {
  59. this.$refs.ruleForm.resetFields()
  60. })
  61. this.$message({ message: '模块添加成功', type: 'success', duration: 1000, offset: 150 })
  62. }
  63. }
  64. })
  65. },
  66. handleClose() {
  67. this.$emit('update')
  68. this.ruleForm.name = []
  69. }
  70. }
  71. }
  72. </script>
  73. <style lang="scss" scoped>
  74. .demo-ruleForm {
  75. padding: 0 30px;
  76. }
  77. .demo-dialog {
  78. /deep/ .el-dialog__title {
  79. line-height: 24px;
  80. font-size: 16px;
  81. color: #303133;
  82. padding-left: 10px;
  83. }
  84. }
  85. .blueStripe {
  86. width:4px;
  87. height:17px;
  88. background:#409EFF;
  89. border-radius:1px;
  90. position: absolute;
  91. top: 23px;
  92. left: 20px;
  93. }
  94. </style>