edit.php 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <!DOCTYPE html>
  2. <!--suppress JSAnnotator -->
  3. <html lang="zh-CN">
  4. <head>
  5. {include file="public/head"}
  6. <title></title>
  7. </head>
  8. <body>
  9. <div id="form-add" class="mp-form" v-cloak>
  10. <i-Form :model="formData" :label-width="80" >
  11. <Form-Item label="身份名称">
  12. <i-input v-model="formData.role_name" placeholder="请输入身份名称"></i-input>
  13. </Form-Item>
  14. <Form-Item label="身份标识">
  15. <i-input v-model="formData.sign" placeholder="唯一身份标识,一旦确定,不可更改。" disabled></i-input>
  16. </Form-Item>
  17. <Form-Item label="是否开启">
  18. <Radio-Group v-model="formData.status">
  19. <Radio label="1">开启</Radio>
  20. <Radio label="0">关闭</Radio>
  21. </Radio-Group>
  22. </Form-Item>
  23. <Form-Item label="权限">
  24. <Tree :data="menus" show-checkbox ref="tree"></Tree>
  25. </Form-Item>
  26. <Form-Item :class="'add-submit-item'">
  27. <i-Button :type="'primary'" :html-type="'submit'" :size="'large'" :long="true" :loading="loading" @click.prevent="submit">提交</i-Button>
  28. </Form-Item>
  29. </i-Form>
  30. </div>
  31. <script>
  32. $eb = parent._mpApi;
  33. var role = <?php echo $role; ?> || {};
  34. var menus = <?php echo $menus; ?> || [];
  35. mpFrame.start(function(Vue){
  36. new Vue({
  37. el:'#form-add',
  38. data:{
  39. formData:{
  40. role_name:role.role_name || '',
  41. status:String(role.status) || '1',
  42. checked_menus:role.rules,
  43. sign:role.sign,
  44. },
  45. menus:[],
  46. loading:false
  47. },
  48. methods:{
  49. tidyRes:function(){
  50. var data = [];
  51. menus.map((menu)=>{
  52. data.push(this.initMenu(menu));
  53. });
  54. this.$set(this,'menus',data);
  55. },
  56. initMenu:function(menu){
  57. var data = {},checkMenus = ','+this.formData.checked_menus+',';
  58. data.title = menu.menu_name;
  59. data.id = menu.id;
  60. if(menu.child && menu.child.length >0){
  61. data.children = [];
  62. menu.child.map((child)=>{
  63. data.children.push(this.initMenu(child));
  64. })
  65. }else{
  66. data.checked = checkMenus.indexOf(String(','+data.id+',')) !== -1;
  67. data.expand = !data.checked;
  68. }
  69. return data;
  70. },
  71. submit:function(){
  72. this.loading = true;
  73. this.formData.checked_menus = [];
  74. this.$refs.tree.getCheckedNodes().map((node)=>{
  75. this.formData.checked_menus.push(node.id);
  76. });
  77. $eb.axios.post("{$updateUrl}",this.formData).then((res)=>{
  78. if(res.status && res.data.code == 200)
  79. return Promise.resolve(res.data);
  80. else
  81. return Promise.reject(res.data.msg || '添加失败,请稍候再试!');
  82. }).then((res)=>{
  83. $eb.message('success',res.msg || '操作成功!');
  84. $eb.closeModalFrame(window.name);
  85. }).catch((err)=>{
  86. this.loading=false;
  87. $eb.message('error',err);
  88. });
  89. }
  90. },
  91. mounted:function(){
  92. t = this;
  93. this.tidyRes();
  94. }
  95. });
  96. });
  97. </script>
  98. </body>