PubTemplateGroup.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. <template>
  2. <div class="PubTagGroupWrapper">
  3. <el-form
  4. class="groups"
  5. :rules="rules"
  6. ref="groups"
  7. :model="form"
  8. label-width="150px"
  9. >
  10. <el-form-item
  11. label="选择归属:"
  12. prop="region1"
  13. >
  14. <span class="changeTips">改变归属后,模板内容将会恢复到默认状态</span>
  15. <el-select
  16. :disabled="!!editData.id"
  17. v-model="form.region1"
  18. placeholder="请选择模板归属"
  19. @change="sendData"
  20. >
  21. <el-option
  22. v-for="item in Adscriptions"
  23. :label="item.name"
  24. :value="item.key+''"
  25. :key="item.key"
  26. ></el-option>
  27. </el-select>
  28. </el-form-item>
  29. <!-- <el-form-item
  30. label="选择子模板归属:"
  31. prop="region3"
  32. v-if="form.region1 == 5"
  33. >
  34. <span class="changeTips">改变子模板归属后,模板内容将会恢复到默认状态</span>
  35. <el-select
  36. :disabled="!!editData.id"
  37. v-model="form.region3"
  38. placeholder="请选择子模板"
  39. @change="sendData"
  40. >
  41. <el-option
  42. v-for="item in sonLis"
  43. :label="item.name"
  44. :value="item.key+''"
  45. :key="item.key"
  46. ></el-option>
  47. </el-select>
  48. </el-form-item> -->
  49. <el-form-item
  50. label="模板名称:"
  51. prop="region2"
  52. >
  53. <el-input
  54. v-model="form.region2"
  55. :disabled="!!editData.id"
  56. maxLength="120"
  57. placeholder="请输入模板名称"
  58. ></el-input>
  59. </el-form-item>
  60. </el-form>
  61. </div>
  62. </template>
  63. <script>
  64. import api from '@api/icss.js';
  65. import utils from '@api/utils.js';
  66. /**
  67. * 归属type
  68. * 1:主诉模板 2:现病史模板 3:现病史空模板 4 : 其他史模板 5:嵌套模板 6:慢病模板
  69. */
  70. export default {
  71. props:['editData'],
  72. data() {
  73. return {
  74. numWord:0,
  75. Adscriptions:[],
  76. sonLis:[{
  77. name:'空',
  78. key:'-1',
  79. },{
  80. name:'主诉模板',
  81. key:'1'
  82. },{
  83. name:'现病史模板',
  84. key:'2'
  85. },{
  86. name:'现病史空模板',
  87. key:'3'
  88. }],
  89. form: {
  90. region1: '', //归属
  91. region2: '', //模板名称
  92. region3: '-1', //子模板
  93. tagPool:[], //标签池
  94. },
  95. rules: {
  96. region1: [
  97. { required: true, message: '请选择模板归属', trigger: 'change' }
  98. ],
  99. region2: [
  100. { required: true, message: '请输入模板名称', trigger: 'change' },
  101. // { validator: validatePass2, trigger: 'blur' },
  102. ],
  103. region3: [
  104. { required: true, message: '请选择子模板归属', trigger: 'change' },
  105. // { validator: validatePass2, trigger: 'blur' },
  106. ],
  107. },
  108. }
  109. },
  110. beforeMount:function(){
  111. let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
  112. let guisu = localStorage.getItem('guisu') ? JSON.parse(localStorage.getItem('guisu')) : []
  113. for(let k = 0;k < guisu.length;k++){
  114. templateOwn = templateOwn.filter(item => item.key != guisu[k])
  115. }
  116. this.Adscriptions = templateOwn;
  117. },
  118. mounted() {
  119. const editData = this.$props.editData;
  120. let templateOwn = localStorage.getItem('icssEnumsData') ? JSON.parse(localStorage.getItem('icssEnumsData')).moduleTypeEnum : []
  121. if(editData.id){ //修改
  122. // const trans = utils.transformKeys(editData,2);
  123. this.form = Object.assign({},this.form,editData);
  124. this.Adscriptions = templateOwn
  125. this.form.region1 = (editData.type+'')
  126. this.form.region2 = editData.name
  127. }
  128. this.$emit('changeVal', this.form, false)
  129. // this.searchTagList()
  130. },
  131. methods:{
  132. changes(){
  133. let nameVal = this.form.region2
  134. console.log(nameVal.length)
  135. if(nameVal.length == 10){
  136. this.$message({
  137. message: '最多输入120个字',
  138. type: 'warning',
  139. showClose: true,
  140. });
  141. }
  142. if(nameVal.length == 10){
  143. this.numWord = 10
  144. }else{
  145. this.numWord = 0
  146. }
  147. },
  148. sendData(val){
  149. this.$emit('changeVal', this.form, false)
  150. },
  151. submitForm(formName) {
  152. this.$refs[formName].validate((valid) => {
  153. if (valid) {
  154. this.$emit('validatePass', this.form, false)
  155. } else {
  156. console.log('error submit!!');
  157. return false;
  158. }
  159. });
  160. },
  161. }
  162. }
  163. </script>
  164. <style lang="less">
  165. .PubTagGroupWrapper {
  166. .groups {
  167. background-color: #fff;
  168. padding: 20px;
  169. margin: 20px 20px -20px 20px;
  170. .el-form-item__content,
  171. .el-input__inner {
  172. height: 30px;
  173. line-height: 30px;
  174. width: 200px;
  175. }
  176. .el-form-item {
  177. margin-bottom: 20px;
  178. }
  179. .el-form-item__error {
  180. top: 28px;
  181. }
  182. .el-form-item__label {
  183. line-height: 30px;
  184. text-align: left;
  185. }
  186. .el-input__icon {
  187. line-height: 30px;
  188. }
  189. .verticalMiddle .el-form-item__content {
  190. position: relative;
  191. top: 16px;
  192. }
  193. .maxAges {
  194. margin-left: -125px;
  195. }
  196. .ages {
  197. display: inline-block;
  198. .el-form-item__content {
  199. width: auto;
  200. }
  201. .el-input {
  202. display: inline-block;
  203. width: auto;
  204. .el-input__inner {
  205. width: 60px;
  206. padding: 0 5px;
  207. margin-right: 25px;
  208. text-align: center;
  209. }
  210. .el-input__inner::-webkit-outer-spin-button,
  211. .el-input__inner::-webkit-inner-spin-button {
  212. -webkit-appearance: none;
  213. }
  214. .el-input__inner[type="number"] {
  215. -moz-appearance: textfield;
  216. }
  217. }
  218. }
  219. .el-message-box__btns .el-button--default {
  220. color: #606266 !important;
  221. }
  222. .cancelColor {
  223. color: #22ccc8 !important;
  224. }
  225. .changeTips {
  226. position: absolute;
  227. left: 220px;
  228. min-width: 300px;
  229. color: #22ccc8;
  230. font-size: 12px;
  231. }
  232. }
  233. }
  234. </style>