report.html 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. {extend name="public/base"/}
  2. {block name="css"}
  3. <style>
  4. .recruit-title {background:white;padding:10px 20px;color:#000;font-size:18px;}
  5. </style>
  6. {/block}
  7. {block name="body"}
  8. <van-nav-bar
  9. class="nav-theme"
  10. :fixed="true"
  11. :placeholder="true"
  12. left-text="返回"
  13. left-arrow
  14. @click-left="onBack"
  15. >
  16. <template #title>
  17. <span class="text-white">报备信息</span>
  18. </template>
  19. </van-nav-bar>
  20. <div class="recruit-title">{{info.title}}</div>
  21. <van-form @submit="onSubmit">
  22. <div class="lw-title">基础信息</div>
  23. <van-cell-group inset>
  24. <van-field
  25. v-model="form.realname"
  26. required
  27. label="姓名"
  28. placeholder="请填写姓名"
  29. :rules="[{ required: true, message: '请填写姓名' }]"
  30. ></van-field>
  31. <van-field
  32. v-model="form.mobile"
  33. required
  34. label="手机号"
  35. placeholder="请填写手机号"
  36. :rules="[
  37. { required: true, message: '请填写手机号' },
  38. { validator, message: '请输入正确的手机号'}
  39. ]"
  40. ></van-field>
  41. <van-field
  42. v-model="form.arrivetime"
  43. required
  44. is-link
  45. readonly
  46. label="出发日期"
  47. placeholder="出发日期"
  48. @click="showArrivetime = true"
  49. ></van-field>
  50. <van-popup v-model:show="showArrivetime" round position="bottom">
  51. <van-date-picker
  52. title="选择日期"
  53. :min-date="minDate"
  54. @confirm="selectArrivetime"
  55. @cancel="showArrivetime = false"
  56. ></van-date-picker>
  57. </van-popup>
  58. <van-field
  59. v-model="form.idcard"
  60. label="身份证"
  61. placeholder="请填写身份证号"
  62. ></van-field>
  63. <div v-if="brokerList.length > 0">
  64. <van-field
  65. v-model="brokerText"
  66. is-link
  67. readonly
  68. label="经纪人"
  69. placeholder="不选择系统将随机分配"
  70. @click="showBrokerPicker = true"
  71. ></van-field>
  72. <van-popup v-model:show="showBrokerPicker" round position="bottom">
  73. <van-picker
  74. :columns="brokerList"
  75. @cancel="showBrokerPicker = false"
  76. @confirm="onBrokerConfirm"
  77. ></van-picker>
  78. </van-popup>
  79. </div>
  80. <van-field
  81. v-model="form.remark"
  82. rows="2"
  83. autosize
  84. label="备注"
  85. type="textarea"
  86. maxlength="1000"
  87. placeholder="请输入备注"
  88. show-word-limit
  89. ></van-field>
  90. </van-cell-group>
  91. <div style="margin: 16px;">
  92. <van-button round block type="primary" native-type="submit">
  93. 提交
  94. </van-button>
  95. </div>
  96. </van-form>
  97. <van-dialog v-model:show="dialogShow" title="提示" @confirm="onConfirm">
  98. <div v-html="dialogVlue" style="padding:10px 20px;"></div>
  99. </van-dialog>
  100. {/block}
  101. {block name="script"}
  102. <script>
  103. function v_setup() {
  104. let base = {};
  105. base.dialogShow = Vue.ref(false);
  106. base.dialogVlue = Vue.ref('');
  107. //表单
  108. base.info = {$info};
  109. base.url = '';
  110. base.form = Vue.reactive({
  111. recruit_id: base.info.id,
  112. realname: '',
  113. mobile: '',
  114. idcard: '',
  115. arrivetime: '',
  116. brokerid: 0,
  117. remark: '',
  118. });
  119. base.onSubmit = () => {
  120. postJson("{:url('worker/reportPost')}", base.form, function({msg}){
  121. base.dialogShow.value = true;
  122. base.dialogVlue.value = msg;
  123. }).then(({data,msg}) => {
  124. base.dialogShow.value = true;
  125. base.dialogVlue.value = msg;
  126. base.url = data;
  127. });
  128. };
  129. base.onConfirm = () => {
  130. console.log(base.url);
  131. if (base.url != '') {
  132. location.href = base.url;
  133. }
  134. };
  135. //经纪人
  136. base.brokerList = {$broker_list};
  137. base.brokerText = Vue.ref('');
  138. base.showBrokerPicker = Vue.ref(false);
  139. base.onBrokerConfirm = ({selectedOptions}) => {
  140. base.showBrokerPicker.value = false;
  141. base.brokerText = selectedOptions[0].text;
  142. base.form.brokerid = selectedOptions[0].value;
  143. };
  144. //出发日期
  145. base.showArrivetime = Vue.ref(false);
  146. base.minDate = new Date();
  147. base.selectArrivetime = (value) => {
  148. base.form.arrivetime = value.selectedValues.join('-');
  149. base.showArrivetime.value = false;
  150. };
  151. //手机号验证
  152. base.validator = (val) => {
  153. return /^1(?:3\d|4[4-9]|5[0-35-9]|6[67]|7[013-8]|8\d|9\d)\d{8}$/.test(val);
  154. };
  155. base.onBack = () => {
  156. history.back();
  157. };
  158. return base;
  159. }
  160. </script>
  161. {/block}