Elizabeth's proactive approach involves introducing urinal toilet attachment , an ingenious concept that optimizes space and functionality.

AdminInfoForm.vue 40KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125
  1. <template>
  2. <el-dialog :title="formTitle" :visible.sync="dialogFormVisible" width="63%">
  3. <el-form :model="form" ref="form" :rules="rules" label-width="130px">
  4. <el-row :gutter="24">
  5. <el-col :span="24">
  6. <el-form-item label="账号 : " prop="mobile">
  7. <el-input v-model="form.mobile" placeholder="用户手机号" maxlength="11"
  8. :disabled="form.id !== 0"></el-input>
  9. </el-form-item>
  10. </el-col>
  11. </el-row>
  12. <el-row :gutter="24">
  13. <el-col :span="24">
  14. <el-form-item label="姓名 : " prop="name">
  15. <el-input v-model="form.name" placeholder="用户姓名"></el-input>
  16. </el-form-item>
  17. </el-col>
  18. </el-row>
  19. <el-row :gutter="24">
  20. <el-col :span="24">
  21. <el-form-item label="角色 : " prop="role_ids">
  22. <el-checkbox-group v-model="form.role_ids" @change="changeRole">
  23. <el-checkbox v-for="( item,index) in roles" :key="index" :label="item.id" :value="item.id">{{item.name}}
  24. </el-checkbox>
  25. </el-checkbox-group>
  26. </el-form-item>
  27. </el-col>
  28. </el-row>
  29. <el-row :gutter="24">
  30. <el-col :span="16">
  31. <el-form-item label="职称 : ">
  32. <el-select v-model="form.user_type" placeholder="用户类型">
  33. <el-option
  34. v-for="item in user_types"
  35. :label="item.name"
  36. :value="item.index"
  37. :key="item.index"
  38. ></el-option>
  39. </el-select>
  40. <el-select v-model="form.user_title" placeholder="用户职称">
  41. <el-option
  42. v-for="item in user_titles"
  43. :label="item.name"
  44. :value="item.index"
  45. :key="item.index"
  46. ></el-option>
  47. </el-select>
  48. </el-form-item>
  49. </el-col>
  50. <el-col :span="8">
  51. <el-form-item label="科室:">
  52. <el-select v-model="form.department_id" placeholder="科室">
  53. <el-option
  54. v-for="item in departMent"
  55. :label="item.name"
  56. :value="item.id"
  57. :key="item.id"
  58. ></el-option>
  59. </el-select>
  60. </el-form-item>
  61. </el-col>
  62. </el-row>
  63. <el-row :span="24">
  64. <el-col :span="24">
  65. <el-form-item label="职位: ">
  66. <el-input v-model="form.user_title_name" placeholder="输入职位"></el-input>
  67. </el-form-item>
  68. </el-col>
  69. </el-row>
  70. <el-row :span="24" v-if="this.$store.getters.xt_user.org_id != 10206">
  71. <el-col :span="8">
  72. <el-form-item label="医保医师编码:">
  73. <el-input v-model="form.doctor_number"></el-input>
  74. </el-form-item>
  75. </el-col>
  76. <el-row :span="24" v-if="this.$store.getters.xt_user.org_id == 10206">
  77. <el-col :span="8">
  78. <el-form-item label="员工ID:">
  79. <el-input v-model="form.doctor_number"></el-input>
  80. </el-form-item>
  81. </el-col>
  82. <el-col :span="8">
  83. <el-form-item label="身份证(工号):">
  84. <el-input v-model="form.job_number" style="width:180px;"></el-input>
  85. </el-form-item>
  86. </el-col>
  87. </el-row>
  88. <div v-show="show">
  89. <el-row :span="24">
  90. <el-col :span="8">
  91. <el-form-item label="性别:">
  92. <el-select v-model="form.sex" placeholder="性别" style="width:180px;">
  93. <el-option
  94. v-for="item in sexList"
  95. :label="item.name"
  96. :value="item.id"
  97. :key="item.id"
  98. ></el-option>
  99. </el-select>
  100. </el-form-item>
  101. </el-col>
  102. <el-col :span="8">
  103. <el-form-item label="年龄:">
  104. <el-input v-model="form.age" style="width:180px;"></el-input>
  105. </el-form-item>
  106. </el-col>
  107. <el-col :span="8">
  108. <el-form-item label="执业状态">
  109. <el-select v-model="form.active_status" placeholder="执业状态" style="width:180px;">
  110. <el-option
  111. v-for="item in activeStausList"
  112. :label="item.name"
  113. :value="item.id"
  114. :key="item.id"
  115. ></el-option>
  116. </el-select>
  117. </el-form-item>
  118. </el-col>
  119. </el-row>
  120. <el-row :gutter="24">
  121. <el-col :span="8">
  122. <el-form-item label="民族:">
  123. <el-input v-model="form.nation" style="width:180px;"></el-input>
  124. </el-form-item>
  125. </el-col>
  126. <el-col :span="8">
  127. <el-form-item label="身份类型:" >
  128. <el-select v-model="form.card_type" placeholder="性别" style="width:180px;">
  129. <el-option
  130. v-for="item in cardList"
  131. :label="item.name"
  132. :value="item.id"
  133. :key="item.id"
  134. ></el-option>
  135. </el-select>
  136. </el-form-item>
  137. </el-col>
  138. <el-col :span="8">
  139. <el-form-item label="身份证号:">
  140. <el-input v-model="form.id_card" style="width:180px;"></el-input>
  141. </el-form-item>
  142. </el-col>
  143. </el-row>
  144. <el-row :gutter="24">
  145. <el-col :span="8">
  146. <el-form-item label="学历:">
  147. <el-select v-model="form.education" placeholder="性别" style="width:180px;">
  148. <el-option
  149. v-for="item in educationList"
  150. :label="item.name"
  151. :value="item.id"
  152. :key="item.id"
  153. ></el-option>
  154. </el-select>
  155. </el-form-item>
  156. </el-col>
  157. <el-col :span="8">
  158. <el-form-item label="所学专业:">
  159. <el-input v-model="form.study_major_name" style="width:180px;"></el-input>
  160. </el-form-item>
  161. </el-col>
  162. <el-col :span="8">
  163. <el-form-item label="从事专业:">
  164. <el-input v-model="form.work_major_name" style="width:180px;"></el-input>
  165. </el-form-item>
  166. </el-col>
  167. </el-row>
  168. <el-row :gutter="24">
  169. <el-col :span="8">
  170. <el-form-item label="人员类别:">
  171. <el-select v-model="form.role_type" placeholder="人员类别" @change="changeRoleType" style="width:150px;">
  172. <el-option
  173. v-for="item in roleList"
  174. :label="item.name"
  175. :value="item.id"
  176. :key="item.id"
  177. ></el-option>
  178. </el-select>
  179. </el-form-item>
  180. </el-col>
  181. <el-col :span="8">
  182. <el-form-item label="医药师资格证编码:">
  183. <el-input v-model="form.medical_code" style="width:170px;"></el-input>
  184. </el-form-item>
  185. </el-col>
  186. <el-col :span="8">
  187. <el-form-item label="医药师职业证编码:">
  188. <el-input v-model="form.doctor_code" style="width:170px;"></el-input>
  189. </el-form-item>
  190. </el-col>
  191. </el-row>
  192. <el-row :gutter="24">
  193. <el-col :span="8">
  194. <el-form-item label="多点执业标志:">
  195. <el-select v-model="form.licensing" placeholder="多点执业标志" style="width:180px;">
  196. <el-option
  197. v-for="item in List"
  198. :label="item.name"
  199. :value="item.id"
  200. :key="item.id"
  201. ></el-option>
  202. </el-select>
  203. </el-form-item>
  204. </el-col>
  205. <el-col :span="8">
  206. <el-form-item label="处方资格标志:">
  207. <el-select v-model="form.prescription_qualification_identification" placeholder="处方资格标志" style="width:180px;">
  208. <el-option
  209. v-for="item in List"
  210. :label="item.name"
  211. :value="item.id"
  212. :key="item.id"
  213. ></el-option>
  214. </el-select>
  215. </el-form-item>
  216. </el-col>
  217. </el-row>
  218. <el-row :gutter="24">
  219. <el-col :span="8">
  220. <el-form-item label="门诊医生大病标志:">
  221. <el-select v-model="form.identification_outpatients" placeholder="门诊医生大病标志" style="width:180px;">
  222. <el-option
  223. v-for="item in List"
  224. :label="item.name"
  225. :value="item.id"
  226. :key="item.id"
  227. ></el-option>
  228. </el-select>
  229. </el-form-item>
  230. </el-col>
  231. <el-col :span="8">
  232. <el-form-item label="开始时间:">
  233. <el-date-picker
  234. v-model="form.start_time"
  235. prefix-icon="el-icon-date"
  236. :editable="false"
  237. style="width:180px;"
  238. type="date"
  239. placeholder="选择开始时间"
  240. align="right"
  241. format="yyyy-MM-dd"
  242. value-format="yyyy-MM-dd">
  243. </el-date-picker>
  244. </el-form-item>
  245. </el-col>
  246. <el-col :span="8">
  247. <el-form-item label="药师执业范围代码:">
  248. <el-select v-model="form.medical_range_code" placeholder="药师执业范围代码" style="width:180px;">
  249. <el-option
  250. v-for="item in medicalRangeList"
  251. :label="item.name"
  252. :value="item.id"
  253. :key="item.id"
  254. ></el-option>
  255. </el-select>
  256. </el-form-item>
  257. </el-col>
  258. </el-row>
  259. <el-row :gutter="24">
  260. <el-col :span="8">
  261. <el-form-item label="药师级别:" v-show="showOne">
  262. <el-select v-model="form.medical_level" placeholder="药师级别" style="width:180px;">
  263. <el-option
  264. v-for="item in doctorRangeList"
  265. :label="item.name"
  266. :value="item.id"
  267. :key="item.id"
  268. ></el-option>
  269. </el-select>
  270. </el-form-item>
  271. </el-col>
  272. <el-col :span="8">
  273. <el-form-item label="药师执业类别:" label-width="130px" v-show="showOne">
  274. <el-select v-model="form.medical_type_job" placeholder="药师执业类别" style="width:180px;">
  275. <el-option
  276. v-for="item in doctorLevelList"
  277. :label="item.name"
  278. :value="item.id"
  279. :key="item.id"
  280. ></el-option>
  281. </el-select>
  282. </el-form-item>
  283. </el-col>
  284. <el-col :span="8" >
  285. <el-form-item label="执业药师注册证编号:" v-show="showOne">
  286. <el-input v-model="form.pharmacist_registration_number" style="width:180px;"></el-input>
  287. </el-form-item>
  288. </el-col>
  289. </el-row>
  290. <el-row :gutter="24">
  291. <el-col :span="8">
  292. <el-form-item label="医师执业范围代码:" v-show="showTwo">
  293. <el-select v-model="form.doctor_range_code" placeholder="医生执业范围代码">
  294. <el-option
  295. v-for="item in doctorRangeList"
  296. :label="item.name"
  297. :value="item.id"
  298. :key="item.id"
  299. ></el-option>
  300. </el-select>
  301. </el-form-item>
  302. </el-col>
  303. <el-col :span="8">
  304. <el-form-item label="医生级别:" label-width="130px" v-show="showTwo">
  305. <el-select v-model="form.doctor_level" placeholder="医生级别">
  306. <el-option
  307. v-for="item in doctorLevelList"
  308. :label="item.name"
  309. :value="item.id"
  310. :key="item.id"
  311. ></el-option>
  312. </el-select>
  313. </el-form-item>
  314. </el-col>
  315. <el-col :span="8">
  316. <el-form-item label="执业类别:" v-show="showTwo">
  317. <el-select v-model="form.doctor_type_job" placeholder="执业类别">
  318. <el-option
  319. v-for="item in typeJobList"
  320. :label="item.name"
  321. :value="item.id"
  322. :key="item.id"
  323. ></el-option>
  324. </el-select>
  325. </el-form-item>
  326. </el-col>
  327. </el-row>
  328. <el-row :gutter="24">
  329. <el-col :span="8">
  330. <el-form-item label="门诊大病类别:" label-width="130px">
  331. <el-select v-model="form.outpatient_illnessCategory" placeholder="门诊大病类别">
  332. <el-option
  333. v-for="item in numberList"
  334. :label="item.name"
  335. :value="item.id"
  336. :key="item.id"
  337. ></el-option>
  338. </el-select>
  339. </el-form-item>
  340. </el-col>
  341. <el-col :span="8">
  342. <el-form-item label="在职状态:">
  343. <el-select v-model="form.is_active" placeholder="在职状态">
  344. <el-option
  345. v-for="item in activeList"
  346. :label="item.name"
  347. :value="item.id"
  348. :key="item.id"
  349. ></el-option>
  350. </el-select>
  351. </el-form-item>
  352. </el-col>
  353. </el-row>
  354. </div>
  355. <!-- <el-row :gutter="24">
  356. <el-col :span="8">
  357. <el-form-item label="执业状态">
  358. <el-select v-model="form.active_status" placeholder="执业状态">
  359. <el-option
  360. v-for="item in activeStausList"
  361. :label="item.name"
  362. :value="item.id"
  363. :key="item.id"
  364. ></el-option>
  365. </el-select>
  366. </el-form-item>
  367. </el-col>
  368. </el-row> -->
  369. <el-row :gutter="24">
  370. <el-col :span="24">
  371. <el-form-item label="介绍 : ">
  372. <Tinymce :height="400" menubar ref="editor" v-model="form.intro" :show_upload_img="false"/>
  373. </el-form-item>
  374. </el-col>
  375. </el-row>
  376. </el-form>
  377. <div slot="footer" class="dialog-footer">
  378. <el-button @click="dialogFormVisible = false">取 消</el-button>
  379. <el-button type="primary" @click="submitAction">保 存</el-button>
  380. </div>
  381. </el-dialog>
  382. </template>
  383. <script>
  384. import axios from 'axios'
  385. import { uParseTime } from '@/utils/tools'
  386. import Tinymce from '@/components/Tinymce'
  387. import { addAdmin, getAddAdminInitData, getModifyAdminInitData, modifyAdmin } from '@/api/role/admin'
  388. import { getAllDePartmentList } from "@/api/project/project"
  389. export default {
  390. name: 'AdminInfoForm',
  391. components: {
  392. Tinymce
  393. },
  394. data() {
  395. var checkMobile = (rule, value, callback) => {
  396. if (!value || value.length == 0) {
  397. return callback(new Error('手机号不能为空'))
  398. }
  399. if (/^1\d{10}$/.test(value) == false) {
  400. return callback(new Error('手机号格式错误'))
  401. } else {
  402. callback()
  403. }
  404. }
  405. var checkName = (rule, value, callback) => {
  406. if (!value || value.length == 0) {
  407. return callback(new Error('姓名不能为空'))
  408. } else {
  409. callback()
  410. }
  411. }
  412. return {
  413. admin_id: 0,
  414. dialogFormVisible: false,
  415. user_types: [
  416. { index: 2, name: '医生' },
  417. { index: 3, name: '护士' },
  418. { index:4,name:'行政'},
  419. { index:5,name:'其他'}
  420. ],
  421. user_titles: [
  422. { index: 1, name: '医士' },
  423. { index: 2, name: '医师' },
  424. { index: 3, name: '住院医师' },
  425. { index: 4, name: '主治医师' },
  426. { index: 5, name: '副主任医师' },
  427. { index: 6, name: '主任医师' },
  428. { index: 7, name: '护士' },
  429. { index: 8, name: '护师' },
  430. { index: 9, name: '主管护师' },
  431. { index: 10, name: '副主任护师' },
  432. { index: 11, name: '主任护师' },
  433. { index: 12, name: '运营专员' },
  434. { index: 13, name: '运营主管' }
  435. ],
  436. roles: [], // [{id, name, intro, status}]
  437. loading: true,
  438. qntoken: '',
  439. formTitle: '',
  440. isSubSuperAdmin:false,
  441. org:null,
  442. form: {
  443. role_ids: [],
  444. user_title_name: '',
  445. id: 0,
  446. mobile: '',
  447. name: '',
  448. user_type: '',
  449. user_title: '',
  450. role: '', // 其实应该是 int 类型
  451. intro: '',
  452. department:'',
  453. department_id:"",
  454. sex:"", //性别
  455. age:"", //年龄
  456. nation:"", //民族
  457. card_type:"", //身份类型
  458. id_card:"",//身份证
  459. education:"",//学历
  460. study_major_name:"",//所学专业
  461. work_major_name:"",//从事专业
  462. role_type:"",//人员类别
  463. medical_code:"",//医药师资格证编码
  464. doctor_code:"",// 执业证编码
  465. licensing:"",//多点执业编制
  466. job_number:"",//工号
  467. prescription_qualification_identification:"",//处方资格标志
  468. identification_outpatients:"",//门诊大病资格标志
  469. start_time:"",//开始时间
  470. medical_range_code:"",//药师执业范围编码
  471. medical_level:"",//药师级别
  472. medical_type_job:"",//药师执业类别
  473. pharmacist_registration_number:"",//执业药师注册证编号
  474. doctor_range_code:"",//医师执业范围代码
  475. doctor_level:"",//医师级别
  476. doctor_type_job:"",//医师执业类别
  477. doctor_number:"",//医保医生编号
  478. outpatient_illnessCategory:"",//门诊大病类别
  479. is_active:"",//在职状态
  480. active_status:"",//执业状态
  481. },
  482. departMent:[],
  483. sexList:[
  484. {id:1,name:"男"},
  485. {id:2,name:"女"}
  486. ],
  487. //id号按深圳社保编号命名
  488. cardList:[
  489. {id:1,name:"内地身份证"},
  490. {id:90,name:"社保卡"},
  491. {id:8,name:"护照"},
  492. {id:4,name:"港澳身份证号"},
  493. {id:2,name:"居官证"},
  494. {id:6,name:"台胞证"}
  495. ],
  496. educationList:[
  497. {id:31,name:"大专"},
  498. {id:21,name:"本科"},
  499. {id:14,name:"硕士"},
  500. {id:11,name:"博士"},
  501. ],
  502. roleList:[
  503. {id:1,name:"医师"},
  504. {id:2,name:"药师"}
  505. ],
  506. List:[
  507. {id:1,name:"是"},
  508. {id:2,name:"否"},
  509. ],
  510. medicalRangeList:[
  511. {id:1,name:"药品生产"},
  512. {id:2,name:"药品经营"},
  513. {id:3,name:"药品使用"}
  514. ],
  515. doctorRangeList:[
  516. {id:101,name:"内科专业"},
  517. {id:102,name:"外科专业"},
  518. {id:103,name:"妇产科专业"},
  519. {id:104,name:"儿科专业"},
  520. {id:105,name:"眼耳鼻咽喉科专业"},
  521. {id:106,name:"皮肤科与性病专业"},
  522. {id:107,name:"精神卫生专业"},
  523. {id:108,name:"职业病专业"},
  524. {id:109,name:"医学影像和放射治理专业"},
  525. {id:110,name:"医学检验、病理专业"},
  526. {id:111,name:"全科医学专业"},
  527. {id:112,name:"急救医学专业"},
  528. {id:113,name:"康复医学专业"},
  529. {id:114,name:"预防保健专业"},
  530. {id:115,name:"特种医学与军事医学专业"},
  531. {id:116,name:"计划生育技术服务专业"},
  532. {id:199,name:"省级以上卫生行政部门规定的其他专业"},
  533. {id:201,name:"口腔专业"},
  534. {id:299,name:"省级以上卫生行政部门规定的其他专业"},
  535. {id:301,name:"公共卫生类别专业"},
  536. {id:399,name:"省级以上卫生行政部门规定的其他专业"},
  537. {id:401,name:"中医专业"},
  538. {id:402,name:"中西医结合专业"},
  539. {id:403,name:"蒙医专业"},
  540. {id:404,name:"藏医专业"},
  541. {id:405,name:"维医专业"},
  542. {id:406,name:"傣医专业"},
  543. {id:499,name:"省级以上卫生行政部门规定的其他专业"}
  544. ],
  545. doctorLevelList:[
  546. {id:1,name:"执业医师"},
  547. {id:2,name:"执业助理医师"},
  548. {id:3,name:"执业药师"},
  549. {id:4,name:"从业药师"}
  550. ],
  551. typeJobList:[
  552. {id:1,name:"临床"},
  553. {id:2,name:"口腔"},
  554. {id:3,name:"公共卫生"},
  555. {id:4,name:"中医"}
  556. ],
  557. numberList:[
  558. {id:1,name:"肺结核专科门诊治疗"},
  559. {id:2,name:"艾滋病门诊专科治疗"},
  560. {id:3,name:"再生障碍性贫血"},
  561. {id:4,name:"地中海贫血"},
  562. {id:5,name:"血友病"},
  563. {id:6,name:"精神分裂症门诊专科治疗"},
  564. {id:7,name:"分裂情感性障碍门诊专科治疗"},
  565. {id:8,name:"持久的妄想性障碍(偏执性精神病)门诊专科治疗"},
  566. {id:9,name:"双相(情感)障碍门诊专科治疗"},
  567. {id:10,name:"癫痫所致精神障碍门诊专科治疗"},
  568. {id:11,name:"精神发育迟滞伴发精神障碍门诊专科治疗"},
  569. {id:12,name:"颅内良性肿瘤专科治疗"},
  570. {id:13,name:"器官移植后抗排斥"},
  571. {id:14,name:"放、化、核素治疗"},
  572. {id:15,name:"恶性肿瘤放疗"},
  573. {id:16,name:"恶性肿瘤化疗 "},
  574. {id:17,name:"恶性肿瘤介入或核素治疗 "},
  575. {id:18,name:"肾衰腹透 "},
  576. {id:19,name:"肾衰血透 "},
  577. {id:20,name:"肺结核专科门诊治疗"},
  578. {id:21,name:"放、化、核素治疗"}
  579. ],
  580. activeList:[
  581. {id:1,name:"在职"},
  582. {id:2,name:"离职"},
  583. {id:3,name:"返聘"},
  584. {id:4,name:"临聘"}
  585. ],
  586. activeStausList:[
  587. {id:1,name:"正常"},
  588. {id:2,name:"注销"},
  589. {id:3,name:"暂停"}
  590. ],
  591. rules: {
  592. mobile: [{ required: true, validator: checkMobile, trigger: 'blur' }],
  593. name: [{ required: true, validator: checkName, trigger: 'blur' }],
  594. role_ids: [
  595. { type: 'array', required: true, message: '请至少选择一个角色', trigger: 'change' }
  596. ]
  597. },
  598. show:false,
  599. showOne:false,
  600. showTwo:true
  601. }
  602. },
  603. methods: {
  604. open: function(adminId) {
  605. this.admin_id = adminId
  606. if (this.admin_id < 0) {
  607. this.$message.error('参数错误')
  608. this.loading = false
  609. return
  610. }
  611. // let localthis.$store.getters.xt_user.user.id
  612. let local_user_id = this.$store.getters.xt_user.user.id
  613. this.form.id = this.admin_id
  614. if (this.admin_id === 0) {
  615. let tempForm = {
  616. role_ids: [],
  617. user_title_name: '',
  618. id: 0,
  619. mobile: '',
  620. name: '',
  621. user_type: '',
  622. user_title: '',
  623. role: '', // 其实应该是 int 类型
  624. intro: ''
  625. }
  626. this.form = tempForm
  627. this.formTitle = '新增员工'
  628. this.form.user_type = this.user_types[0].index
  629. this.form.user_title = this.user_titles[0].index
  630. getAddAdminInitData()
  631. .then(rs => {
  632. this.loading = false
  633. var resp = rs.data
  634. if (resp.state === 1) {
  635. // this.roles.push(...resp.data.roles)
  636. this.roles = resp.data.roles
  637. this.qntoken = resp.data.qntoken
  638. this.isSubSuperAdmin = resp.data.isSubSuperAdmin
  639. this.org = resp.data.org
  640. //如果当前用户是子管理员则,则需要将子管理员角色去除,因为子管理员不能添加子管理员
  641. if(this.isSubSuperAdmin){
  642. for (let i =0 ; i < this.roles.length; i++){
  643. if(this.roles[i].is_system == 1 && this.roles[i].role_name == "子管理员"){
  644. this.roles.splice(i, 1)
  645. i--
  646. }
  647. }
  648. }
  649. } else {
  650. this.$message.error(resp.msg)
  651. }
  652. })
  653. .catch(err => {
  654. this.loading = false
  655. this.$message.error(err)
  656. })
  657. } else {
  658. this.formTitle = '编辑用户'
  659. getModifyAdminInitData(this.form.id).then(rs => {
  660. this.loading = false
  661. var resp = rs.data
  662. if (resp.state === 1) {
  663. this.roles = []
  664. this.roles.push(...resp.data.roles)
  665. this.qntoken = resp.data.qntoken
  666. var org = resp.data.org
  667. var admin = resp.data.admin
  668. console.log("admin2222222",admin)
  669. this.form.name = admin.user_name
  670. this.form.mobile = admin.admin.mobile
  671. this.form.user_type = admin.user_type
  672. if(admin.user_type == 1){
  673. this.form.user_type = ""
  674. }
  675. this.form.user_title = admin.user_title
  676. this.form.role = admin.role_ids
  677. this.form.department_id = admin.department_id
  678. if(admin.department_id == 0){
  679. this.form.department_id = ""
  680. }
  681. this.form.role_ids = []
  682. for (let i = 0; i < this.form.role.split(",").length; i++) {
  683. if (this.form.role.split(',')[i].length > 0) {
  684. this.form.role_ids.push(parseInt(this.form.role.split(',')[i]))
  685. }
  686. }
  687. this.form.intro = admin.intro
  688. this.form.user_title_name = admin.user_title_name
  689. if(this.form.user_type == 2){
  690. this.show = true
  691. }else{
  692. this.show = false
  693. }
  694. if(admin.role_type == 1){
  695. this.showTwo = true
  696. this.showOne = false
  697. }
  698. if(this.role_type == 2){
  699. this.showOne = true
  700. this.showTwo = false
  701. }
  702. this.isSubSuperAdmin = resp.data.isSubSuperAdmin
  703. this.org = resp.data.org
  704. this.form.sex = admin.sex
  705. if(admin.sex == 0){
  706. this.form.sex = ""
  707. }
  708. this.form.age = admin.age
  709. if(admin.age == 0){
  710. this.form.age = ""
  711. }
  712. this.form.nation = admin.nation
  713. this.form.card_type = admin.card_type
  714. if(admin.card_type == 0){
  715. this.form.card_type = ""
  716. }
  717. this.form.id_card = admin.id_card
  718. this.form.education = admin.education
  719. if(admin.education == 0){
  720. this.form.education = ""
  721. }
  722. this.form.study_major_name = admin.study_major_name
  723. this.form.work_major_name = admin.work_major_name
  724. this.form.role_type = admin.role_type
  725. if(admin.role_type == 0){
  726. this.form.role_type = ""
  727. }
  728. this.form.medical_code = admin.medical_code
  729. this.form.doctor_code = admin.doctor_code
  730. this.form.licensing = admin.licensing
  731. if(admin.licensing == 0){
  732. this.form.licensing = ""
  733. }
  734. this.form.job_number = admin.job_number
  735. this.form.prescription_qualification_identification = admin.prescription_qualification_identification
  736. if(admin.prescription_qualification_identification == 0){
  737. this.form.prescription_qualification_identification = ""
  738. }
  739. this.form.identification_outpatients = admin.identification_outpatients
  740. if(admin.identification_outpatients == 0){
  741. this.form.identification_outpatients = ""
  742. }
  743. this.form.start_time = this.getTime(admin.start_time)
  744. this.form.medical_range_code = admin.medical_range_code
  745. if(admin.medical_range_code == 0){
  746. this.form.medical_range_code = ""
  747. }
  748. this.form.medical_level =admin.medical_level
  749. if(admin.medical_level == 0){
  750. this.form.medical_level = ""
  751. }
  752. this.form.medical_type_job = admin.medical_type_job
  753. this.form.pharmacist_registration_number = admin.pharmacist_registration_number
  754. this.form.doctor_range_code = admin.doctor_range_code
  755. if(admin.doctor_range_code == 0){
  756. this.form.doctor_range_code = ""
  757. }
  758. this.form.doctor_level = admin.doctor_level
  759. if(this.form.doctor_level == 0){
  760. this.form.doctor_level = ""
  761. }
  762. this.form.doctor_type_job = admin.doctor_type_job
  763. if(admin.doctor_type_job == 0){
  764. this.form.doctor_type_job = ""
  765. }
  766. this.form.doctor_number = admin.doctor_number
  767. this.form.is_active = admin.is_active
  768. console.log("2222222",this.form.is_active)
  769. if(admin.is_active == 0){
  770. this.form.is_active = ""
  771. }
  772. this.form.active_status = admin.active_status
  773. if(admin.active_status == 0){
  774. this.form.active_status = ""
  775. }
  776. var id = 0
  777. for(let i=0;i<this.numberList.length;i++){
  778. if(this.numberList[i].name == admin.outpatient_illness_category){
  779. id = this.numberList[i].id
  780. }
  781. }
  782. console.log("id2222222",id)
  783. this.form.outpatient_illnessCategory = id
  784. if(this.form.outpatient_illnessCategory == 0){
  785. this.form.outpatient_illnessCategory = ""
  786. }
  787. //如果当前用户是超级管理员而且编辑自己的信息
  788. if(!this.isSubSuperAdmin) {
  789. if (this.form.id == org.creator) {
  790. for (let i = 0; i < this.roles.length; i++) {
  791. if (this.roles[i].is_system == 1 && this.roles[i].name == "子管理员") {
  792. this.roles.splice(i, 1)
  793. i--
  794. }
  795. }
  796. }
  797. }else{
  798. for (let i = 0; i < this.roles.length; i++) {
  799. if (this.roles[i].is_system == 1 && this.roles[i].name == "子管理员") {
  800. this.roles.splice(i, 1)
  801. i--
  802. }
  803. }
  804. }
  805. } else {
  806. this.$message.error('该用户不存在')
  807. }
  808. }).catch(err => {
  809. this.loading = false
  810. this.$message.error('该用户不存在')
  811. })
  812. }
  813. this.dialogFormVisible = true
  814. },
  815. submitAction: function() {
  816. var department = ""
  817. for(let i=0;i<this.departMent.length;i++){
  818. if(this.form.department_id == this.departMent[i].id){
  819. department = this.departMent[i].name
  820. }
  821. }
  822. this.form.department = department
  823. if (this.admin_id < 0) {
  824. return
  825. }
  826. this.$refs.form.validate(valid => {
  827. if (valid) {
  828. if(this.form.user_type == "" || this.form.user_type == 0 ){
  829. this.$message.error("职称不能为空")
  830. return
  831. }
  832. this.loading = true
  833. var name = ""
  834. for(let i=0;i<this.numberList.length;i++){
  835. if(this.form.outpatient_illnessCategory == this.numberList[i].id){
  836. name = this.numberList[i].name
  837. }
  838. }
  839. if (this.form.id === 0) {
  840. this.form.role = this.form.role_ids.join(',')
  841. var params = {
  842. mobile:this.form.mobile,
  843. name:this.form.name,
  844. type:this.form.user_type,
  845. title:this.form.user_title,
  846. role:this.form.role,
  847. intro:this.form.intro,
  848. user_title_name:this.form.user_title_name,
  849. department:this.form.department,
  850. department_id:this.form.department_id,
  851. sex:this.form.sex, //性别
  852. age:parseInt(this.form.age), //年龄
  853. nation:this.form.nation, //民族
  854. card_type:this.form.card_type, //身份类型
  855. id_card:this.form.id_card,//身份证
  856. education:this.form.education,//学历
  857. study_major_name:this.form.study_major_name,//所学专业
  858. work_major_name:this.form.work_major_name,//从事专业
  859. role_type:this.form.role_type,//人员类别
  860. medical_code:this.form.medical_code,//医药师资格证编码
  861. doctor_code:this.form.doctor_code,// 执业证编码
  862. licensing:this.form.licensing,//多点执业编制
  863. job_number:this.form.job_number,//工号
  864. prescription_qualification_identification:this.form.prescription_qualification_identification,//处方资格标志
  865. identification_outpatients:this.form.identification_outpatients,//门诊大病资格标志
  866. start_time:this.form.start_time,//开始时间
  867. medical_range_code:this.form.medical_range_code,//药师执业范围编码
  868. medical_level:this.form.medical_level,//药师级别
  869. medical_type_job:this.form.medical_type_job,//药师执业类别
  870. pharmacist_registration_number:this.form.pharmacist_registration_number,//执业药师注册证编号
  871. doctor_range_code:this.form.doctor_range_code,//医师执业范围代码
  872. doctor_level:this.form.doctor_level,//医师级别
  873. doctor_type_job:this.form.doctor_type_job,//医师执业类别
  874. doctor_number:this.form.doctor_number,//医保医生编号
  875. outpatient_illnessCategory:name,//门诊大病类别
  876. is_active:this.form.is_active,//在职状态
  877. active_status:this.form.active_status,//执业状态
  878. }
  879. console.log("params",params)
  880. addAdmin(params).then(rs => {
  881. this.loading = false
  882. var resp = rs.data
  883. if (resp.state === 1) {
  884. this.$store.dispatch('DidChangeAdmins')
  885. var _this = this
  886. setTimeout(() => {
  887. _this.$store.dispatch('RecoverAdminsChangeState')
  888. }, 500)
  889. this.dialogFormVisible = false
  890. } else {
  891. this.$message.error(resp.msg)
  892. }
  893. })
  894. .catch(err => {
  895. this.loading = false
  896. this.$message.error(err)
  897. })
  898. } else {
  899. this.form.role = this.form.role_ids.join(',')
  900. var department = ""
  901. for(let i=0;i<this.departMent.length;i++){
  902. if(this.form.department_id == this.departMent[i].id){
  903. department = this.departMent[i].name
  904. }
  905. }
  906. this.form.department = department
  907. var name = ""
  908. for(let i=0;i<this.numberList.length;i++){
  909. if(this.form.outpatient_illnessCategory == this.numberList[i].id){
  910. name = this.numberList[i].name
  911. }
  912. }
  913. var params = {
  914. uid:this.form.id,
  915. name:this.form.name,
  916. type:this.form.user_type,
  917. title:this.form.user_title,
  918. role:this.form.role,
  919. intro:this.form.intro,
  920. user_title_name:this.form.user_title_name,
  921. sort:0,
  922. department:this.form.department,
  923. department_id:this.form.department_id,
  924. sex:this.form.sex, //性别
  925. age:parseInt(this.form.age), //年龄
  926. nation:this.form.nation, //民族
  927. card_type:this.form.card_type, //身份类型
  928. id_card:this.form.id_card,//身份证
  929. education:this.form.education,//学历
  930. study_major_name:this.form.study_major_name,//所学专业
  931. work_major_name:this.form.work_major_name,//从事专业
  932. role_type:this.form.role_type,//人员类别
  933. medical_code:this.form.medical_code,//医药师资格证编码
  934. doctor_code:this.form.doctor_code,// 执业证编码
  935. licensing:this.form.licensing,//多点执业编制
  936. job_number:this.form.job_number,//工号
  937. prescription_qualification_identification:this.form.prescription_qualification_identification,//处方资格标志
  938. identification_outpatients:this.form.identification_outpatients,//门诊大病资格标志
  939. start_time:this.form.start_time,//开始时间
  940. medical_range_code:this.form.medical_range_code,//药师执业范围编码
  941. medical_level:this.form.medical_level,//药师级别
  942. medical_type_job:this.form.medical_type_job,//药师执业类别
  943. pharmacist_registration_number:this.form.pharmacist_registration_number,//执业药师注册证编号
  944. doctor_range_code:this.form.doctor_range_code,//医师执业范围代码
  945. doctor_level:this.form.doctor_level,//医师级别
  946. doctor_type_job:this.form.doctor_type_job,//医师执业类别
  947. doctor_number:this.form.doctor_number,//医保医生编号
  948. outpatient_illnessCategory:name,//门诊大病类别
  949. is_active:this.form.is_active,//在职状态
  950. active_status:this.form.active_status,//执业状态
  951. }
  952. console.log("params2222222",params)
  953. modifyAdmin(params).then(rs => {
  954. this.loading = false
  955. var resp = rs.data
  956. if (resp.state === 1) {
  957. if(resp.data.approle.active_status == 2){
  958. let params = {
  959. 'id':resp.data.approle.id,
  960. 'is_mark':1,
  961. }
  962. var that = this
  963. axios.get('http://127.0.0.1:9532/sz/api/medical/get',{params:params}).then(function(response) {
  964. if (response.data.state == 0) {
  965. that.$message.error(response.data.msg)
  966. return false
  967. } else {
  968. that.$message({ message: '撤销成功', type: 'success' })
  969. }
  970. }).catch(function(error) {
  971. })
  972. }
  973. this.$store.dispatch('DidChangeAdmins')
  974. var _this = this
  975. setTimeout(() => {
  976. _this.$store.dispatch('RecoverAdminsChangeState')
  977. }, 500)
  978. this.dialogFormVisible = false
  979. } else {
  980. this.$message.error(resp.msg)
  981. }
  982. })
  983. .catch(err => {
  984. this.loading = false
  985. this.$message.error(err)
  986. })
  987. }
  988. } else {
  989. return false
  990. }
  991. })
  992. },
  993. getlist(){
  994. getAllDePartmentList().then(response=>{
  995. if(response.data.state == 1){
  996. var department = response.data.data.departMent
  997. console.log("department2222",department)
  998. this.departMent = department
  999. }
  1000. })
  1001. },
  1002. changeRole(arr){
  1003. var varName = []
  1004. for(let i=0;i<this.roles.length;i++){
  1005. for(let j=0;j<arr.length;j++){
  1006. if(this.roles[i].id == arr[j]){
  1007. varName.push(this.roles[i].name)
  1008. }
  1009. }
  1010. }
  1011. this.form.role_type = 1
  1012. var ids = varName.join(";")
  1013. console.log("valee22222",ids)
  1014. if(ids.indexOf("医生")!=-1){
  1015. this.show = true
  1016. }else{
  1017. this.show = false
  1018. }
  1019. },
  1020. getTime(val) {
  1021. if(val < 0){
  1022. return ""
  1023. }
  1024. if(val == ""){
  1025. return ""
  1026. }else {
  1027. return uParseTime(val, '{y}-{m}-{d}')
  1028. }
  1029. },
  1030. changeRoleType(val){
  1031. console.log("val",val)
  1032. if(val == 1){
  1033. this.showTwo = true
  1034. this.showOne = false
  1035. }
  1036. if(val == 2){
  1037. this.showTwo =false
  1038. this.showOne = true
  1039. }
  1040. }
  1041. },
  1042. created(){
  1043. //获取所有科室
  1044. this.getlist()
  1045. }
  1046. }
  1047. </script>