alertComponents3.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <template>
  2. <div class="examination">
  3. <el-dialog @close="closeDialog" :visible.sync="dialogTableVisible" >
  4. <div slot="title" class="titleBox">
  5. <i :class="tableType === 0? 'el-icon-document':'el-icon-edit-outline'" style="font-size: 20px"></i>
  6. <!-- <img style="width: 25px; height: 25px" src='../../../../assets/img/imgScreen/more.png' /> -->
  7. <span style="margin-left:10px;font-size:18px">{{tableTypeDsc}}</span>
  8. </div>
  9. <el-form ref="baseData" label-width="90px" :rules="ruleValidate" :model="baseData">
  10. <el-row>
  11. <el-col :span="12">
  12. <el-form-item prop="contentNo" label="标准名称">
  13. <el-input v-model="baseData.contentName" style="width:100%" readonly disabled size="small"></el-input>
  14. </el-form-item>
  15. </el-col>
  16. <el-col :span="12">
  17. <el-form-item prop="stdItemNo" label="标准项目名称">
  18. <el-select v-model="baseData.stdItemNo" filterable @change="changeVal" style="width:100%" collapse-tags size="small">
  19. <el-option v-for="(item,index) in stdItemNameType" :key="index" :label="item.stdItemName" :value="item.stdItemNo">
  20. </el-option>
  21. </el-select>
  22. </el-form-item>
  23. </el-col>
  24. </el-row>
  25. <el-row>
  26. <el-col :span="12">
  27. <el-form-item prop="resultValue" label="结果值">
  28. <el-input v-model="baseData.resultValue" style="width:100%" size="small"></el-input>
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="12">
  32. <el-form-item prop="dspOrder" label="显示顺序">
  33. <el-input v-model="baseData.dspOrder" style="width:100%" size="small"></el-input>
  34. </el-form-item>
  35. </el-col>
  36. </el-row>
  37. <el-row>
  38. <el-col :span="24">
  39. <el-form-item prop="memo" label="备注">
  40. <el-input v-model="baseData.memo" style="width:100%" size="small"></el-input>
  41. </el-form-item>
  42. </el-col>
  43. </el-row>
  44. </el-form>
  45. <span slot="footer" class="dialog-footer">
  46. <el-button type="goon" size="mini" icon="el-icon-check" @click="addData()">确定</el-button>
  47. <el-button size="mini" type="goon" icon="el-icon-remove-outline" @click="cancel">取消</el-button>
  48. </span>
  49. </el-dialog>
  50. </div>
  51. </template>
  52. <script>
  53. import { getCookie } from "@/utils/util.js";
  54. import { cookieUserId, cookieUserName } from "@/config/config.js";
  55. let userName = getCookie(cookieUserName);
  56. let userId = getCookie(cookieUserId);
  57. export default {
  58. props: ["showFlag", "Params"],
  59. data() {
  60. return {
  61. dialogTableVisible: false,
  62. tableTypeDsc: "新增子内容",
  63. tableType:0,
  64. stdItemNameType: [],
  65. baseData: {},
  66. ruleValidate: {
  67. stdItemNo: [
  68. { required: true, message: "该项不能为空", trigger: "change" },
  69. ],
  70. },
  71. }
  72. },
  73. mounted() {
  74. this.axios.post("pass/baseManagement/v1/limsstditems/queryLimsStdItemPage",{ object: { validFlag: 1 }, pageIndex: 1, pageSize: 99999 },{ individualType: "json" }).then((res) => {
  75. this.stdItemNameType = res.data.list;
  76. });
  77. },
  78. methods: {
  79. getCode (code, arr, codeKey, nameKey) {
  80. if (!code) {
  81. return '';
  82. }
  83. let targetRow = arr.find(item => {
  84. return item[codeKey] === code;
  85. });
  86. // console.log(targetRow, 'targetRow');
  87. return targetRow ? targetRow[nameKey] : '';
  88. },
  89. cancel() {
  90. this.baseData = {}
  91. this.dialogTableVisible = false;
  92. },
  93. //改变值的时候获默认的结果值
  94. changeVal(val) {
  95. this.baseData.resultValue = this.getCode(this.baseData.stdItemNo,this.stdItemNameType,'stdItemNo','defaultValue')
  96. },
  97. addData() {
  98. this.$refs["baseData"].validate((valid) => {
  99. if (valid) {
  100. this.baseData.apprManName = userName;
  101. this.baseData.apprManNo = userId;
  102. this.baseData.dataTypeName = this.getCode(this.baseData.stdItemNo,this.stdItemNameType,'stdItemNo','dataTypeName')
  103. this.baseData.dataTypeCode = this.getCode(this.baseData.stdItemNo,this.stdItemNameType,'stdItemNo','dataTypeCode')
  104. this.baseData.stdItemName = this.getCode(this.baseData.stdItemNo,this.stdItemNameType,'stdItemNo','stdItemName')
  105. this.axios.post("pass/baseManagement/v1/limsstdcontentds/saveLimsStdContentD", this.baseData, {individualType: "json",}).then((res) => {
  106. if (res.succeed) {
  107. this.dialogTableVisible = false;
  108. this.$message.success("修改成功");
  109. this.$emit("refresh");
  110. } else {
  111. this.$message.error(res.message);
  112. }
  113. })
  114. .catch((e) => {
  115. this.$message.error(e.message);
  116. });
  117. }
  118. });
  119. },
  120. closeDialog() {
  121. this.baseData = {}
  122. this.$refs['baseData'].resetFields();
  123. this.dialogTableVisible = false;
  124. },
  125. },
  126. watch: {
  127. showFlag(arg) {
  128. let _this = this;
  129. this.baseData = Object.assign({}, this.Params);
  130. _this.dialogTableVisible = true;
  131. _this.tableType = 1;
  132. _this.tableTypeDsc = "修改标准内容子信息";
  133. }
  134. },
  135. };
  136. </script>
  137. <style lang="less">
  138. .customWidth_standar {
  139. width: 700px !important;
  140. }
  141. </style>