addPage.vue 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <!--新增/编辑准入条件-->
  2. <template>
  3. <div class="accessRequirementAddPage">
  4. <el-form :model="form" ref="form" label-width="100px" :rules="rules">
  5. <el-form-item label="材料名称" prop="materialName">
  6. <el-input v-model="form.materialName" placeholder="请输入材料名称" style="width:320px;" maxlength="15" ></el-input>
  7. </el-form-item>
  8. <el-form-item label="材料描述" prop="materialDescribe">
  9. <el-input v-model="form.materialDescribe" type="textarea" placeholder="请输入材料描述" style="width:320px;" maxlength="50" ></el-input>
  10. </el-form-item>
  11. <!-- <el-form-item label="适用身份" prop="materialSuit">
  12. <el-radio-group v-model="form.materialSuit" @change="materialTypeChange">
  13. <el-radio :label="1">通用</el-radio>
  14. <el-radio :label="2">教职工</el-radio>
  15. <el-radio :label="3">学生</el-radio>
  16. </el-radio-group>
  17. </el-form-item>-->
  18. <el-form-item label="材料类型" prop="materialType">
  19. <el-radio-group v-model="form.materialType" @change="radioChange">
  20. <el-radio :label="1">上传材料</el-radio>
  21. <el-radio :label="2">关联材料</el-radio>
  22. </el-radio-group>
  23. </el-form-item>
  24. <el-form-item label="文件格式" prop="fileType" v-if="form.materialType==1">
  25. <el-checkbox-group v-model="form.fileType">
  26. <el-checkbox :label="1">PDF</el-checkbox>
  27. <el-checkbox :label="2">WORD</el-checkbox>
  28. <el-checkbox :label="3">图片</el-checkbox>
  29. </el-checkbox-group>
  30. </el-form-item>
  31. <el-form-item label="关联材料" prop="relationType" v-if="form.materialType == 2">
  32. <el-select v-model="form.relationType" placeholder="请选择关联材料">
  33. <el-option :label="item.name" :value="item.id" v-for="(item,index) in materialTypeList" :key="index"></el-option>
  34. </el-select>
  35. </el-form-item>
  36. <el-form-item label="准入说明" prop="text">
  37. <el-input v-model="form.text" type="textarea" placeholder="请输入准入说明" style="width:320px;" maxlength="50" ></el-input>
  38. </el-form-item>
  39. <div class="bottom-button-box">
  40. <p class="reset-button-one" @click="backPage">取消</p>
  41. <p class="inquire-button-one" @click="upData">提交</p>
  42. </div>
  43. </el-form>
  44. </div>
  45. </template>
  46. <script>
  47. import { materialdata,materialdataPut } from "@/api/laboratory/accessRequirement"
  48. export default {
  49. name: 'accessRequirementAddPage',
  50. props:{
  51. propsData:{},
  52. },
  53. data() {
  54. return {
  55. materialTypeList:[
  56. {name:"身份信息",id:1},
  57. {name:"安全考试证书",id:2}
  58. ],
  59. form:{
  60. materialName:"",
  61. materialDescribe:"",
  62. materialSuit:3,
  63. materialType:1,
  64. relationType:"",
  65. fileType:[],
  66. },
  67. // 表单校验
  68. rules: {
  69. materialName: [
  70. { required: true, message: "请输入材料名称", trigger: "change" },
  71. { required: true, message: "请输入材料名称", validator: this.spaceJudgment, trigger: "blur" }
  72. ],
  73. materialDescribe: [
  74. { required: true, message: "请输入材料描述", trigger: "change" },
  75. { required: true, message: "请输入材料描述", validator: this.spaceJudgment, trigger: "blur" }
  76. ],
  77. materialSuit: [
  78. { required: true, message: "请选择适用身份", trigger: "change" }
  79. ],
  80. materialType: [
  81. { required: true, message: "请选择材料类型", trigger: "change" }
  82. ],
  83. relationType: [
  84. { required: true, message: "请选择关联材料", trigger: "change" }
  85. ],
  86. fileType: [
  87. { required: true, message: "请选择文件格式", trigger: "change" }
  88. ],
  89. },
  90. }
  91. },
  92. created() {
  93. if(this.propsData.id){
  94. this.form = this.propsData;
  95. console.log(this.form)
  96. if(this.form.fileType){
  97. this.form.fileType=this.form.fileType.map(Number)
  98. }else{
  99. this.form.fileType=[];
  100. }
  101. if(this.form.materialSuit == 2){
  102. let newList = [
  103. {name:"身份信息",id:1},
  104. ];
  105. this.$set(this,'materialTypeList',newList)
  106. }
  107. }
  108. },
  109. mounted(){
  110. },
  111. methods: {
  112. //单选事件
  113. radioChange(e){
  114. console.log(e)
  115. if(e==1){//上传材料
  116. }else if(e==2){//关联材料
  117. this.form.fileType=[];
  118. this.form.fileTypeName='';
  119. }
  120. },
  121. materialTypeChange(e){
  122. if(e == 2){
  123. let newList = [
  124. {name:"身份信息",id:1},
  125. ];
  126. this.$set(this,'materialTypeList',newList)
  127. this.$set(this.form,'relationType',"");
  128. }else{
  129. let newList = [
  130. {name:"身份信息",id:1},
  131. {name:"安全考试证书",id:2}
  132. ];
  133. this.$set(this,'materialTypeList',newList)
  134. }
  135. },
  136. //返回
  137. backPage(){
  138. this.$parent.offPage();
  139. },
  140. upData(){
  141. let self = this;
  142. this.$refs["form"].validate(valid => {
  143. if (valid) {
  144. this.$confirm('是否确认提交?', "", {
  145. confirmButtonText: "确定",
  146. cancelButtonText: "取消",
  147. type: "warning"
  148. }).then(function() {
  149. if(self.form.id){
  150. self.materialdataPut();
  151. }else{
  152. self.materialdata();
  153. }
  154. }).then(() => {}).catch(() => {});
  155. }
  156. });
  157. },
  158. materialdata(){
  159. if(this.form.fileType){
  160. let newFileType = this.form.fileType.join(',')
  161. this.form.fileType = newFileType;
  162. }
  163. materialdata(this.form).then( response => {
  164. this.msgSuccess("提交成功")
  165. this.backPage();
  166. });
  167. },
  168. materialdataPut(){
  169. if(this.form.fileType){
  170. let newFileType = this.form.fileType.join(',')
  171. this.form.fileType = newFileType;
  172. }
  173. materialdataPut(this.form).then( response => {
  174. this.msgSuccess("编辑成功")
  175. this.backPage();
  176. });
  177. },
  178. }
  179. }
  180. </script>
  181. <style scoped lang="scss">
  182. .accessRequirementAddPage{
  183. flex:1;
  184. overflow-y: scroll;
  185. box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
  186. padding:50px 0 50px 60px!important;
  187. border-radius: 10px;
  188. .bottom-button-box{
  189. margin-top:50px;
  190. display: flex;
  191. p:nth-child(1){
  192. margin:0 20px 0 100px;
  193. }
  194. .inquire-button-one{
  195. width: 140px;
  196. }
  197. }
  198. }
  199. </style>