血透系统PC前端

EditAdminInfo.vue 8.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. <template>
  2. <div class="app-container">
  3. <el-col :span="19" v-loading="loading">
  4. <el-form :model="form" ref="form" :rules="rules" label-width="100px">
  5. <el-form-item label="账号" prop="mobile">
  6. <el-input v-model="form.mobile" placeholder="用户手机号" :disabled="form.id !== 0"></el-input>
  7. </el-form-item>
  8. <el-form-item label="姓名" prop="name">
  9. <el-input v-model="form.name" placeholder="用户姓名"></el-input>
  10. </el-form-item>
  11. <el-form-item label="职称">
  12. <el-select v-model="form.user_type" placeholder="用户类型">
  13. <el-option v-for="item in user_types" :label="item.name" :value="item.index" :key="item.index"></el-option>
  14. </el-select>
  15. <el-select v-model="form.user_title" placeholder="用户职称">
  16. <el-option v-for="item in user_titles" :label="item.name" :value="item.index" :key="item.index"></el-option>
  17. </el-select>
  18. </el-form-item>
  19. <el-form-item label="角色">
  20. <el-select v-model="form.role" placeholder="角色">
  21. <el-option v-for="item in roles" :key="item.id" :label="item.name" :value="item.id"></el-option>
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="介绍">
  25. <Tinymce :height=400 menubar='' ref="editor" v-model="form.intro" :show_upload_img="false" />
  26. </el-form-item>
  27. <el-form-item>
  28. <router-link to="/role/admin/manage">
  29. <el-button>取消</el-button>
  30. </router-link>
  31. <el-button type="primary" @click="submitAction">保存</el-button>
  32. </el-form-item>
  33. </el-form>
  34. </el-col>
  35. </div>
  36. </template>
  37. <script>
  38. import Tinymce from '@/components/Tinymce'
  39. import {getAddAdminInitData, addAdmin, getModifyAdminInitData, modifyAdmin} from '@/api/role/admin'
  40. // import store from '@/store'
  41. export default {
  42. name: 'EditAdminInfo',
  43. components: {
  44. Tinymce
  45. },
  46. data() {
  47. var checkMobile = (rule, value, callback) => {
  48. if (!value || value.length == 0) {
  49. return callback(new Error('手机号不能为空'))
  50. }
  51. if (/^1\d{10}$/.test(value) == false) {
  52. return callback(new Error('手机号格式错误'))
  53. } else {
  54. callback()
  55. }
  56. }
  57. var checkName = (rule, value, callback) => {
  58. if (!value || value.length == 0) {
  59. return callback(new Error('姓名不能为空'))
  60. } else {
  61. callback()
  62. }
  63. }
  64. return {
  65. user_types: [
  66. { index: 2, name: '医生' },
  67. { index: 3, name: '护士' },
  68. ],
  69. user_titles: [
  70. { index: 1, name: '医士' },
  71. { index: 2, name: '医师' },
  72. { index: 3, name: '住院医师' },
  73. { index: 4, name: '主治医师' },
  74. { index: 5, name: '副主任医师' },
  75. { index: 6, name: '主任医师' },
  76. { index: 7, name: '护士' },
  77. { index: 8, name: '护师' },
  78. { index: 9, name: '主管护师' },
  79. { index: 10, name: '副主任护师' },
  80. { index: 11, name: '主任护师' },
  81. { index: 12, name: '运营专员' },
  82. { index: 13, name: '运营主管' },
  83. ],
  84. roles: [], // [{id, name, intro, status}]
  85. loading: true,
  86. qntoken: '',
  87. form: {
  88. id: 0,
  89. mobile: '',
  90. name: '',
  91. user_type: '',
  92. user_title: '',
  93. role: '', // 其实应该是 int 类型
  94. intro: '',
  95. },
  96. rules: {
  97. mobile: [
  98. {validator: checkMobile, trigger: 'blur'}
  99. ],
  100. name: [
  101. {validator: checkName, trigger: 'blur'}
  102. ]
  103. }
  104. }
  105. },
  106. props: {
  107. admin_id: {
  108. type: Number,
  109. require: true
  110. }
  111. },
  112. created() {
  113. if (this.admin_id < 0) {
  114. this.$message.error("参数错误")
  115. this.loading = false
  116. return
  117. }
  118. this.form.id = this.admin_id
  119. if (this.admin_id === 0) {
  120. this.form.user_type = this.user_types[0].index
  121. this.form.user_title = this.user_titles[0].index
  122. getAddAdminInitData().then(rs => {
  123. this.loading = false
  124. var resp = rs.data
  125. if (resp.state === 1) {
  126. this.roles.push(...resp.data.roles)
  127. this.qntoken = resp.data.qntoken
  128. if (this.roles.length > 0) {
  129. this.form.role = this.roles[0].id
  130. }
  131. } else {
  132. this.$message.error(resp.msg)
  133. }
  134. }).catch(err => {
  135. this.loading = false
  136. this.$message.error(err)
  137. })
  138. } else {
  139. getModifyAdminInitData(this.form.id).then(rs => {
  140. this.loading = false
  141. var resp = rs.data
  142. if (resp.state === 1) {
  143. this.roles.push(...resp.data.roles)
  144. this.qntoken = resp.data.qntoken
  145. var admin = resp.data.admin
  146. this.form.name = admin.user_name
  147. this.form.mobile = admin.mobile
  148. this.form.user_type = admin.user_type
  149. this.form.user_title = admin.user_title
  150. this.form.role = admin.role_id
  151. this.form.intro = admin.intro
  152. } else {
  153. this.$message.error(resp.msg)
  154. }
  155. }).catch(err => {
  156. this.loading = false
  157. this.$message.error(err)
  158. })
  159. }
  160. },
  161. methods: {
  162. submitAction: function() {
  163. if (this.admin_id < 0) {
  164. return
  165. }
  166. this.$refs.form.validate((valid) => {
  167. if (valid) {
  168. this.loading = true
  169. if (this.form.id === 0) {
  170. addAdmin(this.form.mobile, this.form.name, this.form.user_type, this.form.user_title, this.form.role, this.form.intro).then(rs => {
  171. this.loading = false
  172. var resp = rs.data
  173. if (resp.state === 1) {
  174. this.$store.dispatch('DidChangeAdmins')
  175. var _this = this
  176. setTimeout(() => {
  177. _this.$store.dispatch('RecoverAdminsChangeState')
  178. }, 500)
  179. _this.$router.back(-1)
  180. } else {
  181. this.$message.error(resp.msg)
  182. }
  183. }).catch(err => {
  184. this.loading = false
  185. this.$message.error(err)
  186. })
  187. } else {
  188. modifyAdmin(this.form.id, this.form.name, this.form.user_type, this.form.user_title, this.form.role, this.form.intro).then(rs => {
  189. this.loading = false
  190. var resp = rs.data
  191. if (resp.state === 1) {
  192. this.$store.dispatch('DidChangeAdmins')
  193. var _this = this
  194. setTimeout(() => {
  195. _this.$store.dispatch('RecoverAdminsChangeState')
  196. }, 500)
  197. _this.$router.back(-1)
  198. } else {
  199. this.$message.error(resp.msg)
  200. }
  201. }).catch(err => {
  202. this.loading = false
  203. this.$message.error(err)
  204. })
  205. }
  206. } else {
  207. return false
  208. }
  209. })
  210. }
  211. }
  212. }
  213. </script>