edit.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <template>
  2. <div>
  3. <el-button size="mini" type="text" @click="editBtn">编 辑</el-button>
  4. <el-dialog append-to-body :visible.sync="dialogFormVisible" width="600">
  5. <div slot="title" style="font-size: 15px">
  6. 编辑系统提示
  7. </div>
  8. <el-row :gutter="20">
  9. <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="right" size="mini">
  10. <el-col :span="12">
  11. <el-form-item label="提醒名称" prop="remindname">
  12. <el-input disabled v-model="form.remindname" placeholder="提醒名称"></el-input>
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="12">
  16. <el-form-item label="提醒标题" prop="remindtitle">
  17. <el-input v-model="form.remindtitle" placeholder="提醒标题"></el-input>
  18. </el-form-item>
  19. </el-col>
  20. <el-col :span="12">
  21. <el-form-item label="提醒方式" prop="remindmode">
  22. <el-select style="width:250px" v-model="form.remindmode" multiple>
  23. <el-option label="短信" value="短信"></el-option>
  24. <el-option label="邮件" value="邮件"></el-option>
  25. <el-option label="弹框" value="弹框"></el-option>
  26. </el-select>
  27. </el-form-item>
  28. </el-col>
  29. <el-col :span="24">
  30. <el-form-item label="提醒内容" prop="content">
  31. <el-input type="textarea" v-model="form.content" placeholder="输入提醒内容,绑定表字段调用方式为 冒号+字段名,如 :createuserid,SQL语句的插入方式为大括号中加入SQL语句,如 {select name from sys_users where userid=:createuserid}"></el-input>
  32. </el-form-item>
  33. </el-col>
  34. <el-col :span="24">
  35. <el-form-item label="备注说明" prop="remarks">
  36. <el-input type="textarea" v-model="form.remarks" placeholder="备注说明"></el-input>
  37. </el-form-item>
  38. </el-col>
  39. <el-col :span="24">
  40. <el-form-item label="角色权限" prop="isrole">
  41. <el-checkbox v-model="form.isrole" :true-label="1" :false-label="0"></el-checkbox>
  42. </el-form-item>
  43. </el-col>
  44. <el-col :span="24" v-if="form.isrole">
  45. <el-form-item label="角色选择" prop="rolename">
  46. <multipleRole ref="role" :data="form" @onResult="roleResult">
  47. <el-input type="text" readonly slot="input" v-model="form.rolename" @focus="$refs.role.drawer=true;$refs.role.normalSetId()"></el-input>
  48. </multipleRole>
  49. </el-form-item>
  50. </el-col>
  51. <el-col :span="24">
  52. <el-form-item label="人员权限" prop="isuser">
  53. <el-checkbox v-model="form.isuser" :true-label="1" :false-label="0"></el-checkbox>
  54. </el-form-item>
  55. </el-col>
  56. <el-col :span="24" v-if="form.isuser">
  57. <el-form-item label="人员选择" prop="username">
  58. <multiplePeople :data="form" ref="user" @onResult="userResult">
  59. <el-input type="text" readonly slot="input" v-model="form.username" @focus="$refs.user.drawer=true;$refs.user.normalSetId()"></el-input>
  60. </multiplePeople>
  61. </el-form-item>
  62. </el-col>
  63. </el-form>
  64. </el-row>
  65. <div class="dialog-footer">
  66. <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
  67. <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
  68. </div>
  69. </el-dialog>
  70. </div>
  71. </template>
  72. <script>
  73. import multipleRole from '@/template/multipleRole/index'
  74. import multiplePeople from '@/template/multiplePeople/index'
  75. export default {
  76. name: "add",
  77. props:['data'],
  78. components:{multipleRole,multiplePeople},
  79. data(){
  80. return {
  81. dialogFormVisible:false,
  82. form:{
  83. sys_remind_configid:0,
  84. remindtitle:'',
  85. remindmode:[],
  86. content:'',
  87. isrole:1,
  88. roleids:[],
  89. rolename:'',
  90. isuser:1,
  91. userids:[],
  92. username:'',
  93. issql:1,
  94. sqlstr:''
  95. },
  96. rules:{
  97. accountno:[
  98. { required: true, message: '输入账户编号', trigger: 'blur'},
  99. ],
  100. accountname:[
  101. { required: true, message: '输入账户名称', trigger: 'blur'}
  102. ]
  103. }
  104. }
  105. },
  106. methods:{
  107. editBtn () {
  108. this.dialogFormVisible = true
  109. this.form = Object.assign({},this.form,this.data)
  110. this.form.rolename = Object.values(this.form.rolemsg).join(',')
  111. this.form.username = Object.values(this.form.usermsg).join(',')
  112. },
  113. onSubmit(){
  114. this.$refs['form'].validate(async (valid) => {
  115. if (!valid) return false
  116. const res = await this.$api.requested({
  117. "id": "20221220153201",
  118. "version":1,
  119. "content": this.form
  120. })
  121. this.tool.showMessage(res,()=>{
  122. this.$emit('onSuccess')
  123. this.$refs['form'].resetFields();
  124. this.dialogFormVisible = false
  125. })
  126. })
  127. },
  128. /* 角色选择结果 */
  129. roleResult (result) {
  130. this.form.rolename = result.map(item => item.rolename).join(',')
  131. this.form.roleids = result.map(item => item.roleid)
  132. console.log(this.form.rolename,result);
  133. },
  134. /* 人员选择结果 */
  135. userResult (result) {
  136. console.log(result);
  137. this.form.username = result.map(item => item.name).join(',')
  138. this.form.userids = result.map(item => item.userid)
  139. console.log(this.form.username,this.form.userids);
  140. }
  141. }
  142. }
  143. </script>
  144. <style scoped>
  145. .dialog-footer {
  146. margin-top: 0;
  147. }
  148. </style>