appeal.html 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. {extend name="public/base_jfm"/}
  2. {block name="css"}
  3. <style>
  4. .avatar {width:100px;height:100px;margin:0 auto;}
  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. <van-form @submit="onSubmit">
  21. <van-cell-group>
  22. <van-field
  23. v-model="form.company_name"
  24. required
  25. label="企业名称"
  26. placeholder="请输入企业名称"
  27. :rules="[{ required: true, message: '请输入企业名称' }]"
  28. ></van-field>
  29. <van-field
  30. v-model="form.company_contact"
  31. required
  32. label="联系人及职务"
  33. placeholder="请输入联系人及职务"
  34. :rules="[{ required: true, message: '请输入联系人及职务' }]"
  35. ></van-field>
  36. <van-field
  37. v-model="form.street"
  38. required
  39. readonly
  40. label="镇街"
  41. placeholder="请选择镇街"
  42. @click="toggleStreet(true)"
  43. :rules="[{ required: true, message: '请选择镇街' }]"
  44. ></van-field>
  45. <van-popup v-model:show="street_show" position="bottom">
  46. <van-picker
  47. :columns="street"
  48. title="镇街"
  49. @confirm="onStreet"
  50. @cancel="toggleStreet(false)"
  51. ></van-picker>
  52. </van-popup>
  53. <van-field
  54. v-model="form.cate"
  55. required
  56. readonly
  57. label="需求类别"
  58. placeholder="请选择需求类别"
  59. @click="toggleCate(true)"
  60. :rules="[{ required: true, message: '请选择需求类别' }]"
  61. ></van-field>
  62. <van-popup v-model:show="cate_show" position="bottom">
  63. <van-picker
  64. :columns="cate"
  65. title="需求类别"
  66. @confirm="onCate"
  67. @cancel="toggleCate(false)"
  68. ></van-picker>
  69. </van-popup>
  70. <van-field
  71. v-model="form.content"
  72. rows="3"
  73. autosize
  74. label="内容"
  75. type="textarea"
  76. maxlength="1000"
  77. placeholder="请输入内容"
  78. show-word-limit
  79. required
  80. :rules="[{ required: true, message: '请输入内容' }]"
  81. ></van-field>
  82. <van-field
  83. v-model="form.filled_by"
  84. required
  85. label="填表人"
  86. placeholder="请输入填表人"
  87. :rules="[{ required: true, message: '请输入填表人' }]"
  88. ></van-field>
  89. <van-field
  90. v-model="form.mobile"
  91. required
  92. label="联系电话"
  93. placeholder="请输入联系电话"
  94. type="mobile"
  95. :rules="[{ required: true, message: '请输入联系电话' }]"
  96. ></van-field>
  97. </van-cell-group>
  98. <div style="margin: 16px;">
  99. <van-button round block color="#BB0013" native-type="submit">
  100. 提交
  101. </van-button>
  102. </div>
  103. </van-form>
  104. {/block}
  105. {block name="script"}
  106. <script>
  107. function v_setup() {
  108. let base = {};
  109. //基础
  110. base.form = Vue.reactive({});
  111. base.onBack = () => {
  112. location.href = "{:url('jfm/index')}";
  113. };
  114. //镇街
  115. base.street = Vue.reactive({$street});
  116. base.street_show = Vue.ref(false);
  117. base.toggleStreet = (value) => {
  118. base.street_show.value = value;
  119. };
  120. base.onStreet = (value) => {
  121. base.form.street = value.selectedValues[0];
  122. base.street_show = false;
  123. };
  124. //类别
  125. base.cate = Vue.reactive({$cate});
  126. base.cate_show = Vue.ref(false);
  127. base.toggleCate = (value) => {
  128. base.cate_show.value = value;
  129. };
  130. base.onCate = (value) => {
  131. base.form.cate = value.selectedValues[0];
  132. base.cate_show = false;
  133. };
  134. //表单提交
  135. base.onSubmit = () => {
  136. postJson('/jfm/appealPost',base.form).then(({code,msg}) => {
  137. vant.showDialog({
  138. title: '提示',
  139. message: msg
  140. }).then(() => {
  141. if (code == 0) {
  142. location.href = "{:url('jfm/index')}";
  143. }
  144. });;
  145. });
  146. };
  147. return base;
  148. }
  149. </script>
  150. {/block}