add.html 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. {extend name="public/base"/}
  2. {block name="css"}
  3. <style>
  4. .van-row {width:100%;}
  5. .btn_search_item{background:#f2f6ff;display:inline-block;border-radius:5px;line-height:35px;text-align:center;position:relative;font-size:13px;width:100%;color:#666;margin-bottom:10px;}
  6. .btn_search_item.active{color:var(--pink);background:#fff7fa;}
  7. .btn_search_icon{position:absolute;bottom:-3px;right:-3px;font-size:30px;}
  8. </style>
  9. {/block}
  10. {block name="body"}
  11. <van-nav-bar
  12. class="nav-theme"
  13. :fixed="true"
  14. :placeholder="true"
  15. left-text="返回"
  16. left-arrow
  17. @click-left="onBack"
  18. >
  19. <template #title>
  20. <span class="text-white">添加记录</span>
  21. </template>
  22. </van-nav-bar>
  23. <van-form @submit="onSubmit">
  24. <van-cell-group>
  25. <van-field
  26. v-model="form.should_num"
  27. required
  28. type="number"
  29. label="应挂钩人数"
  30. placeholder="请输入应挂钩人数"
  31. :rules="[{ required: true, message: '请输入应挂钩人数' }]"
  32. ></van-field>
  33. <van-field
  34. v-model="form.new_num"
  35. required
  36. type="number"
  37. label="本月新增人数"
  38. placeholder="请输入本月新增人数"
  39. :rules="[{ required: true, message: '请输入本月新增人数' }]"
  40. ></van-field>
  41. <van-field
  42. v-model="form.unfinished_num"
  43. required
  44. type="number"
  45. label="未完成挂钩人数"
  46. placeholder="请输入未完成挂钩人数"
  47. :rules="[{ required: true, message: '请输入未完成挂钩人数' }]"
  48. ></van-field>
  49. <van-field
  50. v-model="form.reason"
  51. rows="2"
  52. required
  53. autosize
  54. label="未挂钩联系原因"
  55. type="textarea"
  56. placeholder="若全部联系请填无"
  57. :rules="[{ required: true, message: '请输入未挂钩联系原因' }]"
  58. ></van-field>
  59. <van-field
  60. v-model="form.consult_num"
  61. required
  62. type="number"
  63. label="本月回答咨询次数"
  64. placeholder="请输入本月回答咨询次数"
  65. :rules="[{ required: true, message: '请输入本月回答咨询次数' }]"
  66. ></van-field>
  67. <!--联系方式-->
  68. <van-field name="form.contact" label="联系方式">
  69. <template #input>
  70. <van-row :gutter="10">
  71. <van-col span="8" v-for="(item) in contact_list">
  72. <div :class="{btn_search_item:true,active: in_array(item,form.contact)}"
  73. @click="selectContact(item)">
  74. {{item}}
  75. <van-icon v-if="in_array(item,form.contact)"
  76. class="iconfont icon-gouxuan-youxiajiaogouxuan btn_search_icon text-blue"></van-icon>
  77. </div>
  78. </van-col>
  79. </van-row>
  80. </template>
  81. </van-field>
  82. <!--联系方式-->
  83. <van-field name="form.cate" label="咨询问题类别">
  84. <template #input>
  85. <van-row :gutter="10">
  86. <van-col span="8" v-for="(item) in cate_list">
  87. <div :class="{btn_search_item:true,active: in_array(item,form.cate)}"
  88. @click="selectCate(item)">
  89. {{item}}
  90. <van-icon v-if="in_array(item,form.cate)"
  91. class="iconfont icon-gouxuan-youxiajiaogouxuan btn_search_icon text-blue"></van-icon>
  92. </div>
  93. </van-col>
  94. </van-row>
  95. </template>
  96. </van-field>
  97. <van-field
  98. v-model="form.description"
  99. rows="2"
  100. required
  101. autosize
  102. label="具体问题描述及解决措施描述"
  103. type="textarea"
  104. placeholder="若全部联系请填无"
  105. :rules="[{ required: true, message: '请输入具体问题描述及解决措施描述' }]"
  106. ></van-field>
  107. <van-field
  108. v-model="form.assist"
  109. rows="2"
  110. required
  111. autosize
  112. label="需协调事项说明"
  113. type="textarea"
  114. placeholder="若全部联系请填无"
  115. :rules="[{ required: true, message: '请输入需协调事项说明' }]"
  116. ></van-field>
  117. </van-cell-group>
  118. <div style="margin: 16px;">
  119. <van-button round block type="primary" native-type="submit">
  120. 提交
  121. </van-button>
  122. </div>
  123. </van-form>
  124. {/block}
  125. {block name="script"}
  126. <script>
  127. function v_setup() {
  128. let base = {};
  129. base.form = Vue.reactive({
  130. should_num: 0,
  131. new_num: 0,
  132. unfinished_num: 0,
  133. reason: '',
  134. consult_num: 0,
  135. contact: [],
  136. cate: [],
  137. description: '',
  138. assist: '',
  139. });
  140. base.onBack = () => {
  141. location.href = "{:url('index/index')}";
  142. };
  143. //公共方法
  144. base.in_array = (search,array) => {
  145. for(var i in array){
  146. if(array[i] == search){
  147. return true;
  148. }
  149. }
  150. return false;
  151. };
  152. base.removeByVal = (arrylist , val) => {
  153. for(var i = 0; i < arrylist .length; i++) {
  154. if(arrylist[i] == val) {
  155. arrylist .splice(i, 1);
  156. break;
  157. }
  158. }
  159. };
  160. //联系方式
  161. base.contact_list = Vue.reactive({$contact_list});
  162. base.selectContact = value => {
  163. if (base.in_array(value,base.form.contact)) {
  164. base.removeByVal(base.form.contact,value);
  165. } else {
  166. base.form.contact.push(value);
  167. }
  168. };
  169. //咨询问题类别
  170. base.cate_list = Vue.reactive({$cate_list});
  171. base.selectCate = value => {
  172. if (base.in_array(value,base.form.cate)) {
  173. base.removeByVal(base.form.cate,value);
  174. } else {
  175. base.form.cate.push(value);
  176. }
  177. };
  178. //表单提交
  179. base.onSubmit = () => {
  180. postJson('/work/addPost',base.form).then(() => {
  181. vant.showDialog({
  182. title: '提示',
  183. message: '添加成功',
  184. }).then(() => {
  185. location.href = "{:url('index/index')}";
  186. });
  187. });
  188. };
  189. return base;
  190. }
  191. </script>
  192. {/block}