edit.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <template>
  2. <div>
  3. <el-button size="mini" type="default" @click="editBtn">{{$t('编 辑')}}</el-button>
  4. <el-drawer
  5. :title="$t(`编辑角色`)"
  6. :visible.sync="drawer"
  7. append-to-body
  8. :wrapperClosable="false"
  9. size="30%"
  10. direction="rtl">
  11. <div class="drawer__panel">
  12. <div>
  13. <el-row>
  14. <el-form :inline="true" :model="form" :rules="rules" ref="form" size="small" :label-width="tool.onlyZh('100px')" label-position="right" class="demo-form-inline">
  15. <el-col :span="24">
  16. <el-form-item :label="$t(`角色名称`)" prop="rolename">
  17. <el-input v-model="form.rolename" :placeholder="$t(`请输入角色名称`)"></el-input>
  18. </el-form-item>
  19. </el-col>
  20. <el-col :span="24">
  21. <el-form-item :label="$t(`角色描述`)" prop="remarks">
  22. <el-input v-model="form.remarks" :placeholder="$t(`请输入角色描述`)"></el-input>
  23. </el-form-item>
  24. </el-col>
  25. <el-col :span="24">
  26. <el-form-item :label="$t(`角色类型`)" prop="usertype">
  27. <el-select v-model="form.usertype" :placeholder="$t(`角色类型`)">
  28. <el-option v-for="item in options" :key="item.index" :label="$t(item.remarks)" :value="Number(item.value)"></el-option>
  29. </el-select>
  30. </el-form-item>
  31. </el-col>
  32. <el-form-item :label="$t(`字段限制`)" prop="fielddatatypelimit">
  33. <el-select v-model="form.fielddatatypelimit" :placeholder="$t(`字段限制`)" @focus="queryField" multiple >
  34. <el-option v-for="item in fielddatatype" :key="item.index" :label="$t(item.value)" :value="item.value"></el-option>
  35. </el-select>
  36. </el-form-item>
  37. </el-form>
  38. </el-row>
  39. </div>
  40. </div>
  41. <div class="fixed__btn__panel">
  42. <el-button size="small" @click="drawer = false" class="normal-btn-width">{{$t('取 消')}}</el-button>
  43. <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">{{$t('确 定')}}</el-button>
  44. </div>
  45. </el-drawer>
  46. </div>
  47. </template>
  48. <script>
  49. import roleContentTemp from './roleContent.vue'
  50. export default {
  51. data () {
  52. return{
  53. dialogFormVisible:false,
  54. drawer:false,
  55. options:[],
  56. form:{
  57. "roleid":0,
  58. "rolename":"",
  59. "remarks":"",
  60. "usertype":"",
  61. "fielddatatypelimit":[]
  62. },
  63. rules:{
  64. rolename: [
  65. { required: true, message: this.$t('请输入角色名称'), trigger: 'blur' },
  66. ],
  67. remarks: [
  68. { required: true, message: this.$t('请输入角色描述'), trigger: 'blur' },
  69. ],
  70. usertype: [
  71. { required: true, message: this.$t('请选择角色类型'), trigger: 'change' }
  72. ],
  73. },
  74. fielddatatype:[]
  75. }
  76. },
  77. props:['data'],
  78. components:{
  79. roleContentTemp
  80. },
  81. created () {
  82. this.usertype()
  83. },
  84. methods:{
  85. editBtn () {
  86. this.drawer = true
  87. this.form = Object.assign({},this.form,this.data)
  88. },
  89. onSuccess () {
  90. this.drawer = false
  91. this.$emit('onSuccess')
  92. },
  93. async usertype () {
  94. let param = {
  95. "classname": "sysmanage.develop.optiontype.optiontype",
  96. "method": "optiontypeselect",
  97. "content": {
  98. "pageNumber": 1,
  99. "pageSize": 20,
  100. "typename": "usertype",
  101. "parameter": {
  102. }
  103. }
  104. }
  105. const res = await this.$api.requested(param)
  106. this.options = res.data
  107. },
  108. onSubmit () {
  109. this.$refs['form'].validate((valid) => {
  110. if (!valid) return false
  111. this.$api.requested({
  112. "classname": "webmanage.role.role",
  113. "method": "insertormodify_role",
  114. "content": this.form
  115. }).then(res=>{
  116. this.tool.showMessage(res,()=>{
  117. this.drawer = false
  118. this.$emit('onSuccess')
  119. })
  120. })
  121. })
  122. },
  123. async queryField(){
  124. if (this.fielddatatype.length == 0){
  125. const res = await this.$store.dispatch('optiontypeselect','fielddatatype')
  126. this.fielddatatype = res.data
  127. }
  128. }
  129. }
  130. }
  131. </script>
  132. <style scoped>
  133. /deep/.el-form-item,.el-select {
  134. width: 100% !important;
  135. }
  136. /deep/.el-form-item__content {
  137. width: calc(100% - 100px);
  138. }
  139. </style>