Supplement.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <template>
  2. <div class="card">
  3. <el-form ref="formRef" :model="form" :rules="formRule" label-width="auto" :label-position="'right'" class="form"
  4. :size="formsize">
  5. <el-form-item label="项目编号" prop="id">
  6. <el-input v-model="form.id" disabled />
  7. </el-form-item>
  8. <el-form-item label="补卡人" prop="user">
  9. <el-input v-model="form.user" placeholder="请输入补卡人姓名" />
  10. </el-form-item>
  11. </el-form>
  12. <el-button class="button" round @click="onSubmit(formRef)">提交</el-button>
  13. </div>
  14. </template>
  15. <script setup>
  16. import { useRouter } from 'vue-router';
  17. import { ServerAPI } from '../../../../app/lib/ServerAPI';
  18. import { App } from '../../../../app/app';
  19. let formsize = ref("large");
  20. let router = useRouter();
  21. let props = defineProps({
  22. id: {
  23. type: Number
  24. }
  25. });
  26. if (window.innerWidth <= 768) {
  27. formsize.value = ''
  28. }
  29. let formRef = ref();
  30. let form = reactive({
  31. id: props.id,
  32. user: '',
  33. });
  34. let formRule = reactive({
  35. user: [
  36. { required: true, message: '此项为必填项' }
  37. ],
  38. })
  39. let onSubmit = async function (formEl) {
  40. if (!App.hasUser()) {
  41. ElMessage({
  42. message: "请登录",
  43. type: 'warning',
  44. });
  45. router.replace({
  46. name: "Login",
  47. });
  48. return;
  49. }
  50. if (!formEl) return;
  51. await formEl.validate((valid, fields) => {
  52. if (!valid) {
  53. ElMessage({
  54. message: "请检查填写的内容",
  55. type: "warning"
  56. });
  57. return;
  58. }
  59. const loading = ElLoading.service({
  60. lock: true,
  61. text: '正在加载中,请稍候'
  62. })
  63. ServerAPI.SupplementRecord(App.user.uuid, App.user.session, form.user, props.id, (r) => {
  64. if (r == undefined) {
  65. loading.close();
  66. ElMessage.error('服务器未响应');
  67. return;
  68. }
  69. if (r.code != 0) {
  70. loading.close();
  71. ElMessage({
  72. message: `错误:${r.msg}`,
  73. type: "error"
  74. });
  75. return;
  76. }
  77. loading.close();
  78. ElMessage.success('补卡成功!');
  79. form.user = '';
  80. })
  81. })
  82. }
  83. </script>
  84. <style scoped>
  85. .card {
  86. display: flex;
  87. flex-direction: column;
  88. align-items: center;
  89. }
  90. .form {
  91. width: 60%;
  92. margin: 0 auto;
  93. color: black;
  94. }
  95. .button {
  96. background-color: #337ecc;
  97. color: white;
  98. width: 200px;
  99. border: none;
  100. margin-top: 20px;
  101. }
  102. @media only screen and (max-width: 768px) {
  103. .card {
  104. background-color: rgba(255, 255, 255, 0.6);
  105. width: 80%;
  106. border-radius: 10px;
  107. padding: 20px;
  108. }
  109. .form {
  110. width: 100%;
  111. }
  112. }
  113. </style>