华西海圻ELN前端工程
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

164 lines
4.8 KiB

  1. <template>
  2. <div>
  3. <!-- 签名弹窗 -->
  4. <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="title" :visible.sync="open"
  5. width="500px" append-to-body>
  6. <el-form ref="signForm" :model="form" :rules="rules" label-width="120px" v-if="open">
  7. <div class="sbzdtcma"> <input type="text"> <input type="password" > </div>
  8. <el-row>
  9. <el-col :span="24" v-if="showDate">
  10. <el-form-item :label="$t('page.business.study.study.jysj')" prop="jyksrq">
  11. <el-date-picker v-model="dateArr" clearable type="daterange" range-separator="-"
  12. :start-placeholder="$t('form.startDate')" :end-placeholder="$t('form.endDate')"
  13. value-format="yyyy-MM-dd" style="width: 100%" @change="changeDate" />
  14. </el-form-item>
  15. </el-col>
  16. <el-col :span="24">
  17. <el-form-item :label="$t('form.qmyy')" prop="qmyy">
  18. <el-input type="text" v-model="form.qmyy" maxlength="50" disabled
  19. :placeholder="$t('form.placeholderInput')" />
  20. </el-form-item>
  21. </el-col>
  22. <el-col :span="24">
  23. <el-form-item :label="isReson ? $t('form.reason') : $t('form.remark')" prop="remark">
  24. <el-input type="textarea" v-model="form.remark" :rows="2" maxlength="500"
  25. :placeholder="$t('form.placeholderInput')">
  26. </el-input>
  27. </el-form-item>
  28. </el-col>
  29. <el-col :span="24">
  30. <el-form-item :label="$t('form.signer')">
  31. <el-input type="text" v-model="form.qmrMc" maxlength="50" disabled
  32. :placeholder="$t('form.placeholderInput')" />
  33. </el-form-item>
  34. </el-col>
  35. <el-col :span="24">
  36. <el-form-item :label="$t('form.password')" prop="qmrmm">
  37. <div class="sbzdtcma"> <input type="text"></div>
  38. <el-input type="password" @contextmenu.native.prevent @copy.native.prevent @cut.native.prevent show-password v-model="form.qmrmm" maxlength="20"
  39. :placeholder="$t('form.placeholderInput')" />
  40. </el-form-item>
  41. </el-col>
  42. </el-row>
  43. </el-form>
  44. <div slot="footer" class="dialog-footer">
  45. <el-button type="primary" @click="save">{{ $t('form.confirm') }}</el-button>
  46. <el-button @click="cancel">{{ $t('form.cancel') }}</el-button>
  47. </div>
  48. </el-dialog>
  49. </div>
  50. </template>
  51. <script>
  52. export default {
  53. name: "Sign",
  54. components: {},
  55. data() {
  56. return {
  57. title: '',
  58. open: false,
  59. form: {
  60. qmyy: '',
  61. remark: '',
  62. qmrId: '',
  63. qmrMc: '',
  64. qmrMcEn: '',
  65. qmrmm: '',
  66. startDate: '',
  67. endDate: ''
  68. },
  69. dateArr: [],
  70. showDate: false,
  71. rules: {
  72. qmrmm: [{
  73. required: true,
  74. message: ' ',
  75. trigger: 'blur'
  76. }],
  77. startDate: [{
  78. required: true,
  79. message: ' ',
  80. trigger: 'change'
  81. }]
  82. },
  83. isReson: false
  84. }
  85. },
  86. computed: {
  87. },
  88. created() {
  89. },
  90. methods: {
  91. show(title, qmyy, showDate, selectedDate, isReson, reasonRequired) {
  92. this.showDate = showDate == undefined ? false : showDate
  93. this.dateArr = selectedDate || []
  94. this.title = title
  95. this.form = {
  96. qmyy: qmyy,
  97. remark: '',
  98. qmrId: this.$store.getters.id,
  99. qmrMc: this.$store.getters.nickName,
  100. qmrMcEn: this.$store.getters.name,
  101. qmrmm: '',
  102. jyksrq: selectedDate && selectedDate.length > 0 ? selectedDate[0] : '',
  103. jyjsrq: selectedDate && selectedDate.length > 0 ? selectedDate[1] : ''
  104. }
  105. this.open = true
  106. this.isReson = isReson || false
  107. if (reasonRequired) {
  108. this.rules = {
  109. qmrmm: [{
  110. required: true,
  111. message: ' ',
  112. trigger: 'blur'
  113. }],
  114. jyksrq: [{
  115. required: true,
  116. message: ' ',
  117. trigger: 'change'
  118. }],
  119. remark: [{
  120. required: true,
  121. message: ' ',
  122. trigger: 'blur'
  123. }]
  124. }
  125. } else {
  126. this.rules = {
  127. qmrmm: [{
  128. required: true,
  129. message: ' ',
  130. trigger: 'blur'
  131. }],
  132. startDate: [{
  133. required: true,
  134. message: ' ',
  135. trigger: 'change'
  136. }]
  137. }
  138. }
  139. this.clearFormValidate("signForm")
  140. },
  141. cancel() {
  142. this.open = false
  143. },
  144. changeDate(val) {
  145. this.form.jyksrq = val && val.length > 0 ? val[0] : ''
  146. this.form.jyjsrq = val && val.length > 1 ? val[1] : ''
  147. },
  148. save() {
  149. this.$refs["signForm"].validate(valid => {
  150. if (valid) {
  151. this.$emit('callback', this.form)
  152. this.open = false
  153. }
  154. })
  155. }
  156. }
  157. }
  158. </script>